diff options
Diffstat (limited to 'ui/app/helpers/utils/fetch.test.js')
-rw-r--r-- | ui/app/helpers/utils/fetch.test.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/ui/app/helpers/utils/fetch.test.js b/ui/app/helpers/utils/fetch.test.js new file mode 100644 index 000000000..12724525a --- /dev/null +++ b/ui/app/helpers/utils/fetch.test.js @@ -0,0 +1,54 @@ +import assert from 'assert' +import nock from 'nock' + +import http from './fetch' + +describe('custom fetch fn', () => { + it('fetches a url', async () => { + nock('https://api.infura.io') + .get('/money') + .reply(200, '{"hodl": false}') + + const fetch = http() + const response = await (await fetch('https://api.infura.io/money')).json() + assert.deepEqual(response, { + hodl: false, + }) + }) + + it('throws when the request hits a custom timeout', async () => { + nock('https://api.infura.io') + .get('/moon') + .delay(2000) + .reply(200, '{"moon": "2012-12-21T11:11:11Z"}') + + const fetch = http({ + timeout: 123, + }) + + try { + await fetch('https://api.infura.io/moon').then(r => r.json()) + assert.fail('Request should throw') + } catch (e) { + assert.ok(e) + } + }) + + it('should abort the request when the custom timeout is hit', async () => { + nock('https://api.infura.io') + .get('/moon') + .delay(2000) + .reply(200, '{"moon": "2012-12-21T11:11:11Z"}') + + const fetch = http({ + timeout: 123, + }) + + try { + await fetch('https://api.infura.io/moon').then(r => r.json()) + assert.fail('Request should be aborted') + } catch (e) { + assert.deepEqual(e.message, 'Aborted') + } + }) +}) |