1 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
3 import { expect } from 'chai'
4 import { pathExists, readdir } from 'fs-extra'
5 import { Account, VideoChannel } from '@shared/models'
6 import { PeerTubeServer } from '@shared/server-commands'
8 async function expectChannelsFollows (options: {
14 const { server } = options
15 const { data } = await server.channels.list()
17 return expectActorFollow({ ...options, data })
20 async function expectAccountFollows (options: {
21 server: PeerTubeServer
26 const { server } = options
27 const { data } = await server.accounts.list()
29 return expectActorFollow({ ...options, data })
32 async function checkActorFilesWereRemoved (filename: string, server: PeerTubeServer) {
33 for (const directory of [ 'avatars' ]) {
34 const directoryPath = server.getDirectoryPath(directory)
36 const directoryExists = await pathExists(directoryPath)
37 expect(directoryExists).to.be.true
39 const files = await readdir(directoryPath)
40 for (const file of files) {
41 expect(file).to.not.contain(filename)
48 expectChannelsFollows,
49 checkActorFilesWereRemoved
52 // ---------------------------------------------------------------------------
54 function expectActorFollow (options: {
55 server: PeerTubeServer
56 data: (Account | VideoChannel)[]
61 const { server, data, handle, followers, following } = options
63 const actor = data.find(a => a.name + '@' + a.host === handle)
64 const message = `${handle} on ${server.url}`
66 expect(actor, message).to.exist
67 expect(actor.followersCount).to.equal(followers, message)
68 expect(actor.followingCount).to.equal(following, message)