返回 DeepSeek-Reasonix
wire_test.go
根目录 / desktop / wire_test.go
1 package main
2
3 import (
4 "encoding/json"
5 "strings"
6 "testing"
7
8 "reasonix/internal/event"
9 )
10
11 func TestWireEventTabPreservesSharedRetryingFields(t *testing.T) {
12 w := toWireTab(event.Event{Kind: event.Retrying, RetryAttempt: 3, RetryMax: 10}, "tab-1")
13 b, err := json.Marshal(w)
14 if err != nil {
15 t.Fatalf("marshal: %v", err)
16 }
17 s := string(b)
18 for _, want := range []string{`"kind":"retrying"`, `"retryAttempt":3`, `"retryMax":10`, `"tabId":"tab-1"`} {
19 if !strings.Contains(s, want) {
20 t.Fatalf("tab retrying JSON = %s, want it to contain %s", s, want)
21 }
22 }
23 }
24
25 func TestWireEventTabPreservesTurnDoneCheckpointZero(t *testing.T) {
26 turn := 0
27 b, err := json.Marshal(toWireTabWithSubmission(event.Event{Kind: event.TurnDone, CheckpointTurn: &turn}, "tab-1", "runtime-1", "submission-1", 0))
28 if err != nil {
29 t.Fatalf("marshal: %v", err)
30 }
31 for _, want := range []string{`"kind":"turn_done"`, `"checkpointTurn":0`, `"tabId":"tab-1"`, `"runtimeEpoch":"runtime-1"`, `"submissionId":"submission-1"`} {
32 if !strings.Contains(string(b), want) {
33 t.Fatalf("tab TurnDone JSON = %s, want it to contain %s", b, want)
34 }
35 }
36 }
37
38 func TestWireEventTabCarriesAuthoritativeTurnStart(t *testing.T) {
39 const startedAt = int64(1_723_456_789_000)
40 b, err := json.Marshal(toWireTabWithSubmission(event.Event{Kind: event.TurnStarted}, "tab-1", "runtime-1", "submission-1", startedAt))
41 if err != nil {
42 t.Fatalf("marshal: %v", err)
43 }
44 for _, want := range []string{`"kind":"turn_started"`, `"turnStartedAt":1723456789000`, `"tabId":"tab-1"`, `"submissionId":"submission-1"`} {
45 if !strings.Contains(string(b), want) {
46 t.Fatalf("tab TurnStarted JSON = %s, want it to contain %s", b, want)
47 }
48 }
49 }
50
51 func TestWireEventTabCarriesSessionGeneration(t *testing.T) {
52 b, err := json.Marshal(toWireTabWithSubmission(event.Event{Kind: event.TurnDone}, "tab-1", "runtime-1", "", 0, 7))
53 if err != nil {
54 t.Fatalf("marshal: %v", err)
55 }
56 if !strings.Contains(string(b), `"sessionGeneration":7`) {
57 t.Fatalf("tab event JSON = %s, want session generation", b)
58 }
59 }
60
60 lines GO