aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/tests
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-03 21:54:59 +0900
committernsfisis <nsfisis@gmail.com>2026-05-03 21:54:59 +0900
commit64f8bb0c1aa16d78c5edc3f3de5dd3ff6e5861de (patch)
tree17c9c6c3d7a236876be120fda939b65f37d061a1 /crates/mozart/tests
parent177b894d7d77a5297bee3b2487ef18a0cae7a596 (diff)
downloadphp-mozart-64f8bb0c1aa16d78c5edc3f3de5dd3ff6e5861de.tar.gz
php-mozart-64f8bb0c1aa16d78c5edc3f3de5dd3ff6e5861de.tar.zst
php-mozart-64f8bb0c1aa16d78c5edc3f3de5dd3ff6e5861de.zip
fix(install): reject lock when locked packages conflict with each other
Composer's `install` runs a SAT verify over the locked repository so a declared `conflict` between two locked packages (including via a branch-alias or the lock's top-level `aliases` block) fails fast with exit-code 2 and "Your lock file does not contain a compatible set of packages." Mozart skipped that step and proceeded to install both packages. Add a targeted check that walks each locked package's `conflict` map against every name a locked package effectively advertises (own version, `extra.branch-alias` target, lock-level `aliases` entry, `replace` constraint) and bails with the same exit code when a match is found.
Diffstat (limited to 'crates/mozart/tests')
-rw-r--r--crates/mozart/tests/installer.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/crates/mozart/tests/installer.rs b/crates/mozart/tests/installer.rs
index 6e1862c..efd0aa2 100644
--- a/crates/mozart/tests/installer.rs
+++ b/crates/mozart/tests/installer.rs
@@ -239,7 +239,7 @@ installer_fixture!(conflict_between_root_and_dependent);
installer_fixture!(conflict_downgrade);
installer_fixture!(conflict_downgrade_nested);
installer_fixture!(conflict_on_root_with_alias_prevents_update_if_not_required);
-installer_fixture!(conflict_with_alias_in_lock_does_prevents_install, ignore);
+installer_fixture!(conflict_with_alias_in_lock_does_prevents_install);
installer_fixture!(conflict_with_alias_prevents_update);
installer_fixture!(conflict_with_alias_prevents_update_if_not_required);
installer_fixture!(conflict_with_all_dependencies_option_dont_recommend_to_use_it);