1package modes
2
3import "testing"
4
5func TestStartupResourcesAreOptIn(t *testing.T) {
6 cfg := InteractiveConfig{
7 StartupAgentName: "zut-maintenance",
8 StartupContextPaths: []string{"/repo/AGENTS.md"},
9 StartupExtensionNames: []string{"workspaces"},
10 StartupSkillNames: []string{"review"},
11 }
12
13 disabled := NewInteractive(cfg)
14 disabled.rend = nil
15 assertStartupResourceCounts(t, disabled, 0)
16
17 disabled.applySettingToggle("show_instructions_at_startup", true)
18 assertStartupResourceCounts(t, disabled, 1)
19
20 disabled.applySettingToggle("show_instructions_at_startup", false)
21 assertStartupResourceCounts(t, disabled, 0)
22
23 enabledValue := true
24 cfg.ShowInstructionsAtStartup = &enabledValue
25 enabled := NewInteractive(cfg)
26 assertStartupResourceCounts(t, enabled, 1)
27}
28
29func assertStartupResourceCounts(t *testing.T, i *Interactive, want int) {
30 t.Helper()
31 wantAgent := ""
32 if want > 0 {
33 wantAgent = "zut-maintenance"
34 }
35 if got := i.view.StartupAgentName; got != wantAgent {
36 t.Fatalf("startup agent = %q, want %q", got, wantAgent)
37 }
38 if got := len(i.view.StartupContextPaths); got != want {
39 t.Fatalf("startup context count = %d, want %d", got, want)
40 }
41 if got := len(i.view.StartupExtensionNames); got != want {
42 t.Fatalf("startup extension count = %d, want %d", got, want)
43 }
44 if got := len(i.view.StartupSkillNames); got != want {
45 t.Fatalf("startup skill count = %d, want %d", got, want)
46 }
47}