diff --git a/internal/adapter/cli/run_test.go b/internal/adapter/cli/run_test.go index 9e08566..8af17d6 100644 --- a/internal/adapter/cli/run_test.go +++ b/internal/adapter/cli/run_test.go @@ -322,6 +322,22 @@ func TestParseRunArgsMissingExplicitConfigReturnsError(t *testing.T) { } } +func TestParseRunArgsInvalidExplicitConfigReturnsError(t *testing.T) { + configPath := writeAppConfigFile(t, "api_key: secret\n") + + _, err := parseRunArgs([]string{ + "--config", configPath, + "--prompt", "p", + "--input", "a=b", + }) + if err == nil { + t.Fatal("expected invalid explicit config error") + } + if !strings.Contains(err.Error(), "application config error") { + t.Fatalf("expected application config context, got %v", err) + } +} + func TestResolveAppSettingsMissingImplicitConfigDoesNotError(t *testing.T) { fs := flag.NewFlagSet("test", flag.ContinueOnError) settings, err := resolveAppSettings(fs, filepath.Join(t.TempDir(), "missing.yml"), appconfig.CLIOverrides{}) diff --git a/internal/config/config_test.go b/internal/config/config_test.go index f5d8cc3..953d9b4 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -49,6 +49,18 @@ func TestLoadConfigInvalidYAMLReturnsError(t *testing.T) { } } +func TestLoadConfigInvalidYAMLImplicitPathReturnsError(t *testing.T) { + path := writeConfigFile(t, "config.yml", "prompt_dir: [") + + _, err := LoadConfig(path, false) + if err == nil { + t.Fatal("expected invalid YAML error") + } + if !errors.Is(err, ErrInvalidConfigYAML) { + t.Fatalf("expected ErrInvalidConfigYAML, got %v", err) + } +} + func TestLoadConfigUnknownFieldReturnsError(t *testing.T) { path := writeConfigFile(t, "config.yml", "unknown_field: true\n")