---
id: TASK-34
title: Add exec runner coverage tests (dry-run + spinner paths)
status: Done
assignee:
  - codex
created_date: '2026-03-04 22:30'
updated_date: '2026-03-04 22:31'
labels: []
dependencies: []
references:
  - src/core/exec.rs
  - /tmp/coverage.txt
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Coverage report shows uncovered paths in `src/core/exec.rs` around dry-run verbose>=3, spinner start/stop, and reset/utility helpers. Add unit tests to exercise these code paths under `--all-features` without executing external commands.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 Add a test that runs a `Runner { verbose: 3, dry_run: true }` command to cover the dry-run verbose path (no spawn).
- [x] #2 Add tests (behind `cfg(feature = "spinners")`) that cover `start_spinner` returning None for dry_run or non-verbose=2, and a happy path that starts and stops a spinner with a non-empty message.
- [x] #3 Add a test that calls `reset_terminal_colors()` to cover the best-effort reset path (no assertions required).
- [x] #4 Tests live in `src/core/exec.rs` and pass under `just check`.
<!-- AC:END -->

## Implementation Plan

<!-- SECTION:PLAN:BEGIN -->
1) Add a test in src/core/exec.rs that runs Runner { verbose: 3, dry_run: true } to exercise the dry-run verbose path without spawning a process.
2) Under #[cfg(feature = "spinners")], add tests for start_spinner returning None when dry_run or verbose != 2, plus a happy path that starts/stops a spinner with a non-empty message.
3) Add a test that calls reset_terminal_colors() (best-effort, no assertions).
4) Run just check to confirm.
<!-- SECTION:PLAN:END -->

## Implementation Notes

<!-- SECTION:NOTES:BEGIN -->
Added dry-run verbose=3 exec test, reset_terminal_colors test, and spinner tests (cfg feature) for none and start/stop. Ran `just check -- -D warnings` (passes).
<!-- SECTION:NOTES:END -->

## Final Summary

<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Added exec coverage tests for dry-run verbose=3, reset_terminal_colors, and spinner start/stop/none paths (feature-gated). Tests: `just check -- -D warnings`.
<!-- SECTION:FINAL_SUMMARY:END -->
