test: avoid telegram startup abort deadlock · openclaw/openclaw@0e76daf
steipete
·
2026-05-17
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -473,19 +473,21 @@ describe("telegramPlugin gateway startup", () => {
|
473 | 473 | it("abandons a queued startup probe when the account aborts", async () => { |
474 | 474 | installTelegramRuntime(); |
475 | 475 | const releaseProbe: Array<() => void> = []; |
476 | | -probeTelegram.mockImplementation( |
477 | | -async () => |
478 | | -await new Promise((resolve) => { |
479 | | -releaseProbe.push(() => |
480 | | -resolve({ |
481 | | -ok: true, |
482 | | -status: null, |
483 | | -error: null, |
484 | | -elapsedMs: 12, |
485 | | -}), |
486 | | -); |
487 | | -}), |
488 | | -); |
| 476 | +let startedProbes = 0; |
| 477 | +probeTelegram.mockImplementation(async () => { |
| 478 | +startedProbes += 1; |
| 479 | +if (startedProbes <= 2) { |
| 480 | +await new Promise<void>((resolve) => { |
| 481 | +releaseProbe.push(resolve); |
| 482 | +}); |
| 483 | +} |
| 484 | +return { |
| 485 | +ok: true, |
| 486 | +status: null, |
| 487 | +error: null, |
| 488 | +elapsedMs: 12, |
| 489 | +}; |
| 490 | +}); |
489 | 491 | monitorTelegramProvider.mockResolvedValue(undefined); |
490 | 492 | |
491 | 493 | const first = startTelegramAccount("alpha"); |
@@ -498,12 +500,11 @@ describe("telegramPlugin gateway startup", () => {
|
498 | 500 | "expected startup probe slots to fill", |
499 | 501 | ); |
500 | 502 | abortQueued.abort(); |
501 | | -await expect(queued.task).resolves.toBeUndefined(); |
502 | 503 | |
503 | 504 | for (const release of releaseProbe.splice(0)) { |
504 | 505 | release(); |
505 | 506 | } |
506 | | -await Promise.all([first.task, second.task]); |
| 507 | +await Promise.all([first.task, second.task, queued.task]); |
507 | 508 | expect(probeTelegram).toHaveBeenCalledTimes(2); |
508 | 509 | expect(monitorTelegramProvider).toHaveBeenCalledTimes(2); |
509 | 510 | }); |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。