返回 DeepSeek-Reasonix
write_access_test.go
根目录 / internal / cli / write_access_test.go
1 package cli
2
3 import (
4 "testing"
5
6 "reasonix/internal/event"
7 )
8
9 func TestWriteAccessApprovalChoicesPreserveScopes(t *testing.T) {
10 got := approvalChoices(&event.Approval{
11 Tool: "bash", Kind: event.ApprovalKindWriteAccess,
12 WriteAccess: &event.WriteAccessApproval{Directories: []string{"/tmp/out"}},
13 })
14 want := []approvalChoice{
15 {allow: true},
16 {allow: true, allowForSession: true},
17 {},
18 }
19 if len(got) != len(want) {
20 t.Fatalf("write-access choices = %d, want %d", len(got), len(want))
21 }
22 for i := range got {
23 got[i].label = ""
24 if got[i] != want[i] {
25 t.Fatalf("write-access choice %d = %+v, want %+v", i, got[i], want[i])
26 }
27 }
28 labels := approvalChoiceLabels(&event.Approval{Kind: event.ApprovalKindWriteAccess})
29 if len(labels) != 3 {
30 t.Fatalf("write-access labels = %v", labels)
31 }
32 }
33
33 lines GO