]>
Commit | Line | Data |
---|---|---|
1 | import * as request from 'supertest' | |
2 | import { buildAbsoluteFixturePath } from '../' | |
3 | ||
4 | function 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) | |
15 | .set('Accept', 'application/json') | |
16 | ||
17 | if (options.token) req.set('Authorization', 'Bearer ' + options.token) | |
18 | if (options.query) req.query(options.query) | |
19 | ||
20 | return req | |
21 | .expect('Content-Type', /json/) | |
22 | .expect(options.statusCodeExpected) | |
23 | } | |
24 | ||
25 | function 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) | |
42 | } | |
43 | ||
44 | function makeUploadRequest (options: { | |
45 | url: string, | |
46 | method?: 'POST' | 'PUT', | |
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 | ||
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') | |
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] | |
80 | req.attach(attach, buildAbsoluteFixturePath(value)) | |
81 | }) | |
82 | ||
83 | return req.expect(options.statusCodeExpected) | |
84 | } | |
85 | ||
86 | function makePostBodyRequest (options: { | |
87 | url: string, | |
88 | path: string, | |
89 | token?: string, | |
90 | fields?: { [ fieldName: string ]: any }, | |
91 | statusCodeExpected?: number | |
92 | }) { | |
93 | if (!options.fields) options.fields = {} | |
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 | ||
106 | function makePutBodyRequest (options: { | |
107 | url: string, | |
108 | path: string, | |
109 | token?: string, | |
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 | ||
127 | export { | |
128 | makeGetRequest, | |
129 | makeUploadRequest, | |
130 | makePostBodyRequest, | |
131 | makePutBodyRequest, | |
132 | makeDeleteRequest | |
133 | } |