aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/command/install_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/install_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/install_command_test.rs')
-rw-r--r--crates/shirabe/tests/command/install_command_test.rs3
1 files changed, 0 insertions, 3 deletions
diff --git a/crates/shirabe/tests/command/install_command_test.rs b/crates/shirabe/tests/command/install_command_test.rs
index 0fababa..55ea996 100644
--- a/crates/shirabe/tests/command/install_command_test.rs
+++ b/crates/shirabe/tests/command/install_command_test.rs
@@ -87,7 +87,6 @@ fn test_install_command_errors() {
#[test]
#[serial]
-#[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"]
fn test_install_from_empty_vendor() {
let composer_json = serde_json::json!({
"require": { "root/req": "1.*" },
@@ -128,7 +127,6 @@ Generating autoload files",
#[test]
#[serial]
-#[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"]
fn test_install_from_empty_vendor_no_dev() {
let composer_json = serde_json::json!({
"require": { "root/req": "1.*" },
@@ -169,7 +167,6 @@ Generating autoload files",
#[test]
#[serial]
-#[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"]
fn test_install_new_packages_with_existing_partial_vendor() {
let composer_json = serde_json::json!({
"require": {