Spaces:
Paused
Paused
| import { afterEach, describe, expect, it, vi } from "vitest"; | |
| import type { OpenClawConfig } from "../config/config.js"; | |
| import { resolveDiscordToken } from "./token.js"; | |
| describe("resolveDiscordToken", () => { | |
| afterEach(() => { | |
| vi.unstubAllEnvs(); | |
| }); | |
| it("prefers config token over env", () => { | |
| vi.stubEnv("DISCORD_BOT_TOKEN", "env-token"); | |
| const cfg = { | |
| channels: { discord: { token: "cfg-token" } }, | |
| } as OpenClawConfig; | |
| const res = resolveDiscordToken(cfg); | |
| expect(res.token).toBe("cfg-token"); | |
| expect(res.source).toBe("config"); | |
| }); | |
| it("uses env token when config is missing", () => { | |
| vi.stubEnv("DISCORD_BOT_TOKEN", "env-token"); | |
| const cfg = { | |
| channels: { discord: {} }, | |
| } as OpenClawConfig; | |
| const res = resolveDiscordToken(cfg); | |
| expect(res.token).toBe("env-token"); | |
| expect(res.source).toBe("env"); | |
| }); | |
| it("prefers account token for non-default accounts", () => { | |
| vi.stubEnv("DISCORD_BOT_TOKEN", "env-token"); | |
| const cfg = { | |
| channels: { | |
| discord: { | |
| token: "base-token", | |
| accounts: { | |
| work: { token: "acct-token" }, | |
| }, | |
| }, | |
| }, | |
| } as OpenClawConfig; | |
| const res = resolveDiscordToken(cfg, { accountId: "work" }); | |
| expect(res.token).toBe("acct-token"); | |
| expect(res.source).toBe("config"); | |
| }); | |
| }); | |