import { describe, expect, it } from "vitest";
import type { Logger } from "../src/logger.js";
import { handleListAccounts } from "../src/tools/list_accounts.js";
const testLogger: Logger = {
debug: () => undefined,
info: () => undefined,
warn: () => undefined,
error: () => undefined,
audit: () => undefined,
};
const parseResponse = (result: { content: Array<{ text: string }> }) => {
const first = result.content[0];
if (!first) {
throw new Error("Missing response content.");
}
return JSON.parse(first.text) as { summary: string; data: unknown };
};
describe("mail_smtp_list_accounts", () => {
it("returns account metadata for configured accounts", () => {
const env = {
MAIL_SMTP_DEFAULT_HOST: "smtp.example.com",
MAIL_SMTP_DEFAULT_USER: "user",
MAIL_SMTP_DEFAULT_PASS: "pass",
MAIL_SMTP_DEFAULT_FROM: "sender@example.com",
};
const result = handleListAccounts({}, env, testLogger);
const payload = parseResponse(result);
expect(payload.summary).toContain("Found 1");
});
it("returns error for unknown account filter", () => {
const env = {
MAIL_SMTP_DEFAULT_HOST: "smtp.example.com",
MAIL_SMTP_DEFAULT_USER: "user",
MAIL_SMTP_DEFAULT_PASS: "pass",
};
const result = handleListAccounts({ account_id: "work" }, env, testLogger);
expect(result.isError).toBe(true);
});
});