返回 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 approveWorkspace(t, dir)
24 registerBootTokenProfileTestProvider()
25 setBootTokenProfileTestProvider(t, testutil.NewMock("identity", testutil.Turn{Text: "done"}))
26 ctrl, err := Build(context.Background(), Options{Sink: event.Discard})
27 if err != nil {
28 t.Fatal(err)
29 }
30 defer ctrl.Close()
31 known := map[string]bool{}
32 for _, name := range tool.KnownToolNames() {
33 known[name] = true
34 }
35 registered := map[string]bool{}
36 for _, entry := range ctrl.AllToolContractEntries() {
37 registered[entry.Name] = true
38 if !known[entry.Name] {
39 t.Errorf("registered tool %q missing diagnostic identity", entry.Name)
40 }
41 }
42 for _, name := range []string{"use_capability", "grep", "set_session_title", "review", "security_review"} {
43 if !registered[name] {
44 t.Errorf("missing runtime coverage for %s", name)
45 }
46 }
47 }
48
48 lines GO