X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fextra-utils%2Fserver%2Fjobs.ts;h=d984b3d1efe62ffc5c310b3539ff758561a42acc;hb=134cf2bce96a8c5aefd55154e884964975d8cf23;hp=692b5e24d4b6f8eb01c3a7627cb1970321b58bb6;hpb=97567dd81f508dd6295ac4d73d849aa2ce0a6549;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/extra-utils/server/jobs.ts b/shared/extra-utils/server/jobs.ts index 692b5e24d..d984b3d1e 100644 --- a/shared/extra-utils/server/jobs.ts +++ b/shared/extra-utils/server/jobs.ts @@ -1,31 +1,46 @@ import * as request from 'supertest' -import { Job, JobState } from '../../models' +import { Job, JobState, JobType } from '../../models' import { wait } from '../miscs/miscs' import { ServerInfo } from './servers' +import { makeGetRequest } from '../../../shared/extra-utils' function getJobsList (url: string, accessToken: string, state: JobState) { const path = '/api/v1/jobs/' + state return request(url) - .get(path) - .set('Accept', 'application/json') - .set('Authorization', 'Bearer ' + accessToken) - .expect(200) - .expect('Content-Type', /json/) + .get(path) + .set('Accept', 'application/json') + .set('Authorization', 'Bearer ' + accessToken) + .expect(200) + .expect('Content-Type', /json/) } -function getJobsListPaginationAndSort (url: string, accessToken: string, state: JobState, start: number, count: number, sort: string) { +function getJobsListPaginationAndSort (options: { + url: string + accessToken: string + state: JobState + start: number + count: number + sort: string + jobType?: JobType +}) { + const { url, accessToken, state, start, count, sort, jobType } = options const path = '/api/v1/jobs/' + state - return request(url) - .get(path) - .query({ start }) - .query({ count }) - .query({ sort }) - .set('Accept', 'application/json') - .set('Authorization', 'Bearer ' + accessToken) - .expect(200) - .expect('Content-Type', /json/) + const query = { + start, + count, + sort, + jobType + } + + return makeGetRequest({ + url, + path, + token: accessToken, + statusCodeExpected: 200, + query + }) } async function waitJobs (serversArg: ServerInfo[] | ServerInfo) { @@ -36,20 +51,28 @@ async function waitJobs (serversArg: ServerInfo[] | ServerInfo) { else servers = serversArg as ServerInfo[] const states: JobState[] = [ 'waiting', 'active', 'delayed' ] - let pendingRequests = false + let pendingRequests: boolean function tasksBuilder () { const tasks: Promise[] = [] - pendingRequests = false // Check if each server has pending request for (const server of servers) { for (const state of states) { - const p = getJobsListPaginationAndSort(server.url, server.accessToken, state, 0, 10, '-createdAt') + const p = getJobsListPaginationAndSort({ + url: server.url, + accessToken: server.accessToken, + state: state, + start: 0, + count: 10, + sort: '-createdAt' + }) .then(res => res.body.data) .then((jobs: Job[]) => jobs.filter(j => j.type !== 'videos-views')) .then(jobs => { - if (jobs.length !== 0) pendingRequests = true + if (jobs.length !== 0) { + pendingRequests = true + } }) tasks.push(p) } @@ -59,6 +82,7 @@ async function waitJobs (serversArg: ServerInfo[] | ServerInfo) { } do { + pendingRequests = false await Promise.all(tasksBuilder()) // Retry, in case of new jobs were created