test: cover --generator flag parsing and pickSources gating

This commit is contained in:
pj committed 2026-07-13 07:07:06 +05:30
1 parent 5b7a71358c
commit 46526f8014
2 files changed
+68

No files matched your search

+35
View File
@@ -93,6 +93,41 @@ func TestParseTestArgs_AVDIsOptional(t *testing.T) {
} }
} }
func TestParseTestArgs_GeneratorDefaultsToSeeded(t *testing.T) {
options, err := parseTestArgs([]string{"--spec", "s.ts", "--bundle-id", "com.example"}, io.Discard)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if options.generator != "seeded" {
t.Fatalf("generator default: got %q, want seeded", options.generator)
}
}
func TestParseTestArgs_AcceptsLLMGenerator(t *testing.T) {
options, err := parseTestArgs([]string{
"--spec", "s.ts",
"--bundle-id", "com.example",
"--generator", "llm",
}, io.Discard)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if options.generator != "llm" {
t.Fatalf("generator: got %q, want llm", options.generator)
}
}
func TestParseTestArgs_RejectsUnknownGenerator(t *testing.T) {
_, err := parseTestArgs([]string{
"--spec", "s.ts",
"--bundle-id", "com.example",
"--generator", "oracle",
}, io.Discard)
if err == nil || !strings.Contains(err.Error(), "unsupported generator") {
t.Fatalf("expected unsupported-generator error, got %v", err)
}
}
func TestParseTestArgs_RejectsUnknownPlatform(t *testing.T) { func TestParseTestArgs_RejectsUnknownPlatform(t *testing.T) {
_, err := parseTestArgs([]string{ _, err := parseTestArgs([]string{
"--spec", "s.ts", "--spec", "s.ts",
+33
View File
@@ -230,6 +230,39 @@ func candidateIndex(candidates []verifier.ActionCandidate, kind verifier.ActionK
return -1 return -1
} }
func TestPickSourcesSelectsLLMWhenRequested(t *testing.T) {
fake := newFakeOpenRouter(t)
_, verifierInstance := newLLMSource(t, fake)
action, _, err := pickSources(Options{
Verifier: verifierInstance,
Generator: "llm",
Logger: slog.New(slog.NewTextHandler(io.Discard, nil)),
})
if err != nil {
t.Fatalf("pickSources: %v", err)
}
if _, ok := action.(*llmSource); !ok {
t.Errorf("action source = %T, want *llmSource for --generator llm", action)
}
}
func TestPickSourcesSeededByDefault(t *testing.T) {
fake := newFakeOpenRouter(t)
_, verifierInstance := newLLMSource(t, fake)
action, _, err := pickSources(Options{
Verifier: verifierInstance,
Generator: "seeded",
Logger: slog.New(slog.NewTextHandler(io.Discard, nil)),
})
if err != nil {
t.Fatalf("pickSources: %v", err)
}
// Even with a generator = llm() config present, the seeded flag wins.
if _, ok := action.(gojaSource); !ok {
t.Errorf("action source = %T, want gojaSource for --generator seeded", action)
}
}
func TestLLMSourceDrivesExecutedActions(t *testing.T) { func TestLLMSourceDrivesExecutedActions(t *testing.T) {
fake := newFakeOpenRouter(t) fake := newFakeOpenRouter(t)
source, verifierInstance := newLLMSource(t, fake) source, verifierInstance := newLLMSource(t, fake)