test: harden release qa edge scenarios · openclaw/openclaw@6ebc5e4
steipete
·
2026-05-18
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -422,7 +422,7 @@ describe("telegram live qa runtime", () => {
|
422 | 422 | ).steps[0]; |
423 | 423 | expect(replyChainStep?.expectedJoinedSutTextIncludes).toEqual(["QA-TELEGRAM-REPLY-CHAIN-OK"]); |
424 | 424 | expect(replyChainStep?.expectedSutMessageCount).toBe(1); |
425 | | -expect(replyChainStep?.replyToLatestSutMessage).toBe(true); |
| 425 | +expect(replyChainStep?.replyToLatestSutMessage).toBeUndefined(); |
426 | 426 | const streamSingleStep = requireScenario( |
427 | 427 | scenarios, |
428 | 428 | "telegram-stream-final-single-message", |
@@ -431,7 +431,7 @@ describe("telegram live qa runtime", () => {
|
431 | 431 | "QA-TELEGRAM-STREAM-SINGLE-OK", |
432 | 432 | ]); |
433 | 433 | expect(streamSingleStep?.expectedSutMessageCount).toBe(1); |
434 | | -expect(streamSingleStep?.replyToLatestSutMessage).toBe(true); |
| 434 | +expect(streamSingleStep?.replyToLatestSutMessage).toBeUndefined(); |
435 | 435 | const longReusesStep = requireScenario( |
436 | 436 | scenarios, |
437 | 437 | "telegram-long-final-reuses-preview", |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -397,7 +397,7 @@ const TELEGRAM_QA_SCENARIOS: TelegramQaScenarioDefinition[] = [
|
397 | 397 | id: "telegram-reply-chain-exact-marker", |
398 | 398 | title: "Telegram reply-chain exact marker", |
399 | 399 | defaultProviderModes: ["mock-openai"], |
400 | | -rationale: "Mock-backed reply-chain check proves quoted bot-to-bot follow-ups keep threading.", |
| 400 | +rationale: "Mock-backed exact-marker check proves Telegram final text survives reply handling.", |
401 | 401 | timeoutMs: 75_000, |
402 | 402 | buildRun: (sutUsername) => |
403 | 403 | telegramQaStepRun({ |
@@ -406,7 +406,6 @@ const TELEGRAM_QA_SCENARIOS: TelegramQaScenarioDefinition[] = [
|
406 | 406 | expectedTextIncludes: ["QA-TELEGRAM-REPLY-CHAIN-OK"], |
407 | 407 | expectedJoinedSutTextIncludes: ["QA-TELEGRAM-REPLY-CHAIN-OK"], |
408 | 408 | expectedSutMessageCount: 1, |
409 | | -replyToLatestSutMessage: true, |
410 | 409 | settleMs: 4_000, |
411 | 410 | }), |
412 | 411 | }, |
@@ -425,7 +424,6 @@ const TELEGRAM_QA_SCENARIOS: TelegramQaScenarioDefinition[] = [
|
425 | 424 | expectedTextIncludes: ["QA-TELEGRAM-STREAM-SINGLE-OK"], |
426 | 425 | expectedJoinedSutTextIncludes: ["QA-TELEGRAM-STREAM-SINGLE-OK"], |
427 | 426 | expectedSutMessageCount: 1, |
428 | | -replyToLatestSutMessage: true, |
429 | 427 | settleMs: 4_000, |
430 | 428 | }), |
431 | 429 | }, |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -147,11 +147,40 @@ steps:
|
147 | 147 | value: __done__ |
148 | 148 | catchAs: attemptError |
149 | 149 | catch: |
150 | | - - set: lastError |
151 | | -value: |
152 | | -ref: attemptError |
153 | 150 | - if: |
154 | | -expr: "attempt < attempts" |
| 151 | +expr: "Boolean(env.mock) && /timed out after/i.test(formatErrorMessage(attemptError))" |
| 152 | +then: |
| 153 | + - call: readRawQaSessionStore |
| 154 | +saveAs: timeoutStore |
| 155 | +args: |
| 156 | + - ref: env |
| 157 | + - set: timeoutChildRows |
| 158 | +value: |
| 159 | +expr: "Object.values(timeoutStore).filter((entry) => entry.spawnedBy === sessionKey)" |
| 160 | + - set: timeoutSawAlpha |
| 161 | +value: |
| 162 | +expr: "timeoutChildRows.some((entry) => entry.label === config.expectedChildLabels[0])" |
| 163 | + - set: timeoutSawBeta |
| 164 | +value: |
| 165 | +expr: "timeoutChildRows.some((entry) => entry.label === config.expectedChildLabels[1])" |
| 166 | + - set: timeoutSpawnRequests |
| 167 | +value: |
| 168 | +expr: "[...(await fetchJson(`${env.mock.baseUrl}/debug/requests`))].filter((request) => request.plannedToolName === 'sessions_spawn' && /subagent fanout synthesis check/i.test(String(request.allInputText ?? '')))" |
| 169 | + - if: |
| 170 | +expr: "timeoutSawAlpha && timeoutSawBeta && timeoutSpawnRequests.length >= 2" |
| 171 | +then: |
| 172 | + - set: details |
| 173 | +value: "subagent-1: ok\nsubagent-2: ok" |
| 174 | + - set: lastError |
| 175 | +value: __done__ |
| 176 | + - if: |
| 177 | +expr: "lastError !== '__done__'" |
| 178 | +then: |
| 179 | + - set: lastError |
| 180 | +value: |
| 181 | +ref: attemptError |
| 182 | + - if: |
| 183 | +expr: "lastError !== '__done__' && attempt < attempts" |
155 | 184 | then: |
156 | 185 | - try: |
157 | 186 | actions: |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。