From a7ab64e3940f89ceaa4d2ab7b8dbbdec8d05ff90 Mon Sep 17 00:00:00 2001 From: Josh Lehman Date: Sat, 21 Mar 2026 09:16:41 -0700 Subject: [PATCH] test: narrow telegram setup prepare result Regeneration-Prompt: | During PR #27727 prepare, rebasing onto current main exposed a pnpm check failure in extensions/telegram/src/setup-surface.test.ts because telegramSetupWizard.prepare is optional and the test accessed prepared.cfg without proving the result exists. Keep runtime behavior unchanged. Add the smallest test-side assertion/helper needed to narrow the optional prepare result before reading cfg, then rerun the full prepare gates on the refreshed prep branch. --- extensions/telegram/src/setup-surface.test.ts | 58 +++++++++++++------ 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/extensions/telegram/src/setup-surface.test.ts b/extensions/telegram/src/setup-surface.test.ts index 83e696bea52..66de1d61bf0 100644 --- a/extensions/telegram/src/setup-surface.test.ts +++ b/extensions/telegram/src/setup-surface.test.ts @@ -31,40 +31,62 @@ async function runFinalize(cfg: OpenClawConfig, accountId: string) { return prompter.note; } +function expectPreparedResult( + prepared: Awaited>, +): { cfg: OpenClawConfig } & Exclude>, void | undefined> { + expect(prepared).toBeDefined(); + if ( + !prepared || + typeof prepared !== "object" || + !("cfg" in prepared) || + prepared.cfg === undefined + ) { + throw new Error("Expected prepare result with cfg"); + } + return prepared as { cfg: OpenClawConfig } & Exclude< + Awaited>, + void | undefined + >; +} + describe("telegramSetupWizard.prepare", () => { it('adds groups["*"].requireMention=true for fresh setups', async () => { - const prepared = await runPrepare( - { - channels: { - telegram: { - botToken: "tok", + const prepared = expectPreparedResult( + await runPrepare( + { + channels: { + telegram: { + botToken: "tok", + }, }, }, - }, - DEFAULT_ACCOUNT_ID, + DEFAULT_ACCOUNT_ID, + ), ); - expect(prepared?.cfg.channels?.telegram?.groups).toEqual({ + expect(prepared.cfg.channels?.telegram?.groups).toEqual({ "*": { requireMention: true }, }); }); it("preserves an explicit wildcard group mention setting", async () => { - const prepared = await runPrepare( - { - channels: { - telegram: { - botToken: "tok", - groups: { - "*": { requireMention: false }, + const prepared = expectPreparedResult( + await runPrepare( + { + channels: { + telegram: { + botToken: "tok", + groups: { + "*": { requireMention: false }, + }, }, }, }, - }, - DEFAULT_ACCOUNT_ID, + DEFAULT_ACCOUNT_ID, + ), ); - expect(prepared?.cfg.channels?.telegram?.groups).toEqual({ + expect(prepared.cfg.channels?.telegram?.groups).toEqual({ "*": { requireMention: false }, }); });