UNPKG

@coinbase/agentkit

Version:

Coinbase AgentKit core primitives

57 lines (56 loc) 2.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const evmWalletProvider_1 = require("./evmWalletProvider"); global.fetch = jest.fn(() => Promise.resolve({ ok: true, json: () => Promise.resolve({}), })); jest.mock("../analytics", () => ({ sendAnalyticsEvent: jest.fn().mockImplementation(() => Promise.resolve()), })); const EXPECTED_EVM_METHODS = [ "signMessage", "signTypedData", "signTransaction", "sendTransaction", "waitForTransactionReceipt", "readContract", ]; const EXPECTED_BASE_METHODS = [ "getAddress", "getNetwork", "getName", "getBalance", "nativeTransfer", ]; describe("EvmWalletProvider", () => { beforeEach(() => { jest.clearAllMocks(); evmWalletProvider_1.EvmWalletProvider.prototype.signMessage = jest.fn(); evmWalletProvider_1.EvmWalletProvider.prototype.signTypedData = jest.fn(); evmWalletProvider_1.EvmWalletProvider.prototype.signTransaction = jest.fn(); evmWalletProvider_1.EvmWalletProvider.prototype.sendTransaction = jest.fn(); evmWalletProvider_1.EvmWalletProvider.prototype.waitForTransactionReceipt = jest.fn(); evmWalletProvider_1.EvmWalletProvider.prototype.readContract = jest.fn(); }); it("should define abstract methods (TypeScript only - not a runtime check)", () => { const allExpectedMethods = [...EXPECTED_EVM_METHODS, ...EXPECTED_BASE_METHODS]; expect(Array.isArray(allExpectedMethods)).toBe(true); }); it("should extend WalletProvider", () => { const proto = Object.getPrototypeOf(evmWalletProvider_1.EvmWalletProvider); const protoName = proto.name; expect(protoName).toBe("WalletProvider"); }); it("should have consistent method signatures", () => { const signMessageDescriptor = Object.getOwnPropertyDescriptor(evmWalletProvider_1.EvmWalletProvider.prototype, "signMessage"); expect(signMessageDescriptor).toBeDefined(); expect(typeof signMessageDescriptor.value).toBe("function"); const signTypedDataDescriptor = Object.getOwnPropertyDescriptor(evmWalletProvider_1.EvmWalletProvider.prototype, "signTypedData"); expect(signTypedDataDescriptor).toBeDefined(); expect(typeof signTypedDataDescriptor.value).toBe("function"); const readContractDescriptor = Object.getOwnPropertyDescriptor(evmWalletProvider_1.EvmWalletProvider.prototype, "readContract"); expect(readContractDescriptor).toBeDefined(); expect(typeof readContractDescriptor.value).toBe("function"); }); });