1 import * as request from 'supertest'
2 import { buildAbsoluteFixturePath } from '../miscs/miscs'
4 function makeGetRequest (options: {
9 statusCodeExpected?: number
11 if (!options.statusCodeExpected) options.statusCodeExpected = 400
13 const req = request(options.url)
15 .set('Accept', 'application/json')
17 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
18 if (options.query) req.query(options.query)
21 .expect('Content-Type', /json/)
22 .expect(options.statusCodeExpected)
25 function makeDeleteRequest (options: {
29 statusCodeExpected?: number
31 if (!options.statusCodeExpected) options.statusCodeExpected = 400
33 const req = request(options.url)
35 .set('Accept', 'application/json')
37 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
40 .expect('Content-Type', /json/)
41 .expect(options.statusCodeExpected)
44 function makeUploadRequest (options: {
46 method?: 'POST' | 'PUT',
49 fields: { [ fieldName: string ]: any },
50 attaches: { [ attachName: string ]: any },
51 statusCodeExpected?: number
53 if (!options.statusCodeExpected) options.statusCodeExpected = 400
56 if (options.method === 'PUT') {
57 req = request(options.url).put(options.path)
59 req = request(options.url).post(options.path)
62 req.set('Accept', 'application/json')
64 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
66 Object.keys(options.fields).forEach(field => {
67 const value = options.fields[field]
69 if (Array.isArray(value)) {
70 for (let i = 0; i < value.length; i++) {
71 req.field(field + '[' + i + ']', value[i])
74 req.field(field, value)
78 Object.keys(options.attaches).forEach(attach => {
79 const value = options.attaches[attach]
80 req.attach(attach, buildAbsoluteFixturePath(value))
83 return req.expect(options.statusCodeExpected)
86 function makePostBodyRequest (options: {
90 fields?: { [ fieldName: string ]: any },
91 statusCodeExpected?: number
93 if (!options.fields) options.fields = {}
94 if (!options.statusCodeExpected) options.statusCodeExpected = 400
96 const req = request(options.url)
98 .set('Accept', 'application/json')
100 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
102 return req.send(options.fields)
103 .expect(options.statusCodeExpected)
106 function makePutBodyRequest (options: {
110 fields: { [ fieldName: string ]: any },
111 statusCodeExpected?: number
113 if (!options.statusCodeExpected) options.statusCodeExpected = 400
115 const req = request(options.url)
117 .set('Accept', 'application/json')
119 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
121 return req.send(options.fields)
122 .expect(options.statusCodeExpected)
125 // ---------------------------------------------------------------------------