2020-01-31 09:56:52 -06:00
|
|
|
/* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
|
2018-01-18 03:53:54 -06:00
|
|
|
|
2018-01-12 04:47:45 -06:00
|
|
|
import { expect } from 'chai'
|
2021-07-07 06:38:26 -05:00
|
|
|
import { pathExists, readdir } from 'fs-extra'
|
2021-07-20 07:15:15 -05:00
|
|
|
import { Account, VideoChannel } from '@shared/models'
|
2021-12-17 04:58:15 -06:00
|
|
|
import { PeerTubeServer } from '@shared/server-commands'
|
2021-07-07 06:38:26 -05:00
|
|
|
|
2021-07-20 07:15:15 -05:00
|
|
|
async function expectChannelsFollows (options: {
|
2021-07-16 02:47:51 -05:00
|
|
|
server: PeerTubeServer
|
2021-07-07 06:38:26 -05:00
|
|
|
handle: string
|
|
|
|
followers: number
|
|
|
|
following: number
|
|
|
|
}) {
|
2021-07-20 07:15:15 -05:00
|
|
|
const { server } = options
|
|
|
|
const { data } = await server.channels.list()
|
2021-07-07 06:38:26 -05:00
|
|
|
|
2021-07-20 07:15:15 -05:00
|
|
|
return expectActorFollow({ ...options, data })
|
|
|
|
}
|
2021-07-07 06:38:26 -05:00
|
|
|
|
2021-07-20 07:15:15 -05:00
|
|
|
async function expectAccountFollows (options: {
|
|
|
|
server: PeerTubeServer
|
|
|
|
handle: string
|
|
|
|
followers: number
|
|
|
|
following: number
|
|
|
|
}) {
|
|
|
|
const { server } = options
|
|
|
|
const { data } = await server.accounts.list()
|
|
|
|
|
|
|
|
return expectActorFollow({ ...options, data })
|
2018-01-12 04:47:45 -06:00
|
|
|
}
|
|
|
|
|
2022-10-04 03:53:00 -05:00
|
|
|
async function checkActorFilesWereRemoved (filename: string, server: PeerTubeServer) {
|
2018-01-18 03:53:54 -06:00
|
|
|
for (const directory of [ 'avatars' ]) {
|
2022-10-04 03:53:00 -05:00
|
|
|
const directoryPath = server.getDirectoryPath(directory)
|
2018-01-18 03:53:54 -06:00
|
|
|
|
2021-07-07 06:38:26 -05:00
|
|
|
const directoryExists = await pathExists(directoryPath)
|
2018-01-18 03:53:54 -06:00
|
|
|
expect(directoryExists).to.be.true
|
|
|
|
|
2018-08-27 09:23:34 -05:00
|
|
|
const files = await readdir(directoryPath)
|
2018-01-18 03:53:54 -06:00
|
|
|
for (const file of files) {
|
2019-05-31 07:02:26 -05:00
|
|
|
expect(file).to.not.contain(filename)
|
2018-01-18 03:53:54 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-01-03 09:38:50 -06:00
|
|
|
export {
|
2018-01-12 04:47:45 -06:00
|
|
|
expectAccountFollows,
|
2021-07-20 07:15:15 -05:00
|
|
|
expectChannelsFollows,
|
2021-07-07 06:38:26 -05:00
|
|
|
checkActorFilesWereRemoved
|
2018-01-03 09:38:50 -06:00
|
|
|
}
|
2021-07-20 07:15:15 -05:00
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
function expectActorFollow (options: {
|
|
|
|
server: PeerTubeServer
|
|
|
|
data: (Account | VideoChannel)[]
|
|
|
|
handle: string
|
|
|
|
followers: number
|
|
|
|
following: number
|
|
|
|
}) {
|
|
|
|
const { server, data, handle, followers, following } = options
|
|
|
|
|
|
|
|
const actor = data.find(a => a.name + '@' + a.host === handle)
|
|
|
|
const message = `${handle} on ${server.url}`
|
|
|
|
|
|
|
|
expect(actor, message).to.exist
|
|
|
|
expect(actor.followersCount).to.equal(followers, message)
|
|
|
|
expect(actor.followingCount).to.equal(following, message)
|
|
|
|
}
|