aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-27 20:45:59 +0900
committernsfisis <nsfisis@gmail.com>2026-06-27 20:45:59 +0900
commit9759168c0c9b8120980b06734c0c029712bc7861 (patch)
treebcf02b0822b0be94075a860d7e1066d7652e878e /crates/shirabe/tests
parent40bb49fc0b80d5ff97875903b2c2e55ff394cecc (diff)
downloadphp-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.rs13
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": [