UNPKG

@ledgerhq/coin-icon

Version:
130 lines 5.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const bignumber_js_1 = require("bignumber.js"); const account_1 = require("@ledgerhq/coin-framework/account"); const currencies_1 = require("@ledgerhq/coin-framework/currencies"); const transaction_1 = require("../../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_js_1.BigNumber(1000), recipient: "recipient-address", useAllAmount: false, }; const account = { currency: { units: [{ code: "ICX", name: "ICX", magnitude: 18 }], }, }; account_1.getAccountCurrency.mockReturnValue(account.currency); currencies_1.formatCurrencyUnit.mockReturnValue("1 ICX"); const formatted = (0, transaction_1.formatTransaction)(transaction, account); expect(formatted).toBe("\nSEND 1 ICX\nTO recipient-address"); }); it("should handle useAllAmount correctly", () => { const transaction = { mode: "send", amount: new bignumber_js_1.BigNumber(0), recipient: "recipient-address", useAllAmount: true, }; const account = { currency: { units: [{ code: "ICX", name: "ICX", magnitude: 8 }], }, }; account_1.getAccountCurrency.mockReturnValue(account.currency); const formatted = (0, transaction_1.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 = (0, transaction_1.fromTransactionRaw)(rawTransaction); expect(transaction).toEqual({ family: "ICX", mode: "send", amount: new bignumber_js_1.BigNumber(1000), recipient: "recipient-address", fees: new bignumber_js_1.BigNumber(10), stepLimit: new bignumber_js_1.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 = (0, transaction_1.fromTransactionRaw)(rawTransaction); expect(transaction).toEqual({ family: "ICX", mode: "send", amount: new bignumber_js_1.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_js_1.BigNumber(1000), recipient: "recipient-address", fees: new bignumber_js_1.BigNumber(10), stepLimit: new bignumber_js_1.BigNumber(1000), }; const rawTransaction = (0, transaction_1.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_js_1.BigNumber(1000), recipient: "recipient-address", fees: null, stepLimit: undefined, }; const rawTransaction = (0, transaction_1.toTransactionRaw)(transaction); expect(rawTransaction).toEqual({ family: "ICX", mode: "send", amount: "1000", recipient: "recipient-address", fees: null, stepLimit: undefined, }); }); }); }); //# sourceMappingURL=transaction.unit.test.js.map