package event import ( "encoding/json" "testing" "time" ) func TestEvent_JSONRoundTrip(t *testing.T) { original := Event{ ID: "evt-1", TaskID: "task-1", Seq: 42, Timestamp: time.Date(2026, 5, 22, 12, 0, 0, 0, time.UTC), Kind: KindClarificationRequest, Actor: ActorAgent, Payload: json.RawMessage(`{"question":"which env?"}`), } data, err := json.Marshal(original) if err != nil { t.Fatalf("marshal: %v", err) } var got Event if err := json.Unmarshal(data, &got); err != nil { t.Fatalf("unmarshal: %v", err) } if got.ID != original.ID || got.TaskID != original.TaskID || got.Seq != original.Seq { t.Errorf("id/task/seq mismatch: got %+v want %+v", got, original) } if !got.Timestamp.Equal(original.Timestamp) { t.Errorf("timestamp mismatch: got %v want %v", got.Timestamp, original.Timestamp) } if got.Kind != original.Kind || got.Actor != original.Actor { t.Errorf("kind/actor mismatch: got %v/%v want %v/%v", got.Kind, got.Actor, original.Kind, original.Actor) } if string(got.Payload) != string(original.Payload) { t.Errorf("payload mismatch: got %s want %s", got.Payload, original.Payload) } }