2019-06-13 04:09:38 -05:00
|
|
|
/* tslint:disable:no-unused-expression */
|
|
|
|
|
2018-09-13 07:27:44 -05:00
|
|
|
import 'mocha'
|
2019-06-13 04:09:38 -05:00
|
|
|
import { expect } from 'chai'
|
2018-09-13 07:27:44 -05:00
|
|
|
import {
|
2019-06-13 04:09:38 -05:00
|
|
|
addVideoChannel,
|
|
|
|
buildAbsoluteFixturePath,
|
|
|
|
cleanupTests,
|
2018-09-13 07:27:44 -05:00
|
|
|
createUser,
|
|
|
|
execCLI,
|
2019-04-24 03:53:40 -05:00
|
|
|
flushAndRunServer,
|
2019-06-13 04:09:38 -05:00
|
|
|
getEnvCli,
|
|
|
|
getMyUserInformation,
|
|
|
|
getVideosList,
|
2018-09-13 07:27:44 -05:00
|
|
|
ServerInfo,
|
2019-06-13 04:09:38 -05:00
|
|
|
setAccessTokensToServers,
|
|
|
|
userLogin, waitJobs
|
2019-04-15 08:26:15 -05:00
|
|
|
} from '../../../shared/extra-utils'
|
2019-06-13 04:09:38 -05:00
|
|
|
import { User, Video } from '../../../shared'
|
|
|
|
import { getYoutubeVideoUrl } from '../../../shared/extra-utils/videos/video-imports'
|
2018-09-13 07:27:44 -05:00
|
|
|
|
|
|
|
describe('Test CLI wrapper', function () {
|
|
|
|
let server: ServerInfo
|
2019-06-13 04:09:38 -05:00
|
|
|
let channelId: number
|
|
|
|
|
2018-09-13 07:27:44 -05:00
|
|
|
const cmd = 'node ./dist/server/tools/peertube.js'
|
|
|
|
|
|
|
|
before(async function () {
|
|
|
|
this.timeout(30000)
|
2019-06-13 04:09:38 -05:00
|
|
|
|
2019-04-24 03:53:40 -05:00
|
|
|
server = await flushAndRunServer(1)
|
2018-09-13 07:27:44 -05:00
|
|
|
await setAccessTokensToServers([ server ])
|
|
|
|
|
2019-06-13 04:09:38 -05:00
|
|
|
await createUser({ url: server.url, accessToken: server.accessToken, username: 'user_1', password: 'super_password' })
|
|
|
|
|
|
|
|
const userAccessToken = await userLogin(server, { username: 'user_1', password: 'super_password' })
|
|
|
|
|
|
|
|
{
|
|
|
|
const res = await addVideoChannel(server.url, userAccessToken, { name: 'user_channel', displayName: 'User channel' })
|
|
|
|
channelId = res.body.videoChannel.id
|
|
|
|
}
|
2018-09-13 07:27:44 -05:00
|
|
|
})
|
|
|
|
|
|
|
|
it('Should display no selected instance', async function () {
|
|
|
|
this.timeout(60000)
|
|
|
|
|
|
|
|
const env = getEnvCli(server)
|
|
|
|
const stdout = await execCLI(`${env} ${cmd} --help`)
|
|
|
|
|
2019-06-13 04:09:38 -05:00
|
|
|
expect(stdout).to.contain('no instance selected')
|
|
|
|
})
|
|
|
|
|
|
|
|
it('Should add a user', async function () {
|
|
|
|
this.timeout(60000)
|
|
|
|
|
|
|
|
const env = getEnvCli(server)
|
|
|
|
await execCLI(`${env} ${cmd} auth add -u ${server.url} -U user_1 -p super_password`)
|
|
|
|
})
|
|
|
|
|
|
|
|
it('Should default to this user', async function () {
|
|
|
|
this.timeout(60000)
|
|
|
|
|
|
|
|
const env = getEnvCli(server)
|
|
|
|
const stdout = await execCLI(`${env} ${cmd} --help`)
|
|
|
|
|
|
|
|
expect(stdout).to.contain(`instance ${server.url} selected`)
|
|
|
|
})
|
|
|
|
|
|
|
|
it('Should remember the user', async function () {
|
|
|
|
this.timeout(60000)
|
|
|
|
|
|
|
|
const env = getEnvCli(server)
|
|
|
|
const stdout = await execCLI(`${env} ${cmd} auth list`)
|
|
|
|
|
|
|
|
expect(stdout).to.contain(server.url)
|
|
|
|
})
|
|
|
|
|
|
|
|
it('Should upload a video', async function () {
|
|
|
|
this.timeout(60000)
|
|
|
|
|
|
|
|
const env = getEnvCli(server)
|
|
|
|
|
|
|
|
const fixture = buildAbsoluteFixturePath('60fps_720p_small.mp4')
|
|
|
|
|
|
|
|
const params = `-f ${fixture} --video-name 'test upload' --channel-id ${channelId}`
|
|
|
|
|
|
|
|
await execCLI(`${env} ${cmd} upload ${params}`)
|
|
|
|
})
|
|
|
|
|
|
|
|
it('Should have the video uploaded', async function () {
|
|
|
|
const res = await getVideosList(server.url)
|
|
|
|
|
|
|
|
expect(res.body.total).to.equal(1)
|
|
|
|
|
|
|
|
const videos: Video[] = res.body.data
|
|
|
|
expect(videos[0].name).to.equal('test upload')
|
|
|
|
expect(videos[0].channel.name).to.equal('user_channel')
|
|
|
|
})
|
|
|
|
|
|
|
|
it('Should import a video', async function () {
|
|
|
|
this.timeout(60000)
|
|
|
|
|
|
|
|
const env = getEnvCli(server)
|
|
|
|
|
|
|
|
const params = `--target-url ${getYoutubeVideoUrl()} --channel-id ${channelId}`
|
|
|
|
|
|
|
|
await execCLI(`${env} ${cmd} import ${params}`)
|
2018-09-13 07:27:44 -05:00
|
|
|
})
|
|
|
|
|
2019-06-13 04:09:38 -05:00
|
|
|
it('Should have imported the video', async function () {
|
2018-09-13 07:27:44 -05:00
|
|
|
this.timeout(60000)
|
|
|
|
|
2019-06-13 04:09:38 -05:00
|
|
|
await waitJobs([ server ])
|
|
|
|
|
|
|
|
const res = await getVideosList(server.url)
|
|
|
|
|
|
|
|
expect(res.body.total).to.equal(2)
|
|
|
|
|
|
|
|
const videos: Video[] = res.body.data
|
|
|
|
const video = videos.find(v => v.name === 'small video - youtube')
|
|
|
|
|
|
|
|
expect(video).to.not.be.undefined
|
|
|
|
expect(video.channel.name).to.equal('user_channel')
|
|
|
|
})
|
|
|
|
|
|
|
|
it('Should remove the auth user', async function () {
|
2018-09-13 07:27:44 -05:00
|
|
|
const env = getEnvCli(server)
|
2019-06-13 04:09:38 -05:00
|
|
|
|
|
|
|
await execCLI(`${env} ${cmd} auth del ${server.url}`)
|
|
|
|
|
|
|
|
const stdout = await execCLI(`${env} ${cmd} --help`)
|
|
|
|
|
|
|
|
expect(stdout).to.contain('no instance selected')
|
2018-09-13 07:27:44 -05:00
|
|
|
})
|
|
|
|
|
|
|
|
after(async function () {
|
2018-11-14 08:45:50 -06:00
|
|
|
this.timeout(10000)
|
|
|
|
|
2019-04-24 08:10:37 -05:00
|
|
|
await cleanupTests([ server ])
|
2018-09-13 07:27:44 -05:00
|
|
|
})
|
|
|
|
})
|