Skip to content

Commit a7ab64e

Browse files
committed
test: narrow telegram setup prepare result
Regeneration-Prompt: | During PR openclaw#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.
1 parent 098f0f3 commit a7ab64e

File tree

1 file changed

+40
-18
lines changed

1 file changed

+40
-18
lines changed

extensions/telegram/src/setup-surface.test.ts

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -31,40 +31,62 @@ async function runFinalize(cfg: OpenClawConfig, accountId: string) {
3131
return prompter.note;
3232
}
3333

34+
function expectPreparedResult(
35+
prepared: Awaited<ReturnType<typeof runPrepare>>,
36+
): { cfg: OpenClawConfig } & Exclude<Awaited<ReturnType<typeof runPrepare>>, void | undefined> {
37+
expect(prepared).toBeDefined();
38+
if (
39+
!prepared ||
40+
typeof prepared !== "object" ||
41+
!("cfg" in prepared) ||
42+
prepared.cfg === undefined
43+
) {
44+
throw new Error("Expected prepare result with cfg");
45+
}
46+
return prepared as { cfg: OpenClawConfig } & Exclude<
47+
Awaited<ReturnType<typeof runPrepare>>,
48+
void | undefined
49+
>;
50+
}
51+
3452
describe("telegramSetupWizard.prepare", () => {
3553
it('adds groups["*"].requireMention=true for fresh setups', async () => {
36-
const prepared = await runPrepare(
37-
{
38-
channels: {
39-
telegram: {
40-
botToken: "tok",
54+
const prepared = expectPreparedResult(
55+
await runPrepare(
56+
{
57+
channels: {
58+
telegram: {
59+
botToken: "tok",
60+
},
4161
},
4262
},
43-
},
44-
DEFAULT_ACCOUNT_ID,
63+
DEFAULT_ACCOUNT_ID,
64+
),
4565
);
4666

47-
expect(prepared?.cfg.channels?.telegram?.groups).toEqual({
67+
expect(prepared.cfg.channels?.telegram?.groups).toEqual({
4868
"*": { requireMention: true },
4969
});
5070
});
5171

5272
it("preserves an explicit wildcard group mention setting", async () => {
53-
const prepared = await runPrepare(
54-
{
55-
channels: {
56-
telegram: {
57-
botToken: "tok",
58-
groups: {
59-
"*": { requireMention: false },
73+
const prepared = expectPreparedResult(
74+
await runPrepare(
75+
{
76+
channels: {
77+
telegram: {
78+
botToken: "tok",
79+
groups: {
80+
"*": { requireMention: false },
81+
},
6082
},
6183
},
6284
},
63-
},
64-
DEFAULT_ACCOUNT_ID,
85+
DEFAULT_ACCOUNT_ID,
86+
),
6587
);
6688

67-
expect(prepared?.cfg.channels?.telegram?.groups).toEqual({
89+
expect(prepared.cfg.channels?.telegram?.groups).toEqual({
6890
"*": { requireMention: false },
6991
});
7092
});

0 commit comments

Comments
 (0)