@furystack/rest-client-fetch 3.0.22 → 3.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -3,11 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const _1 = require("./");
|
|
4
4
|
const utils_1 = require("@furystack/utils");
|
|
5
5
|
const endpointUrl = 'http://localhost';
|
|
6
|
+
globalThis.fetch = globalThis.fecth || (() => null);
|
|
6
7
|
describe('@furystack/rest-client-fetch', () => {
|
|
7
8
|
it('Should return a method', () => {
|
|
8
9
|
const result = (0, _1.createClient)({ endpointUrl, fetch: () => undefined });
|
|
9
10
|
expect(typeof result).toBe('function');
|
|
10
11
|
});
|
|
12
|
+
it('Should create with native Fetch by default', () => {
|
|
13
|
+
const result = (0, _1.createClient)({ endpointUrl });
|
|
14
|
+
expect(typeof result).toBe('function');
|
|
15
|
+
});
|
|
11
16
|
it('Should throw if request is not OK', async () => {
|
|
12
17
|
const json = jest.fn(async () => ({ value: 1 }));
|
|
13
18
|
const fetch = jest.fn(async () => ({
|
|
@@ -131,5 +136,64 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
131
136
|
});
|
|
132
137
|
expect(json).toBeCalled();
|
|
133
138
|
});
|
|
139
|
+
it('Should parse a response with text/ headers', async () => {
|
|
140
|
+
const text = jest.fn(async () => 'alma');
|
|
141
|
+
const fetch = jest.fn(async () => ({
|
|
142
|
+
text,
|
|
143
|
+
headers: {
|
|
144
|
+
get: () => 'text/plain',
|
|
145
|
+
},
|
|
146
|
+
ok: true,
|
|
147
|
+
}));
|
|
148
|
+
const client = (0, _1.createClient)({
|
|
149
|
+
endpointUrl,
|
|
150
|
+
fetch,
|
|
151
|
+
});
|
|
152
|
+
const result = await client({
|
|
153
|
+
action: '/test',
|
|
154
|
+
method: 'POST',
|
|
155
|
+
headers: {
|
|
156
|
+
token: '123',
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
expect(result.result).toBe('alma');
|
|
160
|
+
expect(fetch).toBeCalledWith(utils_1.PathHelper.joinPaths(endpointUrl, 'test'), {
|
|
161
|
+
method: 'POST',
|
|
162
|
+
headers: {
|
|
163
|
+
token: '123',
|
|
164
|
+
},
|
|
165
|
+
});
|
|
166
|
+
expect(text).toBeCalled();
|
|
167
|
+
});
|
|
168
|
+
it('Should parse a response with form/multipart headers', async () => {
|
|
169
|
+
const exampleValue = { foo: 1, bar: 'alma' };
|
|
170
|
+
const formData = jest.fn(async () => exampleValue);
|
|
171
|
+
const fetch = jest.fn(async () => ({
|
|
172
|
+
formData,
|
|
173
|
+
headers: {
|
|
174
|
+
get: () => 'form/multipart',
|
|
175
|
+
},
|
|
176
|
+
ok: true,
|
|
177
|
+
}));
|
|
178
|
+
const client = (0, _1.createClient)({
|
|
179
|
+
endpointUrl,
|
|
180
|
+
fetch,
|
|
181
|
+
});
|
|
182
|
+
const result = await client({
|
|
183
|
+
action: '/test',
|
|
184
|
+
method: 'POST',
|
|
185
|
+
headers: {
|
|
186
|
+
token: '123',
|
|
187
|
+
},
|
|
188
|
+
});
|
|
189
|
+
expect(result.result).toBe(exampleValue);
|
|
190
|
+
expect(fetch).toBeCalledWith(utils_1.PathHelper.joinPaths(endpointUrl, 'test'), {
|
|
191
|
+
method: 'POST',
|
|
192
|
+
headers: {
|
|
193
|
+
token: '123',
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
expect(formData).toBeCalled();
|
|
197
|
+
});
|
|
134
198
|
});
|
|
135
199
|
//# sourceMappingURL=create-client.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-client.spec.js","sourceRoot":"","sources":["../src/create-client.spec.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-client.spec.js","sourceRoot":"","sources":["../src/create-client.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@furystack/rest-client-fetch",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.27",
|
|
4
4
|
"description": "Native browser fetch based REST API implementation for FuryStack",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -29,16 +29,16 @@
|
|
|
29
29
|
},
|
|
30
30
|
"homepage": "https://github.com/furystack/furystack",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@furystack/inject": "^
|
|
33
|
-
"@furystack/logging": "^2.0.
|
|
34
|
-
"@furystack/rest": "^3.1.
|
|
35
|
-
"@furystack/utils": "^
|
|
32
|
+
"@furystack/inject": "^5.0.2",
|
|
33
|
+
"@furystack/logging": "^2.0.86",
|
|
34
|
+
"@furystack/rest": "^3.1.6",
|
|
35
|
+
"@furystack/utils": "^2.0.2",
|
|
36
36
|
"path-to-regexp": "^6.2.0",
|
|
37
37
|
"tslib": "^2.3.1"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@types/jest": "^27.0
|
|
40
|
+
"@types/jest": "^27.4.0"
|
|
41
41
|
},
|
|
42
42
|
"typings": "./dist/index.d.ts",
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "302c069cac7bc920a20649ee38e574b0e7adcb9e"
|
|
44
44
|
}
|
|
@@ -3,12 +3,19 @@ import { PathHelper } from '@furystack/utils'
|
|
|
3
3
|
|
|
4
4
|
const endpointUrl = 'http://localhost'
|
|
5
5
|
|
|
6
|
+
globalThis.fetch = (globalThis as any).fecth || (() => null)
|
|
7
|
+
|
|
6
8
|
describe('@furystack/rest-client-fetch', () => {
|
|
7
9
|
it('Should return a method', () => {
|
|
8
10
|
const result = createClient({ endpointUrl, fetch: () => undefined as any })
|
|
9
11
|
expect(typeof result).toBe('function')
|
|
10
12
|
})
|
|
11
13
|
|
|
14
|
+
it('Should create with native Fetch by default', () => {
|
|
15
|
+
const result = createClient({ endpointUrl })
|
|
16
|
+
expect(typeof result).toBe('function')
|
|
17
|
+
})
|
|
18
|
+
|
|
12
19
|
it('Should throw if request is not OK', async () => {
|
|
13
20
|
const json = jest.fn(async () => ({ value: 1 }))
|
|
14
21
|
const fetch: any = jest.fn(async () => ({
|
|
@@ -163,4 +170,77 @@ describe('@furystack/rest-client-fetch', () => {
|
|
|
163
170
|
})
|
|
164
171
|
expect(json).toBeCalled()
|
|
165
172
|
})
|
|
173
|
+
|
|
174
|
+
it('Should parse a response with text/ headers', async () => {
|
|
175
|
+
const text = jest.fn(async () => 'alma')
|
|
176
|
+
const fetch: any = jest.fn(async () => ({
|
|
177
|
+
text,
|
|
178
|
+
headers: {
|
|
179
|
+
get: () => 'text/plain',
|
|
180
|
+
},
|
|
181
|
+
ok: true,
|
|
182
|
+
}))
|
|
183
|
+
|
|
184
|
+
const client = createClient<{
|
|
185
|
+
POST: { '/test': { result: string; headers: { token: string } } }
|
|
186
|
+
}>({
|
|
187
|
+
endpointUrl,
|
|
188
|
+
fetch,
|
|
189
|
+
})
|
|
190
|
+
|
|
191
|
+
const result = await client({
|
|
192
|
+
action: '/test',
|
|
193
|
+
method: 'POST',
|
|
194
|
+
headers: {
|
|
195
|
+
token: '123',
|
|
196
|
+
},
|
|
197
|
+
})
|
|
198
|
+
|
|
199
|
+
expect(result.result).toBe('alma')
|
|
200
|
+
|
|
201
|
+
expect(fetch).toBeCalledWith(PathHelper.joinPaths(endpointUrl, 'test'), {
|
|
202
|
+
method: 'POST',
|
|
203
|
+
headers: {
|
|
204
|
+
token: '123',
|
|
205
|
+
},
|
|
206
|
+
})
|
|
207
|
+
expect(text).toBeCalled()
|
|
208
|
+
})
|
|
209
|
+
|
|
210
|
+
it('Should parse a response with form/multipart headers', async () => {
|
|
211
|
+
const exampleValue = { foo: 1, bar: 'alma' }
|
|
212
|
+
const formData = jest.fn(async () => exampleValue)
|
|
213
|
+
const fetch: any = jest.fn(async () => ({
|
|
214
|
+
formData,
|
|
215
|
+
headers: {
|
|
216
|
+
get: () => 'form/multipart',
|
|
217
|
+
},
|
|
218
|
+
ok: true,
|
|
219
|
+
}))
|
|
220
|
+
|
|
221
|
+
const client = createClient<{
|
|
222
|
+
POST: { '/test': { result: string; headers: { token: string } } }
|
|
223
|
+
}>({
|
|
224
|
+
endpointUrl,
|
|
225
|
+
fetch,
|
|
226
|
+
})
|
|
227
|
+
|
|
228
|
+
const result = await client({
|
|
229
|
+
action: '/test',
|
|
230
|
+
method: 'POST',
|
|
231
|
+
headers: {
|
|
232
|
+
token: '123',
|
|
233
|
+
},
|
|
234
|
+
})
|
|
235
|
+
|
|
236
|
+
expect(result.result).toBe(exampleValue)
|
|
237
|
+
|
|
238
|
+
expect(fetch).toBeCalledWith(PathHelper.joinPaths(endpointUrl, 'test'), {
|
|
239
|
+
method: 'POST',
|
|
240
|
+
headers: {
|
|
241
|
+
token: '123',
|
|
242
|
+
},
|
|
243
|
+
})
|
|
244
|
+
expect(formData).toBeCalled()
|
|
245
|
+
})
|
|
166
246
|
})
|