@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
81 lines • 2.89 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const live_app_sdk_1 = require("@ledgerhq/live-app-sdk");
const bignumber_js_1 = __importDefault(require("bignumber.js"));
require("../__tests__/test-helpers/setup");
const converters_1 = require("./converters");
const evmBridge = jest.fn();
const bitcoinBridge = jest.fn();
jest.mock("../generated/platformAdapter", () => {
return {
evm: {
getPlatformTransactionSignFlowInfos: function () {
return evmBridge();
},
},
bitcoin: {
getPlatformTransactionSignFlowInfos: function () {
return bitcoinBridge();
},
},
};
});
describe("getPlatformTransactionSignFlowInfos", () => {
beforeEach(() => {
evmBridge.mockClear();
bitcoinBridge.mockClear();
});
it("should call the bridge if the implementation exists", () => {
// Given
const tx = {
family: live_app_sdk_1.FAMILIES.BITCOIN,
amount: new bignumber_js_1.default(100000),
recipient: "0xABCDEF",
};
// When
(0, converters_1.getPlatformTransactionSignFlowInfos)(tx);
// Then
expect(bitcoinBridge).toBeCalledTimes(1);
expect(evmBridge).toBeCalledTimes(0);
});
it("should call the evm bridge for PlatformTransaction tx of ethereum family", () => {
// Given
const tx = {
family: live_app_sdk_1.FAMILIES.ETHEREUM,
amount: new bignumber_js_1.default(100000),
recipient: "0xABCDEF",
};
// When
(0, converters_1.getPlatformTransactionSignFlowInfos)(tx);
// Then
expect(evmBridge).toBeCalledTimes(1);
expect(bitcoinBridge).toBeCalledTimes(0);
});
it("should use its fallback if the bridge doesn't exist", () => {
// Given
const platformTx = {
family: live_app_sdk_1.FAMILIES.ALGORAND,
mode: "send",
amount: new bignumber_js_1.default(100000),
recipient: "0xABCDEF",
};
const expectedLiveTx = {
family: platformTx.family,
mode: "send",
amount: platformTx.amount,
recipient: platformTx.recipient,
};
// When
const { canEditFees, hasFeesProvided, liveTx } = (0, converters_1.getPlatformTransactionSignFlowInfos)(platformTx);
// Then
expect(evmBridge).toBeCalledTimes(0);
expect(bitcoinBridge).toBeCalledTimes(0);
expect(canEditFees).toBe(false);
expect(hasFeesProvided).toBe(false);
expect(liveTx).toEqual(expectedLiveTx);
});
});
//# sourceMappingURL=converters.test.js.map