Skip to content

Commit

Permalink
Add test verifying unfixing behavior of path repo packages
Browse files Browse the repository at this point in the history
  • Loading branch information
Seldaek committed Oct 28, 2021
1 parent 4660b4a commit 55aa41e
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "mirrored/path-pkg",
"version": "2.0.0",
"require": {
"mirrored/transitive": "2.*",
"mirrored/transitive2": "2.*"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
--TEST--
Partially updating one root requirement with transitive deps fully updates transitive deps, and always updates symlinked path repos, but not the transitive deps of the path repos.

--REQUEST--
{
"require": {
"root/update": "*",
"symlinked/path-pkg": "*",
"mirrored/path-pkg": "*"
},
"locked": [
{"name": "root/update", "version": "1.0.1", "require": {"symlinked/transitive2": ">=1.0.1", "mirrored/transitive2": ">=1.0.1"}},
{"name": "symlinked/transitive", "version": "1.0.0"},
{"name": "symlinked/transitive2", "version": "1.0.0"},
{"name": "mirrored/transitive", "version": "1.0.0"},
{"name": "mirrored/transitive2", "version": "1.0.0"},
{
"name": "symlinked/path-pkg",
"version": "1.0.0",
"require": {
"symlinked/transitive": "1.*",
"symlinked/transitive2": "1.*"
},
"dist": {"type": "path", "url": "./symlinked-path-repo", "reference": "abcd"}, "transport-options": {}
},
{
"name": "mirrored/path-pkg",
"version": "1.0.0",
"require": {
"mirrored/transitive": "1.*",
"mirrored/transitive2": "1.*"
},
"dist": {"type": "path", "url": "./mirrored-path-repo", "reference": "abcd"}, "transport-options": {"symlink": false}
}
],
"allowList": [
"root/update"
],
"allowTransitiveDeps": true
}

--FIXED--
[
]

--PACKAGE-REPOS--
[
{"type": "path", "url": "./symlinked-path-repo"},
{"type": "path", "url": "./mirrored-path-repo", "options": {"symlink": false}},
[
{"name": "root/update", "version": "1.0.4", "require": {"symlinked/transitive2": "*", "mirrored/transitive2": "*"}},
{"name": "symlinked/transitive", "version": "1.0.0"},
{"name": "symlinked/transitive", "version": "1.0.1"},
{"name": "symlinked/transitive", "version": "2.0.2"},
{"name": "symlinked/transitive2", "version": "1.0.0"},
{"name": "symlinked/transitive2", "version": "1.0.3"},
{"name": "symlinked/transitive2", "version": "2.0.4"},
{"name": "mirrored/transitive", "version": "1.0.0"},
{"name": "mirrored/transitive", "version": "1.0.5"},
{"name": "mirrored/transitive", "version": "2.0.6"},
{"name": "mirrored/transitive2", "version": "1.0.0"},
{"name": "mirrored/transitive2", "version": "1.0.7"},
{"name": "mirrored/transitive2", "version": "2.0.8"}
]
]

--EXPECT--
[
"symlinked/transitive-1.0.0.0 (locked)",
"mirrored/transitive-1.0.0.0 (locked)",
"mirrored/path-pkg-1.0.0.0 (locked)",
"symlinked/path-pkg-2.0.0.0",
"root/update-1.0.4.0",
"symlinked/transitive2-1.0.0.0",
"symlinked/transitive2-1.0.3.0",
"symlinked/transitive2-2.0.4.0",
"mirrored/transitive2-1.0.0.0",
"mirrored/transitive2-1.0.7.0",
"mirrored/transitive2-2.0.8.0"
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "symlinked/path-pkg",
"version": "2.0.0",
"require": {
"symlinked/transitive": "2.*",
"symlinked/transitive2": "2.*"
}
}
15 changes: 14 additions & 1 deletion tests/Composer/Test/DependencyResolver/PoolBuilderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

namespace Composer\Test\DependencyResolver;

use Composer\Config;
use Composer\IO\NullIO;
use Composer\Repository\ArrayRepository;
use Composer\Repository\FilterRepository;
Expand All @@ -22,6 +23,7 @@
use Composer\Json\JsonFile;
use Composer\Package\Loader\ArrayLoader;
use Composer\Package\Version\VersionParser;
use Composer\Repository\RepositoryFactory;
use Composer\Repository\RepositorySet;
use Composer\Test\TestCase;

Expand All @@ -46,7 +48,7 @@ public function testPoolBuilder($file, $message, $expect, $root, $requestData, $
$rootAliases[$index]['alias_normalized'] = $parser->normalize($alias['alias']);
}

$loader = new ArrayLoader();
$loader = new ArrayLoader(null, true);
$packageIds = array();
$loadPackage = function ($data) use ($loader, &$packageIds) {
if (!empty($data['id'])) {
Expand All @@ -66,8 +68,17 @@ public function testPoolBuilder($file, $message, $expect, $root, $requestData, $
return $pkg;
};

$oldCwd = getcwd();
chdir(__DIR__.'/Fixtures/poolbuilder/');

$repositorySet = new RepositorySet($minimumStability, $stabilityFlags, $rootAliases, $rootReferences);
foreach ($packageRepos as $packages) {
if (isset($packages['type'])) {
$repo = RepositoryFactory::createRepo(new NullIO, new Config(false), $packages);
$repositorySet->addRepository($repo);
continue;
}

$repo = new ArrayRepository();
if (isset($packages['canonical']) || isset($packages['only']) || isset($packages['exclude'])) {
$options = $packages;
Expand Down Expand Up @@ -113,6 +124,8 @@ public function testPoolBuilder($file, $message, $expect, $root, $requestData, $
$result[] = $pool->packageById($i);
}

chdir($oldCwd);

$result = array_map(function ($package) use ($packageIds) {
if ($id = array_search($package, $packageIds, true)) {
return $id;
Expand Down

0 comments on commit 55aa41e

Please sign in to comment.