diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-27 20:45:59 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-27 20:45:59 +0900 |
| commit | 9759168c0c9b8120980b06734c0c029712bc7861 (patch) | |
| tree | bcf02b0822b0be94075a860d7e1066d7652e878e /crates/shirabe/tests | |
| parent | 40bb49fc0b80d5ff97875903b2c2e55ff394cecc (diff) | |
| download | php-shirabe-9759168c0c9b8120980b06734c0c029712bc7861.tar.gz php-shirabe-9759168c0c9b8120980b06734c0c029712bc7861.tar.zst php-shirabe-9759168c0c9b8120980b06734c0c029712bc7861.zip | |
feat(command/update): port UpdateCommand input definition
Replace the empty set_definition stub with the full InputArgument/
InputOption set from Composer's UpdateCommand. The symfony input
modeling was already complete; this was the last command still passing
an empty definition, which made it reject its own options.
Un-ignores test_no_security_blocking_allows_insecure_packages (now
passing) and re-labels the six remaining update tests with their actual
blockers (regex porting, resolver temporary-constraint, interactive
mode, bump-after-update solver pool) since the old "empty
InputDefinition" reason no longer applies.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests')
| -rw-r--r-- | crates/shirabe/tests/command/update_command_test.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/crates/shirabe/tests/command/update_command_test.rs b/crates/shirabe/tests/command/update_command_test.rs index 6cc36bd..159380e 100644 --- a/crates/shirabe/tests/command/update_command_test.rs +++ b/crates/shirabe/tests/command/update_command_test.rs @@ -235,7 +235,7 @@ Your requirements could not be resolved to an installable set of packages. #[test] #[serial] -#[ignore = "UpdateCommand::configure sets an empty InputDefinition (Phase-C: InputArgument/InputOption modeling pending), so the command rejects its own options, failing with e.g. \"The \\\"--dry-run\\\" option does not exist.\""] +#[ignore = "regex porting: a Preg pattern starting with \"^array \" fails to compile in shirabe-php-shim preg.rs (\"unterminated regex pattern\"); unrelated to InputDefinition"] fn test_update() { for (label, composer_json, command, expected, create_lock) in provide_updates() { let _tear_down = init_temp_composer(Some(&composer_json), None, None, true); @@ -260,7 +260,7 @@ fn test_update() { #[test] #[serial] -#[ignore = "UpdateCommand::configure sets an empty InputDefinition (Phase-C: InputArgument/InputOption modeling pending), so the command rejects its own options, failing with e.g. \"The \\\"--dry-run\\\" option does not exist.\""] +#[ignore = "resolver does not emit the temporary-update-constraint conflict; it performs the upgrade instead of reporting \"conflicts with your temporary update constraint\""] fn test_update_with_patch_only() { let composer_json = serde_json::json!({ "repositories": { "packages": { "type": "package", "package": [ @@ -352,7 +352,7 @@ Lock file operations: 0 installs, 2 updates, 0 removals #[test] #[serial] -#[ignore = "UpdateCommand::configure sets an empty InputDefinition (Phase-C: InputArgument/InputOption modeling pending), so the command rejects its own options, failing with e.g. \"The \\\"--dry-run\\\" option does not exist.\""] +#[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 +383,7 @@ fn test_interactive_mode_throws_if_no_package_to_update() { #[test] #[serial] -#[ignore = "UpdateCommand::configure sets an empty InputDefinition (Phase-C: InputArgument/InputOption modeling pending), so the command rejects its own options, failing with e.g. \"The \\\"--dry-run\\\" option does not exist.\""] +#[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_entered() { let composer_json = serde_json::json!({ "repositories": { "packages": { "type": "package", "package": [ @@ -439,7 +439,7 @@ Package operations: 0 installs, 1 update, 0 removals #[test] #[serial] -#[ignore = "UpdateCommand::configure sets an empty InputDefinition (Phase-C: InputArgument/InputOption modeling pending), so the command rejects its own options, failing with e.g. \"The \\\"--dry-run\\\" option does not exist.\""] +#[ignore = "interactive selection path unported: --interactive requires a TTY and errors with \"--interactive cannot be used in non-interactive terminals.\""] fn test_interactive_tmp() { for (package_names, expected) in provide_interactive_updates() { let composer_json = serde_json::json!({ @@ -519,7 +519,6 @@ fn test_interactive_tmp() { #[test] #[serial] -#[ignore = "UpdateCommand::configure sets an empty InputDefinition (Phase-C: InputArgument/InputOption modeling pending), so the command rejects its own options, failing with e.g. \"The \\\"--dry-run\\\" option does not exist.\""] fn test_no_security_blocking_allows_insecure_packages() { let composer_json = serde_json::json!({ "repositories": { "packages": { @@ -601,7 +600,7 @@ fn test_no_security_blocking_allows_insecure_packages() { #[test] #[serial] -#[ignore = "UpdateCommand::configure sets an empty InputDefinition (Phase-C: InputArgument/InputOption modeling pending), so the command rejects its own options, failing with e.g. \"The \\\"--dry-run\\\" option does not exist.\""] +#[ignore = "solver error \"Fixed package __root__ 1.0.0+no-version-set was not added to solver pool.\" on the no-lockfile bump path (resolver pool construction)"] fn test_bump_after_update_without_lockfile() { let composer_json = serde_json::json!({ "repositories": { "packages": { "type": "package", "package": [ |
