aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/command/update_command_test.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-07-19 14:57:17 +0900
committernsfisis <nsfisis@gmail.com>2026-07-19 14:57:17 +0900
commita3334ee267d3e905646bdb49c2edc8774ac8d966 (patch)
treecd6a805445ea330f706dc96f8ed1b5a249d7661b /crates/shirabe/tests/command/update_command_test.rs
parent15c54ec439d0e718ae4aa81cc96c66b69ddfa4d1 (diff)
downloadphp-shirabe-a3334ee267d3e905646bdb49c2edc8774ac8d966.tar.gz
php-shirabe-a3334ee267d3e905646bdb49c2edc8774ac8d966.tar.zst
php-shirabe-a3334ee267d3e905646bdb49c2edc8774ac8d966.zip
fix(test-harness): set COMPOSER_TESTS_ARE_RUNNING so interactive tests actually run
Without this, Application::do_run force-disabled interactivity whenever stdin wasn't a tty (as under cargo test), so ApplicationTester runs with set_inputs silently produced non-interactive default output instead of consuming the answers, masking real behavior as several stale #[ignore]s blaming already-implemented ProcessExecutor/Process todo!()s. Port composer/tests/bootstrap.php's env setup into a bootstrap() helper called from get_application_tester(), un-ignore the now-passing init/update command tests, and update init_command_test's expected schema-validation wording to match the jsonschema crate (already the accepted wording per 541a8b4f, not an unported gap).
Diffstat (limited to 'crates/shirabe/tests/command/update_command_test.rs')
-rw-r--r--crates/shirabe/tests/command/update_command_test.rs7
1 files changed, 5 insertions, 2 deletions
diff --git a/crates/shirabe/tests/command/update_command_test.rs b/crates/shirabe/tests/command/update_command_test.rs
index b37127ab..866755bf 100644
--- a/crates/shirabe/tests/command/update_command_test.rs
+++ b/crates/shirabe/tests/command/update_command_test.rs
@@ -352,7 +352,6 @@ Lock file operations: 0 installs, 2 updates, 0 removals
#[test]
#[serial]
-#[ignore = "interactive selection path unported: --interactive requires a TTY and errors with \"--interactive cannot be used in non-interactive terminals.\""]
fn test_interactive_mode_throws_if_no_package_to_update() {
let composer_json = serde_json::json!({
"repositories": { "packages": { "type": "package", "package": [
@@ -383,7 +382,11 @@ fn test_interactive_mode_throws_if_no_package_to_update() {
#[test]
#[serial]
-#[ignore = "interactive selection path unported: --interactive requires a TTY and errors with \"--interactive cannot be used in non-interactive terminals.\""]
+#[ignore = "ConsoleIO::ask_question panics via .expect() on any QuestionHelper validator error \
+ instead of propagating it, so io.select()'s \"No package named ...\" validation \
+ error can't reach app_tester.run() as an Err; fixing this needs IOInterface::ask()/ \
+ select() to return anyhow::Result, which ripples through ~18 ask() and ~4 select() \
+ call sites (see project_console_io_ask_select_panics memory)"]
fn test_interactive_mode_throws_if_no_package_entered() {
let composer_json = serde_json::json!({
"repositories": { "packages": { "type": "package", "package": [