Skip to content
Snippets Groups Projects
Commit 3d3eff78 authored by Yash Rode's avatar Yash Rode Committed by Ted Bowman
Browse files

Issue #3322203 by yash.rode, tedbow, Wim Leers: Make sure packages in our...

Issue #3322203 by yash.rode, tedbow, Wim Leers: Make sure packages in our fake-site fixture match in both installed.json and installed.php
parent 25a42d53
No related branches found
No related tags found
1 merge request!596Issue #3322203: Make sure packages in our fake-site fixture match in both installed.json and installed.php
...@@ -9,6 +9,17 @@ return [ ...@@ -9,6 +9,17 @@ return [
'versions' => [ 'versions' => [
'drupal/core' => [ 'drupal/core' => [
'name' => 'drupal/core', 'name' => 'drupal/core',
'version' => '9.8.0',
'type' => 'drupal-core',
],
'drupal/core-recommended' => [
'name' => 'drupal/core-recommended',
'version' => '9.8.0',
'type' => 'drupal-core',
],
'drupal/core-dev' => [
'name' => 'drupal/core-dev',
'version' => '9.8.0',
'type' => 'drupal-core', 'type' => 'drupal-core',
], ],
], ],
......
...@@ -37,4 +37,81 @@ class FakeSiteFixtureTest extends PackageManagerKernelTestBase { ...@@ -37,4 +37,81 @@ class FakeSiteFixtureTest extends PackageManagerKernelTestBase {
$this->assertNull($composer_utility->getPackageForProject('drupal/any_random_name')); $this->assertNull($composer_utility->getPackageForProject('drupal/any_random_name'));
} }
/**
* Tests if `modifyPackage` can be called on all packages in the fixture.
*
* @see \Drupal\Tests\package_manager\Traits\FixtureUtilityTrait::modifyPackage()
*/
public function testCallToModifyPackage(): void {
$project_root = $this->container->get('package_manager.path_locator')->getProjectRoot();
$stage = $this->createStage();
$installed_packages = $stage->getActiveComposer()->getInstalledPackages();
foreach (self::getExpectedFakeSitePackages() as $package_name) {
$this->assertArrayHasKey($package_name, $installed_packages);
$this->assertSame('9.8.0', $installed_packages[$package_name]->getPrettyVersion());
$this->modifyPackage(
$project_root,
$package_name,
['version' => '11.1.0']
);
}
}
/**
* Tests if `removePackage` can be called on all packages in the fixture.
*
* @covers \Drupal\Tests\package_manager\Traits\FixtureUtilityTrait::removePackage()
*/
public function testCallToRemovePackage(): void {
$expected_packages = self::getExpectedFakeSitePackages();
$project_root = $this->container->get('package_manager.path_locator')->getProjectRoot();
$stage = $this->createStage();
$actual_packages = array_keys($stage->getActiveComposer()->getInstalledPackages());
sort($actual_packages);
$this->assertSame($expected_packages, $actual_packages);
foreach (self::getExpectedFakeSitePackages() as $package_name) {
$this->removePackage(
$project_root,
$package_name,
);
}
}
/**
* Check which packages are installed in each file.
*/
public function testExpectedPackages(): void {
$expected_packages = $this->getExpectedFakeSitePackages();
$active_dir = $this->container->get('package_manager.path_locator')->getProjectRoot();
$stage = $this->createStage();
$original_installed_php = $stage->getActiveComposer()->getInstalledPackages();
$installed_php_packages = array_keys($original_installed_php);
sort($installed_php_packages);
$installed_json = json_decode(file_get_contents($active_dir . '/vendor/composer/installed.json'), TRUE, 512, JSON_THROW_ON_ERROR);
$installed_json_packages = [];
foreach ($installed_json['packages'] as $package) {
$installed_json_packages[] = $package['name'];
}
sort($installed_json_packages);
$this->assertSame($expected_packages, $installed_json_packages);
// Assert same packages are present in both installed.json and installed.php.
$this->assertSame($installed_json_packages, $installed_php_packages);
}
/**
* Gets the expected packages in the `fake_site` fixture.
*
* @return string[]
* The package names.
*/
private static function getExpectedFakeSitePackages(): array {
$packages = [
'drupal/core',
'drupal/core-recommended',
'drupal/core-dev',
];
sort($packages);
return $packages;
}
} }
...@@ -117,6 +117,17 @@ class FixtureUtilityTraitTest extends PackageManagerKernelTestBase { ...@@ -117,6 +117,17 @@ class FixtureUtilityTraitTest extends PackageManagerKernelTestBase {
$installed_php_expected_packages = [ $installed_php_expected_packages = [
'drupal/core' => [ 'drupal/core' => [
'name' => 'drupal/core', 'name' => 'drupal/core',
'version' => '9.8.0',
'type' => 'drupal-core',
],
'drupal/core-recommended' => [
'name' => 'drupal/core-recommended',
'version' => '9.8.0',
'type' => 'drupal-core',
],
'drupal/core-dev' => [
'name' => 'drupal/core-dev',
'version' => '9.8.0',
'type' => 'drupal-core', 'type' => 'drupal-core',
], ],
] + $installed_php_expected_packages; ] + $installed_php_expected_packages;
...@@ -209,6 +220,17 @@ class FixtureUtilityTraitTest extends PackageManagerKernelTestBase { ...@@ -209,6 +220,17 @@ class FixtureUtilityTraitTest extends PackageManagerKernelTestBase {
$installed_php_expected_packages = [ $installed_php_expected_packages = [
'drupal/core' => [ 'drupal/core' => [
'name' => 'drupal/core', 'name' => 'drupal/core',
'version' => '9.8.0',
'type' => 'drupal-core',
],
'drupal/core-recommended' => [
'name' => 'drupal/core-recommended',
'version' => '9.8.0',
'type' => 'drupal-core',
],
'drupal/core-dev' => [
'name' => 'drupal/core-dev',
'version' => '9.8.0',
'type' => 'drupal-core', 'type' => 'drupal-core',
], ],
] + $installed_php_expected_packages; ] + $installed_php_expected_packages;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment