From e0a0d0ae459869d3caa39afa267b612c7eef42ed Mon Sep 17 00:00:00 2001
From: Ted Bowman <41201-tedbow@users.noreply.drupalcode.org>
Date: Thu, 23 Feb 2023 23:25:23 +0000
Subject: [PATCH] Issue #3344124 by tedbow: Validate fake_site with composer

---
 .../tests/fixtures/fake_site/composer.json    |  2 ++
 .../tests/fixtures/fake_site/composer.lock    | 11 +++++---
 .../fake_site/vendor/composer/installed.json  |  9 ++++---
 .../fake_site/vendor/composer/installed.php   | 26 +++++++++----------
 .../vendor/drupal/core-dev/composer.json      |  2 +-
 .../drupal/core-recommended/composer.json     |  2 +-
 .../vendor/drupal/core/composer.json          |  1 +
 .../cweagans--composer-patches/composer.json  |  1 +
 .../path_repos/drupal--core-dev/composer.json |  2 +-
 .../drupal--core-recommended/composer.json    |  2 +-
 .../path_repos/drupal--core/composer.json     |  1 +
 .../tests/src/Kernel/FakeSiteFixtureTest.php  | 17 ++++++++++++
 12 files changed, 52 insertions(+), 24 deletions(-)

diff --git a/package_manager/tests/fixtures/fake_site/composer.json b/package_manager/tests/fixtures/fake_site/composer.json
index 0d3c051120..7778f21313 100644
--- a/package_manager/tests/fixtures/fake_site/composer.json
+++ b/package_manager/tests/fixtures/fake_site/composer.json
@@ -1,4 +1,6 @@
 {
+  "name": "fake/site",
+  "description": "bull shit",
   "version": "1.2.4",
   "require": {
     "drupal/core-recommended": "9.8.0",
diff --git a/package_manager/tests/fixtures/fake_site/composer.lock b/package_manager/tests/fixtures/fake_site/composer.lock
index 4231173f20..799fe62960 100644
--- a/package_manager/tests/fixtures/fake_site/composer.lock
+++ b/package_manager/tests/fixtures/fake_site/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "93c56705fbb05f1b7438c7b811d1d951",
+    "content-hash": "681e4c106deb0665ca393b0fc797b685",
     "packages": [
         {
             "name": "drupal/core",
@@ -12,7 +12,7 @@
             "dist": {
                 "type": "path",
                 "url": "../path_repos/drupal--core",
-                "reference": "ab929a52b18b5423cc35d14db5cb035c2d2a679c"
+                "reference": "31fd2270701526555acae45a3601c777e35508d5"
             },
             "type": "drupal-core",
             "extra": {
@@ -50,6 +50,7 @@
                     }
                 }
             },
+            "description": "A fake version of drupal/core",
             "transport-options": {
                 "symlink": false,
                 "relative": true
@@ -61,9 +62,10 @@
             "dist": {
                 "type": "path",
                 "url": "../path_repos/drupal--core-recommended",
-                "reference": "c9babad9851edc2b7b4b43c778bc30db09f14946"
+                "reference": "112e4f7cfe8312457cd0eb58dcbffebc148850d8"
             },
             "type": "project",
+            "description": "A fake version of drupal/core-recommended",
             "transport-options": {
                 "symlink": false,
                 "relative": true
@@ -77,9 +79,10 @@
             "dist": {
                 "type": "path",
                 "url": "../path_repos/drupal--core-dev",
-                "reference": "6a8d7df3a5650a5d3bce6e478114064b176f7104"
+                "reference": "b99a99a11ff2779b5e4c5787dc43575382a3548c"
             },
             "type": "package",
+            "description": "A fake version of drupal/core-dev",
             "transport-options": {
                 "symlink": false,
                 "relative": true
diff --git a/package_manager/tests/fixtures/fake_site/vendor/composer/installed.json b/package_manager/tests/fixtures/fake_site/vendor/composer/installed.json
index 5cb35ea555..f4b54bb81a 100644
--- a/package_manager/tests/fixtures/fake_site/vendor/composer/installed.json
+++ b/package_manager/tests/fixtures/fake_site/vendor/composer/installed.json
@@ -7,7 +7,7 @@
             "dist": {
                 "type": "path",
                 "url": "../path_repos/drupal--core",
-                "reference": "ab929a52b18b5423cc35d14db5cb035c2d2a679c"
+                "reference": "31fd2270701526555acae45a3601c777e35508d5"
             },
             "type": "drupal-core",
             "extra": {
@@ -46,6 +46,7 @@
                 }
             },
             "installation-source": "dist",
+            "description": "A fake version of drupal/core",
             "transport-options": {
                 "symlink": false,
                 "relative": true
@@ -59,10 +60,11 @@
             "dist": {
                 "type": "path",
                 "url": "../path_repos/drupal--core-dev",
-                "reference": "6a8d7df3a5650a5d3bce6e478114064b176f7104"
+                "reference": "b99a99a11ff2779b5e4c5787dc43575382a3548c"
             },
             "type": "package",
             "installation-source": "dist",
+            "description": "A fake version of drupal/core-dev",
             "transport-options": {
                 "symlink": false,
                 "relative": true
@@ -76,10 +78,11 @@
             "dist": {
                 "type": "path",
                 "url": "../path_repos/drupal--core-recommended",
-                "reference": "c9babad9851edc2b7b4b43c778bc30db09f14946"
+                "reference": "112e4f7cfe8312457cd0eb58dcbffebc148850d8"
             },
             "type": "project",
             "installation-source": "dist",
+            "description": "A fake version of drupal/core-recommended",
             "transport-options": {
                 "symlink": false,
                 "relative": true
diff --git a/package_manager/tests/fixtures/fake_site/vendor/composer/installed.php b/package_manager/tests/fixtures/fake_site/vendor/composer/installed.php
index bbd28d592f..652db9ee38 100644
--- a/package_manager/tests/fixtures/fake_site/vendor/composer/installed.php
+++ b/package_manager/tests/fixtures/fake_site/vendor/composer/installed.php
@@ -6,7 +6,7 @@
 
 return [
   'root' => [
-    'name' => '__root__',
+    'name' => 'fake/site',
     'pretty_version' => '1.2.4',
     'version' => '1.2.4.0',
     'reference' => NULL,
@@ -16,19 +16,10 @@ return [
     'dev' => TRUE,
   ],
   'versions' => [
-    '__root__' => [
-      'pretty_version' => '1.2.4',
-      'version' => '1.2.4.0',
-      'reference' => NULL,
-      'type' => 'library',
-      'install_path' => __DIR__ . '/../../',
-      'aliases' => [],
-      'dev_requirement' => FALSE,
-    ],
     'drupal/core' => [
       'pretty_version' => '9.8.0',
       'version' => '9.8.0.0',
-      'reference' => 'ab929a52b18b5423cc35d14db5cb035c2d2a679c',
+      'reference' => '31fd2270701526555acae45a3601c777e35508d5',
       'type' => 'drupal-core',
       'install_path' => __DIR__ . '/../drupal/core',
       'aliases' => [],
@@ -37,7 +28,7 @@ return [
     'drupal/core-dev' => [
       'pretty_version' => '9.8.0',
       'version' => '9.8.0.0',
-      'reference' => '6a8d7df3a5650a5d3bce6e478114064b176f7104',
+      'reference' => 'b99a99a11ff2779b5e4c5787dc43575382a3548c',
       'type' => 'package',
       'install_path' => __DIR__ . '/../drupal/core-dev',
       'aliases' => [],
@@ -46,11 +37,20 @@ return [
     'drupal/core-recommended' => [
       'pretty_version' => '9.8.0',
       'version' => '9.8.0.0',
-      'reference' => 'c9babad9851edc2b7b4b43c778bc30db09f14946',
+      'reference' => '112e4f7cfe8312457cd0eb58dcbffebc148850d8',
       'type' => 'project',
       'install_path' => __DIR__ . '/../drupal/core-recommended',
       'aliases' => [],
       'dev_requirement' => FALSE,
     ],
+    'fake/site' => [
+      'pretty_version' => '1.2.4',
+      'version' => '1.2.4.0',
+      'reference' => NULL,
+      'type' => 'library',
+      'install_path' => __DIR__ . '/../../',
+      'aliases' => [],
+      'dev_requirement' => FALSE,
+    ],
   ],
 ];
diff --git a/package_manager/tests/fixtures/fake_site/vendor/drupal/core-dev/composer.json b/package_manager/tests/fixtures/fake_site/vendor/drupal/core-dev/composer.json
index e7cb4fc29d..0cbfd9f7b5 100644
--- a/package_manager/tests/fixtures/fake_site/vendor/drupal/core-dev/composer.json
+++ b/package_manager/tests/fixtures/fake_site/vendor/drupal/core-dev/composer.json
@@ -1 +1 @@
-{"name":"drupal\/core-dev","type":"package","version":"9.8.0"}
\ No newline at end of file
+{"name":"drupal\/core-dev","description": "A fake version of drupal/core-dev","type":"package","version":"9.8.0"}
diff --git a/package_manager/tests/fixtures/fake_site/vendor/drupal/core-recommended/composer.json b/package_manager/tests/fixtures/fake_site/vendor/drupal/core-recommended/composer.json
index 0117405708..ca65289753 100644
--- a/package_manager/tests/fixtures/fake_site/vendor/drupal/core-recommended/composer.json
+++ b/package_manager/tests/fixtures/fake_site/vendor/drupal/core-recommended/composer.json
@@ -1 +1 @@
-{"name":"drupal/core-recommended","type":"project","version":"9.8.0"}
+{"name":"drupal/core-recommended","description": "A fake version of drupal/core-recommended","type":"project","version":"9.8.0"}
diff --git a/package_manager/tests/fixtures/fake_site/vendor/drupal/core/composer.json b/package_manager/tests/fixtures/fake_site/vendor/drupal/core/composer.json
index a511bc274f..7a954c6455 100644
--- a/package_manager/tests/fixtures/fake_site/vendor/drupal/core/composer.json
+++ b/package_manager/tests/fixtures/fake_site/vendor/drupal/core/composer.json
@@ -1,6 +1,7 @@
 {
     "name": "drupal/core",
     "type": "drupal-core",
+    "description": "A fake version of drupal/core",
     "version": "9.8.0",
     "extra": {
         "_readme": [
diff --git a/package_manager/tests/fixtures/path_repos/cweagans--composer-patches/composer.json b/package_manager/tests/fixtures/path_repos/cweagans--composer-patches/composer.json
index 7998692958..d603b2f23d 100644
--- a/package_manager/tests/fixtures/path_repos/cweagans--composer-patches/composer.json
+++ b/package_manager/tests/fixtures/path_repos/cweagans--composer-patches/composer.json
@@ -1,5 +1,6 @@
 {
     "name": "cweagans/composer-patches",
+    "description": "A fake version of cweagans/composer-patches",
     "type": "composer-plugin",
     "extra": {
         "class": "\\cweagans\\Fake\\ComposerPatches"
diff --git a/package_manager/tests/fixtures/path_repos/drupal--core-dev/composer.json b/package_manager/tests/fixtures/path_repos/drupal--core-dev/composer.json
index e7cb4fc29d..0cbfd9f7b5 100644
--- a/package_manager/tests/fixtures/path_repos/drupal--core-dev/composer.json
+++ b/package_manager/tests/fixtures/path_repos/drupal--core-dev/composer.json
@@ -1 +1 @@
-{"name":"drupal\/core-dev","type":"package","version":"9.8.0"}
\ No newline at end of file
+{"name":"drupal\/core-dev","description": "A fake version of drupal/core-dev","type":"package","version":"9.8.0"}
diff --git a/package_manager/tests/fixtures/path_repos/drupal--core-recommended/composer.json b/package_manager/tests/fixtures/path_repos/drupal--core-recommended/composer.json
index 0117405708..ca65289753 100644
--- a/package_manager/tests/fixtures/path_repos/drupal--core-recommended/composer.json
+++ b/package_manager/tests/fixtures/path_repos/drupal--core-recommended/composer.json
@@ -1 +1 @@
-{"name":"drupal/core-recommended","type":"project","version":"9.8.0"}
+{"name":"drupal/core-recommended","description": "A fake version of drupal/core-recommended","type":"project","version":"9.8.0"}
diff --git a/package_manager/tests/fixtures/path_repos/drupal--core/composer.json b/package_manager/tests/fixtures/path_repos/drupal--core/composer.json
index a511bc274f..7a954c6455 100644
--- a/package_manager/tests/fixtures/path_repos/drupal--core/composer.json
+++ b/package_manager/tests/fixtures/path_repos/drupal--core/composer.json
@@ -1,6 +1,7 @@
 {
     "name": "drupal/core",
     "type": "drupal-core",
+    "description": "A fake version of drupal/core",
     "version": "9.8.0",
     "extra": {
         "_readme": [
diff --git a/package_manager/tests/src/Kernel/FakeSiteFixtureTest.php b/package_manager/tests/src/Kernel/FakeSiteFixtureTest.php
index a986c9f47d..91744594d4 100644
--- a/package_manager/tests/src/Kernel/FakeSiteFixtureTest.php
+++ b/package_manager/tests/src/Kernel/FakeSiteFixtureTest.php
@@ -129,4 +129,21 @@ class FakeSiteFixtureTest extends PackageManagerKernelTestBase {
     $this->assertSame(['drupal/core', 'drupal/core-dev', 'drupal/core-recommended'], $package_names);
   }
 
+  /**
+   * Tests that the fixture passes `composer validate`.
+   */
+  public function testComposerValidate(): void {
+    $active_dir = $this->container->get('package_manager.path_locator')->getProjectRoot();
+    $process = new Process([
+      'composer',
+      'validate',
+      '--check-lock',
+      '--with-dependencies',
+      '--no-interaction',
+      '--ansi',
+      '--no-cache',
+    ], $active_dir);
+    $process->mustRun();
+  }
+
 }
-- 
GitLab