UNPKG

@yoroi/exchange

Version:

The Exchange package of Yoroi SDK

114 lines (101 loc) 3.16 kB
import {exchangeApiMaker, providers} from './api' describe('exchangeApiMaker', () => { describe('getBaseUrl', () => { describe('Banxa', () => { beforeEach(() => { jest.clearAllMocks() }) it('resolves', async () => { const isProduction = true const partner = 'yoroi' const providerId = 'banxa' const deps = { banxaApi: { getBaseUrl: jest .fn() .mockReturnValue(jest.fn().mockResolvedValue('banxa-url')), }, encryptusApi: { getBaseUrl: jest .fn() .mockReturnValue(jest.fn().mockResolvedValue('encryptus-url')), }, } const api = exchangeApiMaker({isProduction, partner}, deps) const result = await api.getBaseUrl(providerId) expect(result).toBe('banxa-url') }) }) describe('Encryptus', () => { beforeEach(() => { jest.clearAllMocks() }) it('resolves', async () => { const isProduction = true const partner = 'yoroi' const providerId = 'encryptus' const deps = { banxaApi: { getBaseUrl: jest .fn() .mockReturnValue(jest.fn().mockResolvedValue('banxa-url')), }, encryptusApi: { getBaseUrl: jest .fn() .mockReturnValue(jest.fn().mockResolvedValue('encryptus-url')), }, } const api = exchangeApiMaker({isProduction, partner}, deps) const result = await api.getBaseUrl(providerId) expect(result).toBe('encryptus-url') }) it('does not resolve', async () => { const isProduction = true const partner = 'yoroi' const providerId = 'none' const deps = { banxaApi: { getBaseUrl: jest .fn() .mockReturnValue(jest.fn().mockResolvedValue('banxa-url')), }, encryptusApi: { getBaseUrl: jest .fn() .mockReturnValue(jest.fn().mockResolvedValue('encryptus-url')), }, } const api = exchangeApiMaker({isProduction, partner}, deps) await expect( async () => await api.getBaseUrl(providerId), ).rejects.toThrow('Unknown provider: none') }) }) }) it('getProviders', async () => { const isProduction = true const partner = 'yoroi' const deps = { banxaApi: { getBaseUrl: jest .fn() .mockReturnValue(jest.fn().mockResolvedValue('banxa-url')), }, encryptusApi: { getBaseUrl: jest .fn() .mockReturnValue(jest.fn().mockResolvedValue('encryptus-url')), }, } const api = exchangeApiMaker({isProduction, partner}, deps) const result = await api.getProviders() expect(result).toEqual(providers) }) it('should build without dependencies (coverage only)', () => { const isProduction = true const partner = 'yoroi' const api = exchangeApiMaker({isProduction, partner}) expect(api).toBeDefined() }) })