UNPKG

@ledgerhq/coin-icon

Version:
128 lines 4.86 kB
import { BigNumber } from "bignumber.js"; import { getAccountCurrency } from "@ledgerhq/coin-framework/account"; import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies"; import { formatTransaction, fromTransactionRaw, toTransactionRaw } from "../../transaction"; jest.mock("@ledgerhq/coin-framework/account", () => ({ getAccountCurrency: jest.fn(), })); jest.mock("@ledgerhq/coin-framework/currencies", () => ({ formatCurrencyUnit: jest.fn(), })); describe("Transaction Utilities", () => { describe("formatTransaction", () => { it("should format a transaction correctly", () => { const transaction = { mode: "send", amount: new BigNumber(1000), recipient: "recipient-address", useAllAmount: false, }; const account = { currency: { units: [{ code: "ICX", name: "ICX", magnitude: 18 }], }, }; getAccountCurrency.mockReturnValue(account.currency); formatCurrencyUnit.mockReturnValue("1 ICX"); const formatted = formatTransaction(transaction, account); expect(formatted).toBe("\nSEND 1 ICX\nTO recipient-address"); }); it("should handle useAllAmount correctly", () => { const transaction = { mode: "send", amount: new BigNumber(0), recipient: "recipient-address", useAllAmount: true, }; const account = { currency: { units: [{ code: "ICX", name: "ICX", magnitude: 8 }], }, }; getAccountCurrency.mockReturnValue(account.currency); const formatted = formatTransaction(transaction, account); expect(formatted).toBe("\nSEND MAX\nTO recipient-address"); }); }); describe("fromTransactionRaw", () => { it("should convert a raw transaction to a transaction", () => { const rawTransaction = { family: "ICX", mode: "send", amount: "1000", recipient: "recipient-address", fees: "10", stepLimit: "1000", }; const transaction = fromTransactionRaw(rawTransaction); expect(transaction).toEqual({ family: "ICX", mode: "send", amount: new BigNumber(1000), recipient: "recipient-address", fees: new BigNumber(10), stepLimit: new BigNumber(1000), }); }); it("should handle null and undefined fields", () => { const rawTransaction = { family: "ICX", mode: "send", amount: "1000", recipient: "recipient-address", fees: null, stepLimit: undefined, }; const transaction = fromTransactionRaw(rawTransaction); expect(transaction).toEqual({ family: "ICX", mode: "send", amount: new BigNumber(1000), recipient: "recipient-address", fees: null, stepLimit: undefined, }); }); }); describe("toTransactionRaw", () => { it("should convert a transaction to a raw transaction", () => { const transaction = { family: "ICX", mode: "send", amount: new BigNumber(1000), recipient: "recipient-address", fees: new BigNumber(10), stepLimit: new BigNumber(1000), }; const rawTransaction = toTransactionRaw(transaction); expect(rawTransaction).toEqual({ family: "ICX", mode: "send", amount: "1000", recipient: "recipient-address", fees: "10", stepLimit: "1000", }); }); it("should handle null and undefined fields", () => { const transaction = { family: "ICX", mode: "send", amount: new BigNumber(1000), recipient: "recipient-address", fees: null, stepLimit: undefined, }; const rawTransaction = toTransactionRaw(transaction); expect(rawTransaction).toEqual({ family: "ICX", mode: "send", amount: "1000", recipient: "recipient-address", fees: null, stepLimit: undefined, }); }); }); }); //# sourceMappingURL=transaction.unit.test.js.map