aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/helpers/utils/fetch.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'ui/app/helpers/utils/fetch.test.js')
-rw-r--r--ui/app/helpers/utils/fetch.test.js54
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')
+ }
+ })
+})