test: fix WhatsApp live readiness typing · openclaw/openclaw@7988331
steipete
·
2026-05-17
·
via Recent Commits to openclaw:main
File tree
extensions/qa-lab/src/live-transports/whatsapp
| Original file line number | Diff line number | Diff line change |
|---|
@@ -370,21 +370,21 @@ function buildWhatsAppQaConfig(
|
370 | 370 | }; |
371 | 371 | } |
372 | 372 | |
| 373 | +type WhatsAppChannelStatus = { |
| 374 | +connected?: boolean; |
| 375 | +lastConnectedAt?: number; |
| 376 | +lastDisconnect?: unknown; |
| 377 | +lastError?: string; |
| 378 | +restartPending?: boolean; |
| 379 | +running?: boolean; |
| 380 | +}; |
| 381 | + |
373 | 382 | async function waitForWhatsAppChannelRunning( |
374 | 383 | gateway: Awaited<ReturnType<typeof startQaGatewayChild>>, |
375 | 384 | accountId: string, |
376 | | -) { |
| 385 | +): Promise<WhatsAppChannelStatus> { |
377 | 386 | const startedAt = Date.now(); |
378 | | -let lastStatus: |
379 | | -| { |
380 | | -connected?: boolean; |
381 | | -lastConnectedAt?: number; |
382 | | -lastDisconnect?: unknown; |
383 | | -lastError?: string; |
384 | | -restartPending?: boolean; |
385 | | -running?: boolean; |
386 | | -} |
387 | | -| undefined; |
| 387 | +let lastStatus: WhatsAppChannelStatus | undefined; |
388 | 388 | while (Date.now() - startedAt < WHATSAPP_QA_READY_TIMEOUT_MS) { |
389 | 389 | try { |
390 | 390 | const payload = (await gateway.call( |
@@ -418,6 +418,11 @@ async function waitForWhatsAppChannelRunning(
|
418 | 418 | } |
419 | 419 | : undefined; |
420 | 420 | if (match?.running && match.connected === true && match.restartPending !== true) { |
| 421 | +if (!lastStatus) { |
| 422 | +throw new Error( |
| 423 | +`whatsapp account "${accountId}" status disappeared after readiness check`, |
| 424 | +); |
| 425 | +} |
421 | 426 | return lastStatus; |
422 | 427 | } |
423 | 428 | } catch { |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。