@elizaos/plugin-squid-router
Version:
ElizaOS plugin for cross-chain token swaps using Squid Router
70 lines (56 loc) • 2.65 kB
text/typescript
import { describe, it, expect } from "bun:test";
import { squidRouterPlugin } from "../index";
import { xChainSwapAction } from "../actions/xChainSwap";
import { squidRouterProvider } from "../providers/squidRouter";
describe("squidRouterPlugin", () => {
it("should have correct name", () => {
expect(squidRouterPlugin.name).toBe("squid-router");
});
it("should have correct description", () => {
expect(squidRouterPlugin.description).toBe("Squid router plugin");
});
it("should include xChainSwapAction in actions", () => {
expect(squidRouterPlugin.actions).toContain(xChainSwapAction);
expect(squidRouterPlugin.actions).toHaveLength(1);
});
it("should include squidRouterProvider in providers", () => {
expect(squidRouterPlugin.providers).toContain(squidRouterProvider);
expect(squidRouterPlugin.providers).toHaveLength(1);
});
it("should have empty evaluators array", () => {
expect(squidRouterPlugin.evaluators).toEqual([]);
});
it("should have empty services array", () => {
expect(squidRouterPlugin.services).toEqual([]);
});
it("should export all required components", () => {
// Import everything to check exports
const moduleExports = require("../index");
// Check plugin export
expect(moduleExports.squidRouterPlugin).toBeDefined();
expect(moduleExports.default).toBe(squidRouterPlugin);
// Check action exports
expect(moduleExports.xChainSwapAction).toBeDefined();
expect(moduleExports.xChainSwapTemplate).toBeDefined();
// Check provider exports
expect(moduleExports.squidRouterProvider).toBeDefined();
expect(moduleExports.SquidRouterProvider).toBeDefined();
expect(moduleExports.initSquidRouterProvider).toBeDefined();
// Check type exports
expect(moduleExports.nativeTokenConstant).toBeDefined();
});
it("should match Plugin interface structure", () => {
expect(squidRouterPlugin).toHaveProperty("name");
expect(squidRouterPlugin).toHaveProperty("description");
expect(squidRouterPlugin).toHaveProperty("providers");
expect(squidRouterPlugin).toHaveProperty("actions");
expect(squidRouterPlugin).toHaveProperty("evaluators");
expect(squidRouterPlugin).toHaveProperty("services");
expect(typeof squidRouterPlugin.name).toBe("string");
expect(typeof squidRouterPlugin.description).toBe("string");
expect(Array.isArray(squidRouterPlugin.providers)).toBe(true);
expect(Array.isArray(squidRouterPlugin.actions)).toBe(true);
expect(Array.isArray(squidRouterPlugin.evaluators)).toBe(true);
expect(Array.isArray(squidRouterPlugin.services)).toBe(true);
});
});