返回 DeepSeek-Reasonix
import_resolver_prefix_test.go
根目录 / internal / session / import_resolver_prefix_test.go
1 package session
2
3 import (
4 "encoding/json"
5 "os"
6 "path/filepath"
7 "testing"
8
9 "reasonix/internal/provider"
10 )
11
12 func TestCompareLegacySpoolPreservesBothPrefixDirections(t *testing.T) {
13 message := func(id string) provider.Message {
14 return provider.Message{ID: id, Role: provider.RoleUser, Content: id}
15 }
16 for _, test := range []struct {
17 name string
18 legacy, preview []provider.Message
19 want importMessageRelation
20 }{
21 {"equal", []provider.Message{message("a")}, []provider.Message{message("a")}, importMessagesEqual},
22 {"newer-events", []provider.Message{message("a")}, []provider.Message{message("a"), message("b")}, importLegacyPrefix},
23 {"newer-transcript", []provider.Message{message("a"), message("b")}, []provider.Message{message("a")}, importPreviewPrefix},
24 {"divergent-longer-transcript", []provider.Message{message("a"), message("c"), message("d")}, []provider.Message{message("a"), message("b")}, importMessagesConflict},
25 } {
26 t.Run(test.name, func(t *testing.T) {
27 path := filepath.Join(t.TempDir(), "messages.jsons")
28 file, err := os.Create(path)
29 if err != nil {
30 t.Fatal(err)
31 }
32 for _, message := range test.legacy {
33 if err := json.NewEncoder(file).Encode(message); err != nil {
34 t.Fatal(err)
35 }
36 }
37 if err := file.Close(); err != nil {
38 t.Fatal(err)
39 }
40 got, count, _, err := compareLegacySpool(path, test.preview)
41 if err != nil || got != test.want || count != len(test.legacy) {
42 t.Fatalf("relation=%v count=%d err=%v", got, count, err)
43 }
44 })
45 }
46 }
47
47 lines GO