]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - shared/extra-utils/users/accounts.ts
Hide schedule privacy if private does not exist
[github/Chocobozzz/PeerTube.git] / shared / extra-utils / users / accounts.ts
CommitLineData
a1587156 1/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
f05a1c30 2
c100a614 3import * as request from 'supertest'
32b2b43c 4import { expect } from 'chai'
62689b94 5import { existsSync, readdir } from 'fs-extra'
f05a1c30 6import { join } from 'path'
d4681c00 7import { Account } from '../../models/actors'
d175a6f7 8import { root } from '../miscs/miscs'
265ba139 9import { makeGetRequest } from '../requests/requests'
22834691 10import { VideoRateType } from '../../models/videos'
2d53be02 11import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
265ba139 12
2d53be02 13function getAccountsList (url: string, sort = '-createdAt', statusCodeExpected = HttpStatusCode.OK_200) {
265ba139
C
14 const path = '/api/v1/accounts'
15
16 return makeGetRequest({
17 url,
18 query: { sort },
19 path,
20 statusCodeExpected
21 })
22}
23
2d53be02 24function getAccount (url: string, accountName: string, statusCodeExpected = HttpStatusCode.OK_200) {
ad9e39fb 25 const path = '/api/v1/accounts/' + accountName
265ba139
C
26
27 return makeGetRequest({
28 url,
29 path,
30 statusCodeExpected
31 })
32}
33
32b2b43c
C
34async function expectAccountFollows (url: string, nameWithDomain: string, followersCount: number, followingCount: number) {
35 const res = await getAccountsList(url)
36 const account = res.body.data.find((a: Account) => a.name + '@' + a.host === nameWithDomain)
37
38 const message = `${nameWithDomain} on ${url}`
39 expect(account.followersCount).to.equal(followersCount, message)
40 expect(account.followingCount).to.equal(followingCount, message)
41}
42
57cfff78 43async function checkActorFilesWereRemoved (filename: string, serverNumber: number) {
f05a1c30
C
44 const testDirectory = 'test' + serverNumber
45
46 for (const directory of [ 'avatars' ]) {
47 const directoryPath = join(root(), testDirectory, directory)
48
49 const directoryExists = existsSync(directoryPath)
50 expect(directoryExists).to.be.true
51
62689b94 52 const files = await readdir(directoryPath)
f05a1c30 53 for (const file of files) {
57cfff78 54 expect(file).to.not.contain(filename)
f05a1c30
C
55 }
56 }
57}
58
2d53be02
RK
59function getAccountRatings (
60 url: string,
61 accountName: string,
62 accessToken: string,
63 rating?: VideoRateType,
64 statusCodeExpected = HttpStatusCode.OK_200
65) {
c100a614
YB
66 const path = '/api/v1/accounts/' + accountName + '/ratings'
67
22834691
C
68 const query = rating ? { rating } : {}
69
c100a614
YB
70 return request(url)
71 .get(path)
72 .query(query)
73 .set('Accept', 'application/json')
74 .set('Authorization', 'Bearer ' + accessToken)
75 .expect(statusCodeExpected)
76 .expect('Content-Type', /json/)
77}
78
265ba139
C
79// ---------------------------------------------------------------------------
80
81export {
82 getAccount,
32b2b43c 83 expectAccountFollows,
f05a1c30 84 getAccountsList,
c100a614
YB
85 checkActorFilesWereRemoved,
86 getAccountRatings
265ba139 87}