返回 DeepSeek-Reasonix
tool_identity_test.go
根目录 / internal / boot / tool_identity_test.go
1 package boot
2
3 import (
4 "context"
5 "testing"
6
7 "reasonix/internal/agent/testutil"
8 "reasonix/internal/event"
9 "reasonix/internal/tool"
10 )
11
12 func TestBootRegisteredToolsHaveDiagnosticIdentities(t *testing.T) {
13 isolateConfigHome(t)
14 dir := robustTempDir(t)
15 t.Chdir(dir)
16 writeFile(t, dir, "reasonix.toml", `
17 default_model = "test-model"
18 [[providers]]
19 name = "test-model"
20 kind = "boot-token-profile-test"
21 model = "x"
22 `)
23 registerBootTokenProfileTestProvider()
24 setBootTokenProfileTestProvider(t, testutil.NewMock("identity", testutil.Turn{Text: "done"}))
25 ctrl, err := Build(context.Background(), Options{Sink: event.Discard})
26 if err != nil {
27 t.Fatal(err)
28 }
29 defer ctrl.Close()
30 known := map[string]bool{}
31 for _, name := range tool.KnownToolNames() {
32 known[name] = true
33 }
34 registered := map[string]bool{}
35 for _, entry := range ctrl.AllToolContractEntries() {
36 registered[entry.Name] = true
37 if !known[entry.Name] {
38 t.Errorf("registered tool %q missing diagnostic identity", entry.Name)
39 }
40 }
41 for _, name := range []string{"use_capability", "grep", "set_session_title", "review", "security_review"} {
42 if !registered[name] {
43 t.Errorf("missing runtime coverage for %s", name)
44 }
45 }
46 }
47
47 lines GO