test(slack): cover fast draft preview finalization · openclaw/openclaw@a57fbc8
steipete
·
2026-04-25
·
via Recent Commits to openclaw:main
File tree
extensions/slack/src/monitor/message-handler
| Original file line number | Diff line number | Diff line change |
|---|
@@ -371,6 +371,33 @@ describe("dispatchPreparedSlackMessage preview fallback", () => {
|
371 | 371 | ); |
372 | 372 | }); |
373 | 373 | |
| 374 | +it("finalizes fast draft preview text without sending a duplicate normal reply", async () => { |
| 375 | +const draftStream = { |
| 376 | + ...createDraftStreamStub(), |
| 377 | +flush: vi.fn(noopAsync), |
| 378 | +clear: vi.fn(noopAsync), |
| 379 | +discardPending: vi.fn(noopAsync), |
| 380 | +seal: vi.fn(noopAsync), |
| 381 | +}; |
| 382 | +createSlackDraftStreamMock.mockReturnValueOnce(draftStream); |
| 383 | +finalizeSlackPreviewEditMock.mockResolvedValueOnce(undefined); |
| 384 | +mockedDispatchSequence = [{ kind: "final", payload: { text: "✅" } }]; |
| 385 | + |
| 386 | +await dispatchPreparedSlackMessage(createPreparedSlackMessage()); |
| 387 | + |
| 388 | +expect(draftStream.flush).toHaveBeenCalledTimes(1); |
| 389 | +expect(draftStream.seal).toHaveBeenCalledTimes(1); |
| 390 | +expect(finalizeSlackPreviewEditMock).toHaveBeenCalledWith( |
| 391 | +expect.objectContaining({ |
| 392 | +channelId: "C123", |
| 393 | +messageId: "171234.567", |
| 394 | +text: "✅", |
| 395 | +}), |
| 396 | +); |
| 397 | +expect(deliverRepliesMock).not.toHaveBeenCalled(); |
| 398 | +expect(draftStream.clear).not.toHaveBeenCalled(); |
| 399 | +}); |
| 400 | + |
374 | 401 | it("suppresses block streaming when Slack draft preview streaming is active", async () => { |
375 | 402 | mockedBlockStreamingEnabled = true; |
376 | 403 | |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。