UNPKG

@yoroi/api

Version:
103 lines (102 loc) 4.08 kB
"use strict"; var _tokenSupply = require("./token-supply"); describe('isTokenSupplyResponse', () => { it('returns true if object has supplies key of type object', () => { expect((0, _tokenSupply.isTokenSupplyResponse)({ supplies: {} })).toEqual(true); expect((0, _tokenSupply.isTokenSupplyResponse)({ supplies: 1 })).toEqual(false); expect((0, _tokenSupply.isTokenSupplyResponse)({ supplies: [] })).toEqual(false); expect((0, _tokenSupply.isTokenSupplyResponse)({ supplies: null })).toEqual(false); expect((0, _tokenSupply.isTokenSupplyResponse)({ supplies: undefined })).toEqual(false); expect((0, _tokenSupply.isTokenSupplyResponse)({ supplies: true })).toEqual(false); }); it('returns false if not given object with supplies key', () => { expect((0, _tokenSupply.isTokenSupplyResponse)(null)).toEqual(false); expect((0, _tokenSupply.isTokenSupplyResponse)(1)).toEqual(false); expect((0, _tokenSupply.isTokenSupplyResponse)([])).toEqual(false); expect((0, _tokenSupply.isTokenSupplyResponse)(true)).toEqual(false); expect((0, _tokenSupply.isTokenSupplyResponse)('hello')).toEqual(false); expect((0, _tokenSupply.isTokenSupplyResponse)(undefined)).toEqual(false); expect((0, _tokenSupply.isTokenSupplyResponse)({})).toEqual(false); }); it('requires supply value to be a number or null', () => { expect((0, _tokenSupply.isTokenSupplyResponse)({ supplies: { a: '1' } })).toEqual(true); expect((0, _tokenSupply.isTokenSupplyResponse)({ supplies: { a: null } })).toEqual(true); expect((0, _tokenSupply.isTokenSupplyResponse)({ supplies: { a: 1 } })).toEqual(false); expect((0, _tokenSupply.isTokenSupplyResponse)({ supplies: { a: true } })).toEqual(false); }); }); describe('getTokenSupply', () => { it('returns token supplies', async () => { const fetch = jest.fn().mockResolvedValue({ supplies: { '1f7a58a1aa1e6b047a42109ade331ce26c9c2cce027d043ff264fb1f.30': '1', '1f7a58a1aa1e6b047a42109ade331ce26c9c2cce027d043ff264fb1f.31': null } }); const tokenSupply = (0, _tokenSupply.getTokenSupply)('https://localhost', fetch); const result = await tokenSupply(['1f7a58a1aa1e6b047a42109ade331ce26c9c2cce027d043ff264fb1f.30', '1f7a58a1aa1e6b047a42109ade331ce26c9c2cce027d043ff264fb1f.31']); expect(result).toEqual({ '1f7a58a1aa1e6b047a42109ade331ce26c9c2cce027d043ff264fb1f.30': '1', '1f7a58a1aa1e6b047a42109ade331ce26c9c2cce027d043ff264fb1f.31': null }); }); it('returns token empty if empty list requested', async () => { const fetch = jest.fn().mockResolvedValue({ supplies: {} }); const tokenSupply = (0, _tokenSupply.getTokenSupply)('https://localhost', fetch); const result = await tokenSupply([]); expect(result).toEqual({}); }); it('throws if response is not valid', async () => { const fetch = jest.fn().mockResolvedValue({ error: { 'a.b': 1, 'c.d': null } }); const tokenSupply = (0, _tokenSupply.getTokenSupply)('https://localhost', fetch); await expect(tokenSupply(['1f7a58a1aa1e6b047a42109ade331ce26c9c2cce027d043ff264fb1f.b', '1f7a58a1aa1e6b047a42109ade331ce26c9c2cce027d043ff264fb1f.d'])).rejects.toThrow('Invalid asset supplies'); }); it('throws any other error', async () => { const networkError = { error: 'network' }; const fetch = jest.fn().mockRejectedValue(networkError); const tokenSupply = (0, _tokenSupply.getTokenSupply)('https://localhost', fetch); await expect(tokenSupply(['1f7a58a1aa1e6b047a42109ade331ce26c9c2cce027d043ff264fb1f.b', '1f7a58a1aa1e6b047a42109ade331ce26c9c2cce027d043ff264fb1f.d'])).rejects.toEqual(networkError); }); it('no deps for coverage', () => { const tokenSupply = (0, _tokenSupply.getTokenSupply)('https://localhost'); expect(tokenSupply).toBeDefined(); }); }); //# sourceMappingURL=token-supply.test.js.map