UNPKG

1.86 kBJavaScriptView Raw
1const test = require('tap').test;
2const TextEncoder = require('util').TextEncoder;
3const TextDecoder = require('util').TextDecoder;
4
5const FetchTool = require('../../src/FetchTool');
6
7test('send success returns response.text()', t => {
8 global.fetch = () => Promise.resolve({
9 ok: true,
10 text: () => Promise.resolve('successful response')
11 });
12
13 const tool = new FetchTool();
14
15 return t.resolves(
16 tool.send('url').then(result => {
17 t.equal(result, 'successful response');
18 })
19 );
20});
21
22test('send failure returns response.status', t => {
23 global.fetch = () => Promise.resolve({
24 ok: false,
25 status: 500
26 });
27
28 const tool = new FetchTool();
29
30 return t.rejects(tool.send('url'), 500);
31});
32
33test('get success returns Uint8Array.body(response.arrayBuffer())', t => {
34 const text = 'successful response';
35 const encoding = 'utf-8';
36 const encoded = new TextEncoder().encode(text);
37 const decoder = new TextDecoder(encoding);
38
39 global.fetch = () => Promise.resolve({
40 ok: true,
41 arrayBuffer: () => Promise.resolve(encoded.buffer)
42 });
43
44 const tool = new FetchTool();
45
46 return t.resolves(
47 tool.get({url: 'url'}).then(result => {
48 t.equal(decoder.decode(result), text);
49 })
50 );
51});
52
53test('get with 404 response returns null data', t => {
54 global.fetch = () => Promise.resolve({
55 ok: false,
56 status: 404
57 });
58
59 const tool = new FetchTool();
60
61 return t.resolves(
62 tool.get('url').then(result => {
63 t.equal(result, null);
64 })
65 );
66});
67
68test('get failure returns response.status', t => {
69 global.fetch = () => Promise.resolve({
70 ok: false,
71 status: 500
72 });
73
74 const tool = new FetchTool();
75
76 return t.rejects(tool.get({url: 'url'}), 500);
77});