clawwork-ai/ClawWork

[Enhancement] Expand MessageStore test coverage for streaming lifecycle

Open

#232 aperta il 1 apr 2026

Vedi su GitHub
 (1 commento) (0 reazioni) (0 assegnatari)TypeScript (63 fork)github user discovery
area/corearea/dxenhancementhelp wanted

Metriche repository

Star
 (519 star)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

What problem are you trying to solve?

MessageStore has only 1 direct unit test (for upsertToolCall). The streaming message lifecycle — appendStreamDelta, finalizeStream, promoteActiveTurn — has no isolated tests. These functions are covered indirectly through session-sync.test.ts integration tests, but edge cases in the streaming lifecycle deserve dedicated coverage.

Where

  • Source: packages/core/src/stores/message-store.ts
  • Existing test: packages/desktop/test/message-store.test.ts (1 test case)

What needs to be done

  1. Open packages/desktop/test/message-store.test.ts
  2. Add test cases for:
    • appendStreamDelta: appending text to an active turn, creating a new active turn if none exists, handling empty deltas
    • finalizeStream: finalizing an active turn marks it as complete, calling finalize with no active turn is a no-op
    • promoteActiveTurn: promoting moves the turn into the message array with correct metadata, promoting when no active turn exists is safe
    • upsertToolCall fallback chain: test all 3 branches — active turn exists, fallback to last assistant message, fallback to creating a new active turn
  3. Run pnpm check to verify

Why does this matter?

Message streaming is the core user-facing data flow. The appendStreamDelta → finalizeStream → promoteActiveTurn lifecycle is subtle and has caused production regressions before (message duplication). Dedicated tests prevent re-introducing these bugs.

Primary area

Task execution

Guida contributor