(t *testing.T)
| 253 | } |
| 254 | |
| 255 | func TestServerCmd_AllEnvVars(t *testing.T) { |
| 256 | tests := []struct { |
| 257 | name string |
| 258 | envVar string |
| 259 | envValue string |
| 260 | expected any |
| 261 | getter func() any |
| 262 | }{ |
| 263 | {"AGENTAPI_TYPE", "AGENTAPI_TYPE", "claude", "claude", func() any { return viper.GetString(FlagType) }}, |
| 264 | {"AGENTAPI_PORT", "AGENTAPI_PORT", "8080", 8080, func() any { return viper.GetInt(FlagPort) }}, |
| 265 | {"AGENTAPI_PRINT_OPENAPI", "AGENTAPI_PRINT_OPENAPI", "true", true, func() any { return viper.GetBool(FlagPrintOpenAPI) }}, |
| 266 | {"AGENTAPI_CHAT_BASE_PATH", "AGENTAPI_CHAT_BASE_PATH", "/api", "/api", func() any { return viper.GetString(FlagChatBasePath) }}, |
| 267 | {"AGENTAPI_TERM_WIDTH", "AGENTAPI_TERM_WIDTH", "120", uint16(120), func() any { return viper.GetUint16(FlagTermWidth) }}, |
| 268 | {"AGENTAPI_TERM_HEIGHT", "AGENTAPI_TERM_HEIGHT", "500", uint16(500), func() any { return viper.GetUint16(FlagTermHeight) }}, |
| 269 | {"AGENTAPI_ALLOWED_HOSTS", "AGENTAPI_ALLOWED_HOSTS", "localhost example.com", []string{"localhost", "example.com"}, func() any { return viper.GetStringSlice(FlagAllowedHosts) }}, |
| 270 | {"AGENTAPI_ALLOWED_ORIGINS", "AGENTAPI_ALLOWED_ORIGINS", "https://example.com http://localhost:3000", []string{"https://example.com", "http://localhost:3000"}, func() any { return viper.GetStringSlice(FlagAllowedOrigins) }}, |
| 271 | } |
| 272 | |
| 273 | for _, tt := range tests { |
| 274 | t.Run(tt.name, func(t *testing.T) { |
| 275 | isolateViper(t) |
| 276 | t.Setenv(tt.envVar, tt.envValue) |
| 277 | |
| 278 | serverCmd := CreateServerCmd() |
| 279 | setupCommandOutput(t, serverCmd) |
| 280 | serverCmd.SetArgs([]string{"--exit", "dummy-command"}) |
| 281 | if err := serverCmd.Execute(); err != nil { |
| 282 | t.Fatalf("Failed to execute server command: %v", err) |
| 283 | } |
| 284 | |
| 285 | assert.Equal(t, tt.expected, tt.getter()) |
| 286 | }) |
| 287 | } |
| 288 | } |
| 289 | |
| 290 | func TestServerCmd_ArgsPrecedenceOverEnv(t *testing.T) { |
| 291 | tests := []struct { |
nothing calls this directly
no test coverage detected