UNPKG

@elizaos/plugin-squid-router

Version:

ElizaOS plugin for cross-chain token swaps using Squid Router

82 lines (69 loc) 2.8 kB
import { describe, it, expect, beforeEach, mock } from "bun:test"; import { createMockRuntime } from "./test-utils"; import { squidRouterEnvSchema } from "../helpers/utils"; describe("Edge case coverage", () => { describe("squidRouterEnvSchema edge cases", () => { it("should handle missing EVM address when private key is provided", () => { const config = { SQUID_INTEGRATOR_ID: "test-id", SQUID_SDK_URL: "https://api.squid.com", SQUID_EVM_ADDRESS: "", SQUID_EVM_PRIVATE_KEY: "0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", }; expect(() => squidRouterEnvSchema.parse(config)).toThrow(); }); it("should handle missing EVM private key when address is provided", () => { const config = { SQUID_INTEGRATOR_ID: "test-id", SQUID_SDK_URL: "https://api.squid.com", SQUID_EVM_ADDRESS: "0x742D35Cc6634c0532925A3b844BC9E7595f6F269", SQUID_EVM_PRIVATE_KEY: "", }; expect(() => squidRouterEnvSchema.parse(config)).toThrow(); }); it("should handle both EVM credentials missing", () => { const config = { SQUID_INTEGRATOR_ID: "test-id", SQUID_SDK_URL: "https://api.squid.com", SQUID_EVM_ADDRESS: "", SQUID_EVM_PRIVATE_KEY: "", }; expect(() => squidRouterEnvSchema.parse(config)).toThrow( "At least one valid address and private key pair is required" ); }); it("should fail validation when only EVM address is provided", () => { const config = { SQUID_INTEGRATOR_ID: "test-id", SQUID_SDK_URL: "https://api.squid.com", SQUID_EVM_ADDRESS: "0x742D35Cc6634c0532925A3b844BC9E7595f6F269", SQUID_EVM_PRIVATE_KEY: null, }; expect(() => squidRouterEnvSchema.parse(config)).toThrow(); }); it("should fail validation when only EVM private key is provided", () => { const config = { SQUID_INTEGRATOR_ID: "test-id", SQUID_SDK_URL: "https://api.squid.com", SQUID_EVM_ADDRESS: null, SQUID_EVM_PRIVATE_KEY: "0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", }; expect(() => squidRouterEnvSchema.parse(config)).toThrow(); }); }); describe("Test utils coverage", () => { it("should properly mock logger", async () => { const { mockLogger } = await import("./test-utils"); mockLogger(); // Verify logger methods are mocked const { elizaLogger } = await import("@elizaos/core"); expect(elizaLogger.error).toBeDefined(); expect(elizaLogger.warn).toBeDefined(); expect(elizaLogger.info).toBeDefined(); expect(elizaLogger.debug).toBeDefined(); expect(elizaLogger.log).toBeDefined(); }); }); });