Skip to content

fix(cli): skip prompts TTY test when stdin is a TTY#174

Merged
montfort merged 1 commit into
mainfrom
fix/cli-skip-tty-test
May 19, 2026
Merged

fix(cli): skip prompts TTY test when stdin is a TTY#174
montfort merged 1 commit into
mainfrom
fix/cli-skip-tty-test

Conversation

@montfort
Copy link
Copy Markdown
Contributor

Summary

  • require_interactive_errors_in_non_tty (cli/src/prompts.rs) failed when cargo test ran from an interactive shell because stdin was inherited as a TTY, contradicting the test's assumption.
  • Add a runtime guard: if stdin is a TTY, return early. Under CI / piped invocations the assertion still runs.

Test plan

  • cargo test --bin straymark → 320 passed, 0 failed (TTY path: early return)
  • cargo test --bin straymark < /dev/null → 320 passed, 0 failed (non-TTY path: assertion exercised)

🤖 Generated with Claude Code

The require_interactive_errors_in_non_tty test asserted that
require_interactive() fails when stdin is not a TTY, relying on the
assumption that `cargo test` always runs without a TTY. That assumption
breaks when running `cargo test` from an interactive shell, where stdin
is inherited and the assertion fails.

Add a runtime guard at the top of the test: if stdin is a TTY, return
early. Under CI or piped invocations the test still exercises the real
non-TTY path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@montfort montfort merged commit 148c6a2 into main May 19, 2026
1 check passed
@montfort montfort deleted the fix/cli-skip-tty-test branch May 19, 2026 07:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant