-
Notifications
You must be signed in to change notification settings - Fork 30
[Enhancement] Expand MessageStore test coverage for streaming lifecycle #232
Copy link
Copy link
Open
Labels
area/coreTask & Session Core WGTask & Session Core WGarea/dxObservability & DX WGObservability & DX WGenhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed
Description
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
- Open
packages/desktop/test/message-store.test.ts - Add test cases for:
appendStreamDelta: appending text to an active turn, creating a new active turn if none exists, handling empty deltasfinalizeStream: finalizing an active turn marks it as complete, calling finalize with no active turn is a no-oppromoteActiveTurn: promoting moves the turn into the message array with correct metadata, promoting when no active turn exists is safeupsertToolCallfallback chain: test all 3 branches — active turn exists, fallback to last assistant message, fallback to creating a new active turn
- Run
pnpm checkto 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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area/coreTask & Session Core WGTask & Session Core WGarea/dxObservability & DX WGObservability & DX WGenhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed