UNPKG

@ledgerhq/coin-aptos

Version:
49 lines 2.89 kB
import { signTransaction } from "../../network"; import { createFixtureAccount } from "../../bridge/bridge.fixture"; import { AccountAddress, RawTransaction, generateSigningMessageForTransaction, generateSignedTransaction, } from "@aptos-labs/ts-sdk"; jest.mock("@aptos-labs/ts-sdk", () => { const originalModule = jest.requireActual("@aptos-labs/ts-sdk"); const partialMockedModule = Object.keys(originalModule).reduce((pre, methodName) => { pre[methodName] = jest.fn(); return pre; }, {}); return { ...partialMockedModule, // mock all except these AccountAddress: originalModule.AccountAddress, Hex: originalModule.Hex, }; }); let mockedGenerateSigningMessageForTransaction; let mockedGenerateSignedTransaction; describe("signTransaction", () => { beforeAll(() => { mockedGenerateSigningMessageForTransaction = jest.mocked(generateSigningMessageForTransaction); mockedGenerateSignedTransaction = jest.mocked(generateSignedTransaction); }); afterEach(() => { jest.resetAllMocks(); }); it("should throw an error", async () => { mockedGenerateSigningMessageForTransaction.mockReturnValue("signingMessage"); const mockGenerateSignedTransactionSpy = jest.spyOn({ generateSignedTransaction: mockedGenerateSignedTransaction }, "generateSignedTransaction"); const signerContext = jest.fn().mockImplementation(() => ({ signature: "0x7aa193705193f4" })); const account = createFixtureAccount(); const deviceId = "nanoX"; const rawTxn = new RawTransaction(new AccountAddress(Uint8Array.from(Buffer.from("thisaddressmustbe32byteslooooong"))), BigInt(1), "", BigInt(100), BigInt(50), BigInt(1), { chainId: 1 }); expect(signTransaction(signerContext, account, deviceId, rawTxn)).rejects.toThrow("Account must have a public signing key"); expect(mockGenerateSignedTransactionSpy).toHaveBeenCalledTimes(0); }); it("should sign a transaction", async () => { mockedGenerateSigningMessageForTransaction.mockReturnValue("signingMessage"); const mockGenerateSignedTransactionSpy = jest.spyOn({ generateSignedTransaction: mockedGenerateSignedTransaction }, "generateSignedTransaction"); const signerContext = jest.fn().mockImplementation(() => ({ signature: "0x7aa193705193f4" })); const account = createFixtureAccount(); account.xpub = "0xb69a68cc64f7aa193705193f4dd598320a0a74baf7e4b50c9980c5bd60a82390"; const deviceId = "nanoX"; const rawTxn = new RawTransaction(AccountAddress.fromString(account.xpub), BigInt(1), "", BigInt(100), BigInt(50), BigInt(1), { chainId: 1 }); await signTransaction(signerContext, account, deviceId, rawTxn); expect(mockGenerateSignedTransactionSpy).toHaveBeenCalledTimes(1); }); }); //# sourceMappingURL=index.test.js.map