aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/command/remove_command_test.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-28 23:10:43 +0900
committernsfisis <nsfisis@gmail.com>2026-06-28 23:10:43 +0900
commit1a85368838c1e482f2a7020ff1cbdc87fcb092cc (patch)
tree6c89ebc81f401abc1af8116eebb10905697d6649 /crates/shirabe/tests/command/remove_command_test.rs
parent1e72ee3ddaf581753e30b39dfc33b48d44a25ef7 (diff)
downloadphp-shirabe-1a85368838c1e482f2a7020ff1cbdc87fcb092cc.tar.gz
php-shirabe-1a85368838c1e482f2a7020ff1cbdc87fcb092cc.tar.zst
php-shirabe-1a85368838c1e482f2a7020ff1cbdc87fcb092cc.zip
fix(installer): execute install/update/uninstall ops in execute_batch
execute_batch only awaited prepare(), leaving the install/update/ uninstall + cleanup + repo.write promise chain as a todo!() stub, so packages were downloaded to cache but never installed into the target directory. Wire the operation step (mirroring PHP's promise chain), propagate errors from the install/update/uninstall wrappers instead of swallowing them with .ok()?, and write the repo after each op. Un-ignore the create-project functional tests and the install/remove command tests this unblocks. The remaining --no-install case still fails on a separate install-path bug; its ignore reason is updated to match.
Diffstat (limited to 'crates/shirabe/tests/command/remove_command_test.rs')
-rw-r--r--crates/shirabe/tests/command/remove_command_test.rs5
1 files changed, 1 insertions, 4 deletions
diff --git a/crates/shirabe/tests/command/remove_command_test.rs b/crates/shirabe/tests/command/remove_command_test.rs
index 8d76b64..436e787 100644
--- a/crates/shirabe/tests/command/remove_command_test.rs
+++ b/crates/shirabe/tests/command/remove_command_test.rs
@@ -321,7 +321,6 @@ fn test_remove_unused_package() {
drop(tear_down);
}
-#[ignore = "InstallationManager::execute_batch only awaits prepare(); the install/update/uninstall + cleanup + repo.write promise chain is still a todo!() stub, so package operations do not actually execute"]
#[test]
#[serial]
fn test_remove_package_by_name() {
@@ -492,7 +491,6 @@ fn test_remove_package_by_name_with_dry_run() {
drop(tear_down);
}
-#[ignore = "InstallationManager::execute_batch only awaits prepare(); the install/update/uninstall + cleanup + repo.write promise chain is still a todo!() stub, so package operations do not actually execute"]
#[test]
#[serial]
fn test_remove_allowed_plugin_package_with_no_other_allowed_plugins() {
@@ -805,7 +803,7 @@ fn test_warning_when_removing_packages_by_vendor_from_wrong_type() {
drop(tear_down);
}
-#[ignore = "InstallationManager::execute_batch only awaits prepare(); the install/update/uninstall + cleanup + repo.write promise chain is still a todo!() stub, so package operations do not actually execute"]
+#[ignore = "installed.json records install-path: null instead of the expected \"../root/req\": the InstallationManager that writes the local repo in the --no-install (update && !install) flow has no installers registered (n_installers=0), so get_install_path()->get_installer() fails and yields null. Separate from the execute_batch fix; needs the default installers wired onto that manager."]
#[test]
#[serial]
fn test_package_still_present_error_when_no_install_flag_used() {
@@ -962,7 +960,6 @@ fn run_update_inherited_dependencies_flag_case(
drop(tear_down);
}
-#[ignore = "InstallationManager::execute_batch only awaits prepare(); the install/update/uninstall + cleanup + repo.write promise chain is still a todo!() stub, so package operations do not actually execute"]
#[test]
#[serial]
fn test_update_inherited_dependencies_flag_is_passed_to_post_remove_installer() {