Test configuration values via ServerCmd execution
(t *testing.T)
| 220 | |
| 221 | // Test configuration values via ServerCmd execution |
| 222 | func TestServerCmd_AllArgs_Defaults(t *testing.T) { |
| 223 | tests := []struct { |
| 224 | name string |
| 225 | flag string |
| 226 | expected any |
| 227 | getter func() any |
| 228 | }{ |
| 229 | {"type default", FlagType, "", func() any { return viper.GetString(FlagType) }}, |
| 230 | {"port default", FlagPort, 3284, func() any { return viper.GetInt(FlagPort) }}, |
| 231 | {"print-openapi default", FlagPrintOpenAPI, false, func() any { return viper.GetBool(FlagPrintOpenAPI) }}, |
| 232 | {"chat-base-path default", FlagChatBasePath, "/chat", func() any { return viper.GetString(FlagChatBasePath) }}, |
| 233 | {"term-width default", FlagTermWidth, uint16(80), func() any { return viper.GetUint16(FlagTermWidth) }}, |
| 234 | {"term-height default", FlagTermHeight, uint16(1000), func() any { return viper.GetUint16(FlagTermHeight) }}, |
| 235 | {"allowed-hosts default", FlagAllowedHosts, []string{"localhost", "127.0.0.1", "[::1]"}, func() any { return viper.GetStringSlice(FlagAllowedHosts) }}, |
| 236 | {"allowed-origins default", FlagAllowedOrigins, []string{"http://localhost:3284", "http://localhost:3000", "http://localhost:3001"}, func() any { return viper.GetStringSlice(FlagAllowedOrigins) }}, |
| 237 | } |
| 238 | |
| 239 | for _, tt := range tests { |
| 240 | t.Run(tt.name, func(t *testing.T) { |
| 241 | isolateViper(t) |
| 242 | serverCmd := CreateServerCmd() |
| 243 | setupCommandOutput(t, serverCmd) |
| 244 | // Execute with --exit to get defaults |
| 245 | serverCmd.SetArgs([]string{"--exit", "dummy-command"}) |
| 246 | if err := serverCmd.Execute(); err != nil { |
| 247 | t.Fatalf("Failed to execute server command: %v", err) |
| 248 | } |
| 249 | |
| 250 | assert.Equal(t, tt.expected, tt.getter()) |
| 251 | }) |
| 252 | } |
| 253 | } |
| 254 | |
| 255 | func TestServerCmd_AllEnvVars(t *testing.T) { |
| 256 | tests := []struct { |
nothing calls this directly
no test coverage detected