mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-02-25 18:55:32 -06:00
Add ability to list jobs
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
// Order of the tests we want to execute
|
||||
import './follows'
|
||||
import './jobs'
|
||||
import './users'
|
||||
import './services'
|
||||
import './videos'
|
||||
|
||||
84
server/tests/api/check-params/jobs.ts
Normal file
84
server/tests/api/check-params/jobs.ts
Normal file
@@ -0,0 +1,84 @@
|
||||
/* tslint:disable:no-unused-expression */
|
||||
|
||||
import 'mocha'
|
||||
import * as request from 'supertest'
|
||||
|
||||
import { createUser, flushTests, getUserAccessToken, killallServers, runServer, ServerInfo, setAccessTokensToServers } from '../../utils'
|
||||
|
||||
describe('Test jobs API validators', function () {
|
||||
const path = '/api/v1/jobs/'
|
||||
let server: ServerInfo
|
||||
let userAccessToken = ''
|
||||
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
before(async function () {
|
||||
this.timeout(120000)
|
||||
|
||||
await flushTests()
|
||||
|
||||
server = await runServer(1)
|
||||
|
||||
await setAccessTokensToServers([ server ])
|
||||
|
||||
const user = {
|
||||
username: 'user1',
|
||||
password: 'my super password'
|
||||
}
|
||||
await createUser(server.url, server.accessToken, user.username, user.password)
|
||||
userAccessToken = await getUserAccessToken(server, user)
|
||||
})
|
||||
|
||||
describe('When listing jobs', function () {
|
||||
it('Should fail with a bad start pagination', async function () {
|
||||
await request(server.url)
|
||||
.get(path)
|
||||
.query({ start: 'hello' })
|
||||
.set('Accept', 'application/json')
|
||||
.set('Authorization', 'Bearer ' + server.accessToken)
|
||||
.expect(400)
|
||||
})
|
||||
|
||||
it('Should fail with a bad count pagination', async function () {
|
||||
await request(server.url)
|
||||
.get(path)
|
||||
.query({ count: 'hello' })
|
||||
.set('Accept', 'application/json')
|
||||
.set('Authorization', 'Bearer ' + server.accessToken)
|
||||
.expect(400)
|
||||
})
|
||||
|
||||
it('Should fail with an incorrect sort', async function () {
|
||||
await request(server.url)
|
||||
.get(path)
|
||||
.query({ sort: 'hello' })
|
||||
.set('Accept', 'application/json')
|
||||
.set('Authorization', 'Bearer ' + server.accessToken)
|
||||
.expect(400)
|
||||
})
|
||||
|
||||
it('Should fail with a non authenticated user', async function () {
|
||||
await request(server.url)
|
||||
.get(path)
|
||||
.set('Accept', 'application/json')
|
||||
.expect(401)
|
||||
})
|
||||
|
||||
it('Should fail with a non admin user', async function () {
|
||||
await request(server.url)
|
||||
.get(path)
|
||||
.set('Accept', 'application/json')
|
||||
.set('Authorization', 'Bearer ' + userAccessToken)
|
||||
.expect(403)
|
||||
})
|
||||
})
|
||||
|
||||
after(async function () {
|
||||
killallServers([ server ])
|
||||
|
||||
// Keep the logs if the test failed
|
||||
if (this['ok']) {
|
||||
await flushTests()
|
||||
}
|
||||
})
|
||||
})
|
||||
@@ -3,3 +3,4 @@
|
||||
import './video-transcoder'
|
||||
import './multiple-servers'
|
||||
import './follows'
|
||||
import './jobs'
|
||||
|
||||
64
server/tests/api/jobs.ts
Normal file
64
server/tests/api/jobs.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
/* tslint:disable:no-unused-expression */
|
||||
|
||||
import * as chai from 'chai'
|
||||
import 'mocha'
|
||||
import { flushTests, killallServers, ServerInfo, setAccessTokensToServers, wait } from '../utils'
|
||||
import { doubleFollow } from '../utils/follows'
|
||||
import { getJobsList, getJobsListPaginationAndSort } from '../utils/jobs'
|
||||
import { flushAndRunMultipleServers } from '../utils/servers'
|
||||
import { uploadVideo } from '../utils/videos'
|
||||
import { dateIsValid } from '../utils/miscs'
|
||||
|
||||
const expect = chai.expect
|
||||
|
||||
describe('Test jobs', function () {
|
||||
let servers: ServerInfo[]
|
||||
|
||||
before(async function () {
|
||||
this.timeout(30000)
|
||||
|
||||
servers = await flushAndRunMultipleServers(2)
|
||||
|
||||
await setAccessTokensToServers(servers)
|
||||
|
||||
// Server 1 and server 2 follow each other
|
||||
await doubleFollow(servers[0], servers[1])
|
||||
})
|
||||
|
||||
it('Should create some jobs', async function () {
|
||||
this.timeout(30000)
|
||||
|
||||
await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'video1' })
|
||||
await uploadVideo(servers[1].url, servers[1].accessToken, { name: 'video2' })
|
||||
|
||||
await wait(15000)
|
||||
})
|
||||
|
||||
it('Should list jobs', async function () {
|
||||
const res = await getJobsList(servers[1].url, servers[1].accessToken)
|
||||
expect(res.body.total).to.be.above(2)
|
||||
expect(res.body.data).to.have.length.above(2)
|
||||
})
|
||||
|
||||
it('Should list jobs with sort and pagination', async function () {
|
||||
const res = await getJobsListPaginationAndSort(servers[1].url, servers[1].accessToken, 4, 1, 'createdAt')
|
||||
expect(res.body.total).to.be.above(2)
|
||||
expect(res.body.data).to.have.lengthOf(1)
|
||||
|
||||
const job = res.body.data[0]
|
||||
expect(job.state).to.equal('success')
|
||||
expect(job.category).to.equal('transcoding')
|
||||
expect(job.handlerName).to.have.length.above(3)
|
||||
expect(dateIsValid(job.createdAt)).to.be.true
|
||||
expect(dateIsValid(job.updatedAt)).to.be.true
|
||||
})
|
||||
|
||||
after(async function () {
|
||||
killallServers(servers)
|
||||
|
||||
// Keep the logs if the test failed
|
||||
if (this['ok']) {
|
||||
await flushTests()
|
||||
}
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user