MCPcopy
hub / github.com/danielmiessler/Fabric / TestInitWithYAMLConfig

Function TestInitWithYAMLConfig

internal/cli/flags_test.go:116–191  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

114}
115
116func TestInitWithYAMLConfig(t *testing.T) {
117 // Create a temporary YAML config file
118 configContent := `
119temperature: 0.9
120model: gpt-4
121pattern: analyze
122stream: true
123`
124 tmpfile, err := os.CreateTemp("", "config.*.yaml")
125 if err != nil {
126 t.Fatal(err)
127 }
128 defer os.Remove(tmpfile.Name())
129
130 if _, err := tmpfile.Write([]byte(configContent)); err != nil {
131 t.Fatal(err)
132 }
133 if err := tmpfile.Close(); err != nil {
134 t.Fatal(err)
135 }
136
137 // Test 1: Basic YAML loading
138 t.Run("Load YAML config", func(t *testing.T) {
139 oldArgs := os.Args
140 defer func() { os.Args = oldArgs }()
141 os.Args = []string{"cmd", "--config", tmpfile.Name()}
142
143 flags, err := Init()
144 assert.NoError(t, err)
145 assert.Equal(t, 0.9, flags.Temperature)
146 assert.Equal(t, "gpt-4", flags.Model)
147 assert.Equal(t, "analyze", flags.Pattern)
148 assert.True(t, flags.Stream)
149 })
150
151 // Test 2: CLI overrides YAML
152 t.Run("CLI overrides YAML", func(t *testing.T) {
153 oldArgs := os.Args
154 defer func() { os.Args = oldArgs }()
155 os.Args = []string{"cmd", "--config", tmpfile.Name(), "--temperature", "0.7", "--model", "gpt-3.5-turbo"}
156
157 flags, err := Init()
158 assert.NoError(t, err)
159 assert.Equal(t, 0.7, flags.Temperature)
160 assert.Equal(t, "gpt-3.5-turbo", flags.Model)
161 assert.Equal(t, "analyze", flags.Pattern) // unchanged from YAML
162 assert.True(t, flags.Stream) // unchanged from YAML
163 })
164
165 // Test 3: Invalid YAML config
166 t.Run("Invalid YAML config", func(t *testing.T) {
167 badConfig := `
168temperature: "not a float"
169model: 123 # should be string
170`
171 badfile, err := os.CreateTemp("", "bad-config.*.yaml")
172 if err != nil {
173 t.Fatal(err)

Callers

nothing calls this directly

Calls 4

RemoveMethod · 0.80
ErrorMethod · 0.80
InitFunction · 0.70
CloseMethod · 0.45

Tested by

no test coverage detected