1 import * as request from 'supertest'
2 import { buildAbsoluteFixturePath } from '../miscs/miscs'
3 import { isAbsolute, join } from 'path'
5 function makeGetRequest (options: {
10 statusCodeExpected?: number
12 if (!options.statusCodeExpected) options.statusCodeExpected = 400
14 const req = request(options.url)
16 .set('Accept', 'application/json')
18 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
19 if (options.query) req.query(options.query)
22 .expect('Content-Type', /json/)
23 .expect(options.statusCodeExpected)
26 function makeDeleteRequest (options: {
30 statusCodeExpected?: number
32 if (!options.statusCodeExpected) options.statusCodeExpected = 400
34 const req = request(options.url)
36 .set('Accept', 'application/json')
38 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
41 .expect('Content-Type', /json/)
42 .expect(options.statusCodeExpected)
45 function makeUploadRequest (options: {
47 method?: 'POST' | 'PUT',
50 fields: { [ fieldName: string ]: any },
51 attaches: { [ attachName: string ]: any },
52 statusCodeExpected?: number
54 if (!options.statusCodeExpected) options.statusCodeExpected = 400
57 if (options.method === 'PUT') {
58 req = request(options.url).put(options.path)
60 req = request(options.url).post(options.path)
63 req.set('Accept', 'application/json')
65 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
67 Object.keys(options.fields).forEach(field => {
68 const value = options.fields[field]
70 if (Array.isArray(value)) {
71 for (let i = 0; i < value.length; i++) {
72 req.field(field + '[' + i + ']', value[i])
75 req.field(field, value)
79 Object.keys(options.attaches).forEach(attach => {
80 const value = options.attaches[attach]
81 req.attach(attach, buildAbsoluteFixturePath(value))
84 return req.expect(options.statusCodeExpected)
87 function makePostBodyRequest (options: {
91 fields?: { [ fieldName: string ]: any },
92 statusCodeExpected?: number
94 if (!options.fields) options.fields = {}
95 if (!options.statusCodeExpected) options.statusCodeExpected = 400
97 const req = request(options.url)
99 .set('Accept', 'application/json')
101 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
103 return req.send(options.fields)
104 .expect(options.statusCodeExpected)
107 function makePutBodyRequest (options: {
111 fields: { [ fieldName: string ]: any },
112 statusCodeExpected?: number
114 if (!options.statusCodeExpected) options.statusCodeExpected = 400
116 const req = request(options.url)
118 .set('Accept', 'application/json')
120 if (options.token) req.set('Authorization', 'Bearer ' + options.token)
122 return req.send(options.fields)
123 .expect(options.statusCodeExpected)
126 function makeHTMLRequest (url: string, path: string) {
129 .set('Accept', 'text/html')
133 function updateAvatarRequest (options: {
140 if (isAbsolute(options.fixture)) {
141 filePath = options.fixture
143 filePath = join(__dirname, '..', '..', 'fixtures', options.fixture)
146 return makeUploadRequest({
149 token: options.accessToken,
151 attaches: { avatarfile: filePath },
152 statusCodeExpected: 200
156 // ---------------------------------------------------------------------------