package app import ( "testing" "github.com/hjbdev/patterm/internal/protocol" ) func TestClientSubscriberCopiesChunksAndMarksSnapshotOnOverflow(t *testing.T) { sub := newClientSubscriber(&Project{Key: "project"}, "client", 1) chunk := []byte("first") sub.OnPTYOut("p_123456", chunk) chunk[0] = 'X' f, ok := sub.Recv() if !ok { t.Fatalf("Recv closed") } payload, err := protocol.Decode[protocol.PaneChunk](f) if err != nil { t.Fatalf("Decode: %v", err) } if string(payload.Bytes) != "first" { t.Fatalf("payload retained pump buffer: %q", string(payload.Bytes)) } sub.OnPTYOut("p_123456", []byte("queued")) sub.OnPTYOut("p_123456", []byte("dropped")) if !sub.SnapshotRequired("p_123456") { t.Fatalf("overflow did not mark pane snapshot required") } }