UNPKG

@yoroi/swap

Version:
77 lines (76 loc) 2.66 kB
"use strict"; import { freeze } from 'immer'; import { getSwapConfigApiMaker } from './getSwapConfig'; const mockFetchData = async ({ url }) => { if (url !== undefined) { return freeze({ tag: 'right', value: { status: 200, data: { initialPair: { tokenIn: '.', tokenOut: 'fe7c786ab321f41c654ef6c1af7b3250a613c24e4213e0425a7ae456.55534441' }, excludedTokens: ['ab3e31c490d248c592d5bb495823a45fd10f9c8e4f561f13551803fb.43617264616e6f20436f6d6d756e697479204368617269747920436f696e'], verifiedTokens: ['.', 'fe7c786ab321f41c654ef6c1af7b3250a613c24e4213e0425a7ae456.55534441'] } } }); } return freeze({ tag: 'left', error: new Error('Network error') }); }; describe('getSwapConfigApiMaker', () => { it('should return swap config data when the response is valid', async () => { const result = await getSwapConfigApiMaker({ request: mockFetchData })(); expect(result).toEqual({ initialPair: { tokenIn: '.', tokenOut: 'fe7c786ab321f41c654ef6c1af7b3250a613c24e4213e0425a7ae456.55534441' }, excludedTokens: ['ab3e31c490d248c592d5bb495823a45fd10f9c8e4f561f13551803fb.43617264616e6f20436f6d6d756e697479204368617269747920436f696e'], verifiedTokens: ['.', 'fe7c786ab321f41c654ef6c1af7b3250a613c24e4213e0425a7ae456.55534441'] }); }); it('should throw an error when the response is invalid', async () => { const invalidFetchData = async () => ({ tag: 'right', value: { status: 200, data: { initialPair: { tokenIn: 123, // Invalid type tokenOut: 'tokenOutId' }, verifiedTokens: [123, // Invalid type 'fe7c786ab321f41c654ef6c1af7b3250a613c24e4213e0425a7ae456.55534441'] } } }); await expect(getSwapConfigApiMaker({ request: invalidFetchData })()).rejects.toThrow('Invalid swap config response: {"initialPair":{"tokenIn":123,"tokenOut":"tokenOutId"},"verifiedTokens":[123,"fe7c786ab321f41c654ef6c1af7b3250a613c24e4213e0425a7ae456.55534441"]}'); }); it('should throw an error when there is a network error', async () => { const networkErrorFetchData = async () => ({ tag: 'left', error: new Error('Network error') }); await expect(getSwapConfigApiMaker({ request: networkErrorFetchData })()).rejects.toThrow('Network error'); }); it('should not require passing a param', async () => { expect(getSwapConfigApiMaker()).toBeDefined(); }); }); //# sourceMappingURL=getSwapConfig.test.js.map