getTokensInfo.test.ts•1.39 kB
import { test, expect, describe } from "bun:test";
import { getTokensInfoTool } from "../tools/getTokensInfo";
describe("getTokensInfo", () => {
test("should return tokens for Ethereum mainnet", async () => {
const result = await getTokensInfoTool.handler({ chainId: "1" });
expect(result).toBeDefined();
expect(result.chainId).toBe("1");
expect(result.tokens).toBeDefined();
expect(typeof result.tokens).toBe("object");
expect(result.tokenCount).toBeGreaterThan(0);
console.log("\n✅ getTokensInfo SUCCESS:");
console.log(`Chain ID: ${result.chainId}`);
console.log(`Total tokens: ${result.tokenCount}`);
console.log("Sample tokens:");
Object.entries(result.tokens).slice(0, 5).forEach(([address, token]: [string, any]) => {
console.log(` - ${token.symbol} (${token.name}) - ${address.substring(0, 10)}...`);
});
}, 30000);
test("should return tokens for BSC", async () => {
const result = await getTokensInfoTool.handler({ chainId: "56" });
expect(result).toBeDefined();
expect(result.chainId).toBe("56");
expect(result.tokenCount).toBeGreaterThan(0);
}, 30000);
test("should handle invalid chain ID gracefully", async () => {
try {
await getTokensInfoTool.handler({ chainId: "999999" });
} catch (error) {
expect(error).toBeInstanceOf(Error);
}
}, 30000);
});