UNPKG

@ledgerhq/coin-canton

Version:
57 lines (41 loc) 1.71 kB
import * as coinConfigModule from "../../config"; import { createMockCantonCurrency, createMockCoinConfigValue } from "../../test/fixtures"; import { estimateFees } from "./estimateFees"; const mockCurrency = createMockCantonCurrency(); const magnitude: bigint = 10n ** 38n; const createMockConfigWithFee = (fee: number | undefined): coinConfigModule.CantonCoinConfig => { const base = createMockCoinConfigValue(); if (fee !== undefined) { return { ...base, fee }; } return base; }; describe("estimateFees", () => { const mockGetCoinConfig = jest.spyOn(coinConfigModule.default, "getCoinConfig"); afterEach(() => { jest.clearAllMocks(); }); it("returns 2 CC fees for 100 CC", async () => { mockGetCoinConfig.mockReturnValue(createMockConfigWithFee(undefined)); const result = await estimateFees(mockCurrency, 100n * magnitude); // 2 CC expect(result).toEqual(2n * magnitude); }); it("returns 11 CC fees for 1000 CC", async () => { mockGetCoinConfig.mockReturnValue(createMockConfigWithFee(undefined)); const result = await estimateFees(mockCurrency, 1000n * magnitude); // 11 CC expect(result).toEqual(11n * magnitude); }); it("returns forced fees when setup in config", async () => { mockGetCoinConfig.mockReturnValue(createMockConfigWithFee(3)); const result = await estimateFees(mockCurrency, 1000n * magnitude); // 3 CC expect(result).toEqual(3n * magnitude); }); it("returns forced fees when 0 is setup in config", async () => { mockGetCoinConfig.mockReturnValue(createMockConfigWithFee(0)); const result = await estimateFees(mockCurrency, 1000n * magnitude); expect(result).toEqual(0n); }); });