@coinbase/agentkit
Version:
Coinbase AgentKit core primitives
57 lines (56 loc) • 2.6 kB
JavaScript
;
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");
});
});