]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/tests/utils/requests/requests.ts
Add ability to set video thumbnail/preview
[github/Chocobozzz/PeerTube.git] / server / tests / utils / requests / requests.ts
CommitLineData
0e1dc3e7 1import * as request from 'supertest'
ac81d1a0 2import { buildAbsoluteFixturePath } from '../'
0e1dc3e7 3
eec63bbc
C
4function makeGetRequest (options: {
5 url: string,
6 path: string,
7 query?: any,
8 token?: string,
9 statusCodeExpected?: number
10}) {
11 if (!options.statusCodeExpected) options.statusCodeExpected = 400
12
13 const req = request(options.url)
14 .get(options.path)
0e1dc3e7 15 .set('Accept', 'application/json')
eec63bbc
C
16
17 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
18 if (options.query) req.query(options.query)
19
20 return req
0e1dc3e7 21 .expect('Content-Type', /json/)
eec63bbc
C
22 .expect(options.statusCodeExpected)
23}
24
25function makeDeleteRequest (options: {
26 url: string,
27 path: string,
28 token?: string,
29 statusCodeExpected?: number
30}) {
31 if (!options.statusCodeExpected) options.statusCodeExpected = 400
32
33 const req = request(options.url)
34 .delete(options.path)
35 .set('Accept', 'application/json')
36
37 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
38
39 return req
40 .expect('Content-Type', /json/)
41 .expect(options.statusCodeExpected)
0e1dc3e7
C
42}
43
ac81d1a0 44function makeUploadRequest (options: {
0e1dc3e7 45 url: string,
ac81d1a0 46 method?: 'POST' | 'PUT',
0e1dc3e7
C
47 path: string,
48 token: string,
49 fields: { [ fieldName: string ]: any },
50 attaches: { [ attachName: string ]: any },
51 statusCodeExpected?: number
52}) {
53 if (!options.statusCodeExpected) options.statusCodeExpected = 400
54
ac81d1a0
C
55 let req: request.Test
56 if (options.method === 'PUT') {
57 req = request(options.url).put(options.path)
58 } else {
59 req = request(options.url).post(options.path)
60 }
61
62 req.set('Accept', 'application/json')
0e1dc3e7
C
63
64 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
65
66 Object.keys(options.fields).forEach(field => {
67 const value = options.fields[field]
68
69 if (Array.isArray(value)) {
70 for (let i = 0; i < value.length; i++) {
71 req.field(field + '[' + i + ']', value[i])
72 }
73 } else {
74 req.field(field, value)
75 }
76 })
77
78 Object.keys(options.attaches).forEach(attach => {
79 const value = options.attaches[attach]
ac81d1a0 80 req.attach(attach, buildAbsoluteFixturePath(value))
0e1dc3e7
C
81 })
82
83 return req.expect(options.statusCodeExpected)
84}
85
86function makePostBodyRequest (options: {
87 url: string,
88 path: string,
89 token?: string,
eec63bbc 90 fields?: { [ fieldName: string ]: any },
0e1dc3e7
C
91 statusCodeExpected?: number
92}) {
eec63bbc 93 if (!options.fields) options.fields = {}
0e1dc3e7
C
94 if (!options.statusCodeExpected) options.statusCodeExpected = 400
95
96 const req = request(options.url)
97 .post(options.path)
98 .set('Accept', 'application/json')
99
100 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
101
102 return req.send(options.fields)
103 .expect(options.statusCodeExpected)
104}
105
106function makePutBodyRequest (options: {
107 url: string,
108 path: string,
fd206f0b 109 token?: string,
0e1dc3e7
C
110 fields: { [ fieldName: string ]: any },
111 statusCodeExpected?: number
112}) {
113 if (!options.statusCodeExpected) options.statusCodeExpected = 400
114
115 const req = request(options.url)
116 .put(options.path)
117 .set('Accept', 'application/json')
118
119 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
120
121 return req.send(options.fields)
122 .expect(options.statusCodeExpected)
123}
124
125// ---------------------------------------------------------------------------
126
127export {
128 makeGetRequest,
ac81d1a0 129 makeUploadRequest,
0e1dc3e7 130 makePostBodyRequest,
eec63bbc
C
131 makePutBodyRequest,
132 makeDeleteRequest
0e1dc3e7 133}