返回 DeepSeek-Reasonix
image_capability_snapshot_test.go
根目录 / internal / boot / image_capability_snapshot_test.go
1 package boot
2
3 import (
4 "context"
5 "reasonix/internal/event"
6 "testing"
7 )
8
9 func TestBuildImageCapabilityFrozenUntilRebuild(t *testing.T) {
10 isolateConfigHome(t)
11 dir := robustTempDir(t)
12 t.Chdir(dir)
13 base := `default_model = "relay/x"
14 [agent]
15 system_prompt = "stable prefix"
16 [[providers]]
17 name = "relay"
18 kind = "openai"
19 base_url = "http://localhost:1"
20 model = "x"
21 `
22 writeFile(t, dir, "reasonix.toml", base)
23 old, err := Build(context.Background(), Options{Sink: event.Discard})
24 if err != nil {
25 t.Fatal(err)
26 }
27 defer old.Close()
28 if old.ImageInputEnabled() || old.ImageCapabilityChanged() {
29 t.Fatal("fresh unknown snapshot should be disabled and current")
30 }
31 writeFile(t, dir, "reasonix.toml", base+"[providers.model_overrides.x]\nvision = true\n")
32 if old.ImageInputEnabled() || !old.ImageCapabilityChanged() {
33 t.Fatal("saved setting must invalidate, not mutate old runtime")
34 }
35 next, err := Build(context.Background(), Options{Sink: event.Discard})
36 if err != nil {
37 t.Fatal(err)
38 }
39 defer next.Close()
40 if !next.ImageInputEnabled() || next.ImageCapabilityChanged() {
41 t.Fatal("rebuilt snapshot should be enabled and current")
42 }
43 writeFile(t, dir, "reasonix.toml", base+"[providers.model_overrides.x]\nvision = false\n")
44 if !next.ImageInputEnabled() || !next.ImageCapabilityChanged() {
45 t.Fatal("running snapshot switched before rebuild")
46 }
47 }
48
48 lines GO