From eec63bbc0f4fdb39e56f37127b35c449f90a135f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 28 Dec 2017 14:29:57 +0100 Subject: Improve check follow params tests --- server/tests/utils/requests/check-api-params.ts | 36 +++++++++++++++++++ server/tests/utils/requests/requests.ts | 46 +++++++++++++++++++++---- server/tests/utils/server/servers.ts | 2 +- server/tests/utils/users/login.ts | 10 +++--- server/tests/utils/videos/videos.ts | 20 ++++++++--- 5 files changed, 98 insertions(+), 16 deletions(-) create mode 100644 server/tests/utils/requests/check-api-params.ts (limited to 'server/tests/utils') diff --git a/server/tests/utils/requests/check-api-params.ts b/server/tests/utils/requests/check-api-params.ts new file mode 100644 index 000000000..fbd660629 --- /dev/null +++ b/server/tests/utils/requests/check-api-params.ts @@ -0,0 +1,36 @@ +import { makeGetRequest } from './requests' + +function checkBadStartPagination (url: string, path: string) { + return makeGetRequest({ + url, + path, + query: { start: 'hello' }, + statusCodeExpected: 400 + }) +} + +function checkBadCountPagination (url: string, path: string) { + return makeGetRequest({ + url, + path, + query: { count: 'hello' }, + statusCodeExpected: 400 + }) +} + +function checkBadSortPagination (url: string, path: string) { + return makeGetRequest({ + url, + path, + query: { sort: 'hello' }, + statusCodeExpected: 400 + }) +} + +// --------------------------------------------------------------------------- + +export { + checkBadStartPagination, + checkBadCountPagination, + checkBadSortPagination +} diff --git a/server/tests/utils/requests/requests.ts b/server/tests/utils/requests/requests.ts index 52b7a4c29..eb02cf9e6 100644 --- a/server/tests/utils/requests/requests.ts +++ b/server/tests/utils/requests/requests.ts @@ -1,11 +1,43 @@ import * as request from 'supertest' -function makeGetRequest (url: string, path: string) { - return request(url) - .get(path) +function makeGetRequest (options: { + url: string, + path: string, + query?: any, + token?: string, + statusCodeExpected?: number +}) { + if (!options.statusCodeExpected) options.statusCodeExpected = 400 + + const req = request(options.url) + .get(options.path) .set('Accept', 'application/json') - .expect(200) + + if (options.token) req.set('Authorization', 'Bearer ' + options.token) + if (options.query) req.query(options.query) + + return req .expect('Content-Type', /json/) + .expect(options.statusCodeExpected) +} + +function makeDeleteRequest (options: { + url: string, + path: string, + token?: string, + statusCodeExpected?: number +}) { + if (!options.statusCodeExpected) options.statusCodeExpected = 400 + + const req = request(options.url) + .delete(options.path) + .set('Accept', 'application/json') + + if (options.token) req.set('Authorization', 'Bearer ' + options.token) + + return req + .expect('Content-Type', /json/) + .expect(options.statusCodeExpected) } function makePostUploadRequest (options: { @@ -48,9 +80,10 @@ function makePostBodyRequest (options: { url: string, path: string, token?: string, - fields: { [ fieldName: string ]: any }, + fields?: { [ fieldName: string ]: any }, statusCodeExpected?: number }) { + if (!options.fields) options.fields = {} if (!options.statusCodeExpected) options.statusCodeExpected = 400 const req = request(options.url) @@ -88,5 +121,6 @@ export { makeGetRequest, makePostUploadRequest, makePostBodyRequest, - makePutBodyRequest + makePutBodyRequest, + makeDeleteRequest } diff --git a/server/tests/utils/server/servers.ts b/server/tests/utils/server/servers.ts index 8340fbc18..4add2f69a 100644 --- a/server/tests/utils/server/servers.ts +++ b/server/tests/utils/server/servers.ts @@ -114,7 +114,7 @@ function runServer (serverNumber: number, configOverride?: Object) { } return new Promise(res => { - server.app = fork(join(__dirname, '..', '..', '..', 'dist', 'server.js'), [], options) + server.app = fork(join(__dirname, '..', '..', '..', '..', 'dist', 'server.js'), [], options) server.app.stdout.on('data', function onStdout (data) { let dontContinue = false diff --git a/server/tests/utils/users/login.ts b/server/tests/utils/users/login.ts index 855c4828d..04444e2f1 100644 --- a/server/tests/utils/users/login.ts +++ b/server/tests/utils/users/login.ts @@ -26,13 +26,13 @@ function login (url: string, client: Client, user: User, expectedStatus = 200) { .expect(expectedStatus) } -async function loginAndGetAccessToken (server: Server) { +async function serverLogin (server: Server) { const res = await login(server.url, server.client, server.user, 200) return res.body.access_token as string } -async function getUserAccessToken (server: Server, user: User) { +async function userLogin (server: Server, user: User) { const res = await login(server.url, server.client, user, 200) return res.body.access_token as string @@ -42,7 +42,7 @@ function setAccessTokensToServers (servers: ServerInfo[]) { const tasks: Promise[] = [] for (const server of servers) { - const p = loginAndGetAccessToken(server).then(t => server.accessToken = t) + const p = serverLogin(server).then(t => server.accessToken = t) tasks.push(p) } @@ -53,7 +53,7 @@ function setAccessTokensToServers (servers: ServerInfo[]) { export { login, - loginAndGetAccessToken, - getUserAccessToken, + serverLogin, + userLogin, setAccessTokensToServers } diff --git a/server/tests/utils/videos/videos.ts b/server/tests/utils/videos/videos.ts index 6de1b8c92..f64ebd2b0 100644 --- a/server/tests/utils/videos/videos.ts +++ b/server/tests/utils/videos/videos.ts @@ -21,25 +21,37 @@ type VideoAttributes = { function getVideoCategories (url: string) { const path = '/api/v1/videos/categories' - return makeGetRequest(url, path) + return makeGetRequest({ + url, + path + }) } function getVideoLicences (url: string) { const path = '/api/v1/videos/licences' - return makeGetRequest(url, path) + return makeGetRequest({ + url, + path + }) } function getVideoLanguages (url: string) { const path = '/api/v1/videos/languages' - return makeGetRequest(url, path) + return makeGetRequest({ + url, + path + }) } function getVideoPrivacies (url: string) { const path = '/api/v1/videos/privacies' - return makeGetRequest(url, path) + return makeGetRequest({ + url, + path + }) } function getVideo (url: string, id: number | string, expectedStatus = 200) { -- cgit v1.2.3