mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-28 13:26:04 -06:00
51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
listIMessageAccountIds,
|
|
resolveDefaultIMessageAccountId,
|
|
resolveIMessageAccount,
|
|
} from "./accounts.js";
|
|
|
|
describe("resolveIMessageAccount", () => {
|
|
it("preserves top-level default account when named accounts are configured", () => {
|
|
const cfg = {
|
|
channels: {
|
|
imessage: {
|
|
cliPath: "/usr/local/bin/imsg",
|
|
accounts: {
|
|
work: { enabled: false },
|
|
},
|
|
},
|
|
},
|
|
} as never;
|
|
|
|
expect(listIMessageAccountIds(cfg)).toEqual(["default", "work"]);
|
|
expect(resolveDefaultIMessageAccountId(cfg)).toBe("default");
|
|
expect(resolveIMessageAccount({ cfg }).config.cliPath).toBe("/usr/local/bin/imsg");
|
|
});
|
|
|
|
it("uses configured defaultAccount when accountId is omitted", () => {
|
|
const resolved = resolveIMessageAccount({
|
|
cfg: {
|
|
channels: {
|
|
imessage: {
|
|
defaultAccount: "work",
|
|
accounts: {
|
|
work: {
|
|
name: "Work",
|
|
cliPath: "/usr/local/bin/imsg-work",
|
|
dmPolicy: "open",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
} as never,
|
|
});
|
|
|
|
expect(resolved.accountId).toBe("work");
|
|
expect(resolved.name).toBe("Work");
|
|
expect(resolved.config.cliPath).toBe("/usr/local/bin/imsg-work");
|
|
expect(resolved.config.dmPolicy).toBe("open");
|
|
expect(resolved.configured).toBe(true);
|
|
});
|
|
});
|