@elizaos/plugin-squid-router
Version:
ElizaOS plugin for cross-chain token swaps using Squid Router
82 lines (69 loc) • 2.8 kB
text/typescript
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();
});
});
});