aboutsummaryrefslogtreecommitdiffhomepage
path: root/server
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-07-07 09:34:56 +0200
committerChocobozzz <me@florianbigard.com>2021-07-20 15:27:17 +0200
commit9c6327f803aaf4200672f1fc40b2f43786daca47 (patch)
tree962b975a5c3515804ed5d269019ce0aa3f5da6b3 /server
parentc3d29f694bf8c910f917be655626d0f80871124f (diff)
downloadPeerTube-9c6327f803aaf4200672f1fc40b2f43786daca47.tar.gz
PeerTube-9c6327f803aaf4200672f1fc40b2f43786daca47.tar.zst
PeerTube-9c6327f803aaf4200672f1fc40b2f43786daca47.zip
Introduce jobs command
Diffstat (limited to 'server')
-rw-r--r--server/tests/api/server/handle-down.ts7
-rw-r--r--server/tests/api/server/jobs.ts50
-rw-r--r--server/tests/api/videos/video-transcoder.ts8
3 files changed, 28 insertions, 37 deletions
diff --git a/server/tests/api/server/handle-down.ts b/server/tests/api/server/handle-down.ts
index eff4451e5..c6202fdaa 100644
--- a/server/tests/api/server/handle-down.ts
+++ b/server/tests/api/server/handle-down.ts
@@ -10,7 +10,6 @@ import {
10 closeAllSequelize, 10 closeAllSequelize,
11 completeVideoCheck, 11 completeVideoCheck,
12 flushAndRunMultipleServers, 12 flushAndRunMultipleServers,
13 getJobsListPaginationAndSort,
14 getVideo, 13 getVideo,
15 getVideoCommentThreads, 14 getVideoCommentThreads,
16 getVideosList, 15 getVideosList,
@@ -181,15 +180,13 @@ describe('Test handle downs', function () {
181 const states: JobState[] = [ 'waiting', 'active' ] 180 const states: JobState[] = [ 'waiting', 'active' ]
182 181
183 for (const state of states) { 182 for (const state of states) {
184 const res = await getJobsListPaginationAndSort({ 183 const body = await servers[0].jobsCommand.getJobsList({
185 url: servers[0].url,
186 accessToken: servers[0].accessToken,
187 state: state, 184 state: state,
188 start: 0, 185 start: 0,
189 count: 50, 186 count: 50,
190 sort: '-createdAt' 187 sort: '-createdAt'
191 }) 188 })
192 expect(res.body.data).to.have.length(0) 189 expect(body.data).to.have.length(0)
193 } 190 }
194 }) 191 })
195 192
diff --git a/server/tests/api/server/jobs.ts b/server/tests/api/server/jobs.ts
index 6576dd7af..c0b9facff 100644
--- a/server/tests/api/server/jobs.ts
+++ b/server/tests/api/server/jobs.ts
@@ -2,13 +2,16 @@
2 2
3import 'mocha' 3import 'mocha'
4import * as chai from 'chai' 4import * as chai from 'chai'
5import { cleanupTests, ServerInfo, setAccessTokensToServers } from '../../../../shared/extra-utils/index' 5import {
6import { dateIsValid } from '../../../../shared/extra-utils/miscs/miscs' 6 cleanupTests,
7import { doubleFollow } from '../../../../shared/extra-utils/server/follows' 7 dateIsValid,
8import { getJobsList, getJobsListPaginationAndSort, waitJobs } from '../../../../shared/extra-utils/server/jobs' 8 doubleFollow,
9import { flushAndRunMultipleServers } from '../../../../shared/extra-utils/server/servers' 9 flushAndRunMultipleServers,
10import { uploadVideo } from '../../../../shared/extra-utils/videos/videos' 10 ServerInfo,
11import { Job } from '../../../../shared/models/server' 11 setAccessTokensToServers,
12 uploadVideo,
13 waitJobs
14} from '@shared/extra-utils'
12 15
13const expect = chai.expect 16const expect = chai.expect
14 17
@@ -36,27 +39,25 @@ describe('Test jobs', function () {
36 }) 39 })
37 40
38 it('Should list jobs', async function () { 41 it('Should list jobs', async function () {
39 const res = await getJobsList(servers[1].url, servers[1].accessToken, 'completed') 42 const body = await servers[1].jobsCommand.getJobsList({ state: 'completed' })
40 expect(res.body.total).to.be.above(2) 43 expect(body.total).to.be.above(2)
41 expect(res.body.data).to.have.length.above(2) 44 expect(body.data).to.have.length.above(2)
42 }) 45 })
43 46
44 it('Should list jobs with sort, pagination and job type', async function () { 47 it('Should list jobs with sort, pagination and job type', async function () {
45 { 48 {
46 const res = await getJobsListPaginationAndSort({ 49 const body = await servers[1].jobsCommand.getJobsList({
47 url: servers[1].url,
48 accessToken: servers[1].accessToken,
49 state: 'completed', 50 state: 'completed',
50 start: 1, 51 start: 1,
51 count: 2, 52 count: 2,
52 sort: 'createdAt' 53 sort: 'createdAt'
53 }) 54 })
54 expect(res.body.total).to.be.above(2) 55 expect(body.total).to.be.above(2)
55 expect(res.body.data).to.have.lengthOf(2) 56 expect(body.data).to.have.lengthOf(2)
56 57
57 let job: Job = res.body.data[0] 58 let job = body.data[0]
58 // Skip repeat jobs 59 // Skip repeat jobs
59 if (job.type === 'videos-views') job = res.body.data[1] 60 if (job.type === 'videos-views') job = body.data[1]
60 61
61 expect(job.state).to.equal('completed') 62 expect(job.state).to.equal('completed')
62 expect(job.type.startsWith('activitypub-')).to.be.true 63 expect(job.type.startsWith('activitypub-')).to.be.true
@@ -66,29 +67,26 @@ describe('Test jobs', function () {
66 } 67 }
67 68
68 { 69 {
69 const res = await getJobsListPaginationAndSort({ 70 const body = await servers[1].jobsCommand.getJobsList({
70 url: servers[1].url,
71 accessToken: servers[1].accessToken,
72 state: 'completed', 71 state: 'completed',
73 start: 0, 72 start: 0,
74 count: 100, 73 count: 100,
75 sort: 'createdAt', 74 sort: 'createdAt',
76 jobType: 'activitypub-http-broadcast' 75 jobType: 'activitypub-http-broadcast'
77 }) 76 })
78 expect(res.body.total).to.be.above(2) 77 expect(body.total).to.be.above(2)
79 78
80 for (const j of res.body.data as Job[]) { 79 for (const j of body.data) {
81 expect(j.type).to.equal('activitypub-http-broadcast') 80 expect(j.type).to.equal('activitypub-http-broadcast')
82 } 81 }
83 } 82 }
84 }) 83 })
85 84
86 it('Should list all jobs', async function () { 85 it('Should list all jobs', async function () {
87 const res = await getJobsList(servers[1].url, servers[1].accessToken) 86 const body = await servers[1].jobsCommand.getJobsList()
87 expect(body.total).to.be.above(2)
88 88
89 const jobs = res.body.data as Job[] 89 const jobs = body.data
90
91 expect(res.body.total).to.be.above(2)
92 expect(jobs).to.have.length.above(2) 90 expect(jobs).to.have.length.above(2)
93 91
94 // We know there are a least 1 delayed job (video views) and 1 completed job (broadcast) 92 // We know there are a least 1 delayed job (video views) and 1 completed job (broadcast)
diff --git a/server/tests/api/videos/video-transcoder.ts b/server/tests/api/videos/video-transcoder.ts
index ea5ffd239..c95053a29 100644
--- a/server/tests/api/videos/video-transcoder.ts
+++ b/server/tests/api/videos/video-transcoder.ts
@@ -16,7 +16,6 @@ import {
16 flushAndRunMultipleServers, 16 flushAndRunMultipleServers,
17 generateHighBitrateVideo, 17 generateHighBitrateVideo,
18 generateVideoWithFramerate, 18 generateVideoWithFramerate,
19 getJobsListPaginationAndSort,
20 getMyVideos, 19 getMyVideos,
21 getServerFileSize, 20 getServerFileSize,
22 getVideo, 21 getVideo,
@@ -709,17 +708,14 @@ describe('Test video transcoding', function () {
709 describe('Transcoding job queue', function () { 708 describe('Transcoding job queue', function () {
710 709
711 it('Should have the appropriate priorities for transcoding jobs', async function () { 710 it('Should have the appropriate priorities for transcoding jobs', async function () {
712 const res = await getJobsListPaginationAndSort({ 711 const body = await servers[1].jobsCommand.getJobsList({
713 url: servers[1].url,
714 accessToken: servers[1].accessToken,
715 start: 0, 712 start: 0,
716 count: 100, 713 count: 100,
717 sort: '-createdAt', 714 sort: '-createdAt',
718 jobType: 'video-transcoding' 715 jobType: 'video-transcoding'
719 }) 716 })
720 717
721 const jobs = res.body.data as Job[] 718 const jobs = body.data
722
723 const transcodingJobs = jobs.filter(j => j.data.videoUUID === video4k) 719 const transcodingJobs = jobs.filter(j => j.data.videoUUID === video4k)
724 720
725 expect(transcodingJobs).to.have.lengthOf(14) 721 expect(transcodingJobs).to.have.lengthOf(14)