A single end-to-end test drives the whole loop with the offline mock brain and asserts the conversation shape, proving the nest works before any paid model is wired.
Acceptance criteria — falsifiable tests
TestNestConversationEndToEndMock — Given a nest (owner + 2 mock crows), when posting request(@Hugin) -> Hugin claim -> Hugin deliver(@owner), then the log has exactly those 4 messages in order, kinds [request, claim, deliver, ...], replay via SSE matches byte-for-byte, and crows run/server state stays consistent. Assert on the recorded messages, not timing. Red now, green after.
The test asserts no third-party network: MockBrain is injected; a guard asserts brain.Name() == "offline mock".
Test command
go test -race -run 'TestNestConversationEndToEndMock' ./...
Blockers / unknowns
Uses B2/B3/B4 output as-is.
Epic: #2. Depends on: #11
## Goal
A single end-to-end test drives the whole loop with the offline mock brain and asserts the conversation shape, proving the nest works before any paid model is wired.
## Acceptance criteria — falsifiable tests
1. `TestNestConversationEndToEndMock` — Given a nest (owner + 2 mock crows), when posting request(@Hugin) -> Hugin claim -> Hugin deliver(@owner), then the log has exactly those 4 messages in order, kinds [request, claim, deliver, ...], replay via SSE matches byte-for-byte, and `crows run`/server state stays consistent. Assert on the recorded messages, not timing. Red now, green after.
2. The test asserts no third-party network: `MockBrain` is injected; a guard asserts `brain.Name() == "offline mock"`.
## Test command
`go test -race -run 'TestNestConversationEndToEndMock' ./...`
## Blockers / unknowns
Uses B2/B3/B4 output as-is.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Epic: #2. Depends on: #11
Goal
A single end-to-end test drives the whole loop with the offline mock brain and asserts the conversation shape, proving the nest works before any paid model is wired.
Acceptance criteria — falsifiable tests
TestNestConversationEndToEndMock— Given a nest (owner + 2 mock crows), when posting request(@Hugin) -> Hugin claim -> Hugin deliver(@owner), then the log has exactly those 4 messages in order, kinds [request, claim, deliver, ...], replay via SSE matches byte-for-byte, andcrows run/server state stays consistent. Assert on the recorded messages, not timing. Red now, green after.MockBrainis injected; a guard assertsbrain.Name() == "offline mock".Test command
go test -race -run 'TestNestConversationEndToEndMock' ./...Blockers / unknowns
Uses B2/B3/B4 output as-is.