2020-04-01 22:54:49 +00:00
--TEST--
Require a new package in the composer.json and updating with its name as an argument and with-dependencies should remove packages it replaces which are not root requirements
--COMPOSER--
{
"repositories": [
{
"type": "package",
"package": [
{ "name": "current/pkg", "version": "1.0.0", "require": { "mutual/target": "*", "mutual/target-provide": "*" } },
{ "name": "current/dep", "version": "1.0.0", "replace": { "mutual/target": "1.0.0" } },
{ "name": "new/pkg", "version": "1.0.0", "replace": { "mutual/target": "1.0.0" } },
{ "name": "current/dep-provide", "version": "1.0.0", "provide": { "mutual/target-provide": "1.0.0" } },
{ "name": "new/pkg-provide", "version": "1.0.0", "provide": { "mutual/target-provide": "1.0.0" } }
]
}
],
"require": {
"current/pkg": "1.*",
"new/pkg": "1.*",
"new/pkg-provide": "1.*"
}
}
--INSTALLED--
[
{ "name": "current/pkg", "version": "1.0.0", "require": { "mutual/target": "*" } },
{ "name": "current/dep", "version": "1.0.0", "replace": { "mutual/target": "1.0.0" } },
{ "name": "current/dep-provide", "version": "1.0.0", "provide": { "mutual/target-provide": "1.0.0" } }
]
--LOCK--
{
"packages": [
{ "name": "current/pkg", "version": "1.0.0", "require": { "mutual/target": "*" } },
{ "name": "current/dep", "version": "1.0.0", "replace": { "mutual/target": "1.0.0" } },
{ "name": "current/dep-provide", "version": "1.0.0", "provide": { "mutual/target-provide": "1.0.0" } }
],
"packages-dev": [],
"aliases": [],
"minimum-stability": "dev",
2024-09-18 14:32:40 +00:00
"stability-flags": {},
2020-04-01 22:54:49 +00:00
"prefer-stable": false,
"prefer-lowest": false,
2024-09-18 14:32:40 +00:00
"platform": {},
"platform-dev": {}
2020-04-01 22:54:49 +00:00
}
--RUN--
update new/pkg --with-dependencies
--EXPECT--
2020-09-23 14:52:30 +00:00
Removing current/dep-provide (1.0.0)
2020-04-01 22:54:49 +00:00
Removing current/dep (1.0.0)
Installing new/pkg (1.0.0)
Installing new/pkg-provide (1.0.0)