diff --git a/extensions/signal/src/accounts.test.ts b/extensions/signal/src/accounts.test.ts new file mode 100644 index 00000000000..91a729b56aa --- /dev/null +++ b/extensions/signal/src/accounts.test.ts @@ -0,0 +1,29 @@ +import { describe, expect, it } from "vitest"; +import { resolveSignalAccount } from "./accounts.js"; + +describe("resolveSignalAccount", () => { + it("uses configured defaultAccount when accountId is omitted", () => { + const resolved = resolveSignalAccount({ + cfg: { + channels: { + signal: { + defaultAccount: "work", + accounts: { + work: { + name: "Work", + account: "+15555550123", + httpUrl: "http://127.0.0.1:9999", + }, + }, + }, + }, + } as never, + }); + + expect(resolved.accountId).toBe("work"); + expect(resolved.name).toBe("Work"); + expect(resolved.baseUrl).toBe("http://127.0.0.1:9999"); + expect(resolved.config.account).toBe("+15555550123"); + expect(resolved.configured).toBe(true); + }); +}); diff --git a/extensions/signal/src/accounts.ts b/extensions/signal/src/accounts.ts index 755a3c39a5a..67b2e36934b 100644 --- a/extensions/signal/src/accounts.ts +++ b/extensions/signal/src/accounts.ts @@ -33,7 +33,9 @@ export function resolveSignalAccount(params: { cfg: OpenClawConfig; accountId?: string | null; }): ResolvedSignalAccount { - const accountId = normalizeAccountId(params.accountId); + const accountId = normalizeAccountId( + params.accountId ?? resolveDefaultSignalAccountId(params.cfg), + ); const baseEnabled = params.cfg.channels?.signal?.enabled !== false; const merged = mergeSignalAccountConfig(params.cfg, accountId); const accountEnabled = merged.enabled !== false;