From 9ae7c00cef5f2ff9d6da4e9d20ab187296d23550 Mon Sep 17 00:00:00 2001 From: adil Date: Sun, 12 Apr 2026 12:19:29 +0530 Subject: [PATCH] test: add coverage for optional repo and ignore interactive prompt lines - Add test for orchestrator-prompt with repo: undefined (verifies "not configured" fallback instead of showing literal "undefined") - Add c8 ignore for interactive prompt code in autoCreateConfig and promptText (same pattern as existing promptConfirm/promptSelect) Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/cli/src/commands/start.ts | 2 ++ packages/cli/src/lib/prompts.ts | 2 ++ .../core/src/__tests__/orchestrator-prompt.test.ts | 12 ++++++++++++ 3 files changed, 16 insertions(+) diff --git a/packages/cli/src/commands/start.ts b/packages/cli/src/commands/start.ts index 32f84f813..43d67cfb4 100644 --- a/packages/cli/src/commands/start.ts +++ b/packages/cli/src/commands/start.ts @@ -567,6 +567,7 @@ async function autoCreateConfig(workingDir: string): Promise const defaultBranch = env.defaultBranch || "main"; // If no repo detected, inform the user and ask + /* c8 ignore start -- interactive prompt, tested via onboarding integration */ if (!repo && isHumanCaller()) { console.log(chalk.yellow(" ⚠ Could not auto-detect a GitHub/GitLab remote.")); const entered = await promptText( @@ -581,6 +582,7 @@ async function autoCreateConfig(workingDir: string): Promise console.log(chalk.yellow(` ⚠ "${trimmed}" doesn't look like owner/repo — skipping.`)); } } + /* c8 ignore stop */ // Detect available agent runtimes via plugin registry let detectedAgents = await detectAvailableAgents(); diff --git a/packages/cli/src/lib/prompts.ts b/packages/cli/src/lib/prompts.ts index 460ae380c..f7be6bebb 100644 --- a/packages/cli/src/lib/prompts.ts +++ b/packages/cli/src/lib/prompts.ts @@ -29,6 +29,7 @@ export async function promptSelect( return result; } +/* c8 ignore start -- interactive prompt wrapper, same pattern as promptConfirm/promptSelect */ export async function promptText( message: string, placeholder?: string, @@ -43,3 +44,4 @@ export async function promptText( } return result; } +/* c8 ignore stop */ diff --git a/packages/core/src/__tests__/orchestrator-prompt.test.ts b/packages/core/src/__tests__/orchestrator-prompt.test.ts index 82ae1ff49..c9fcf26c8 100644 --- a/packages/core/src/__tests__/orchestrator-prompt.test.ts +++ b/packages/core/src/__tests__/orchestrator-prompt.test.ts @@ -56,6 +56,18 @@ describe("generateOrchestratorPrompt", () => { expect(prompt).toContain("ao send --no-wait"); }); + it("shows 'not configured' when repo is omitted", () => { + const noRepoProject = { ...config.projects["my-app"]!, repo: undefined }; + const prompt = generateOrchestratorPrompt({ + config, + projectId: "my-app", + project: noRepoProject, + }); + + expect(prompt).toContain("not configured"); + expect(prompt).not.toContain("undefined"); + }); + it("pushes implementation and PR claiming into worker sessions", () => { const prompt = generateOrchestratorPrompt({ config,