From 01686ad6c6ae4cc2df61e6e1e4f9636c91d3731f Mon Sep 17 00:00:00 2001
From: Kevin Traini <kevin@ktraini.com>
Date: Tue, 28 May 2024 18:33:37 +0200
Subject: [PATCH] fix: Root package is not loaded if it's not a brick

Closes #29
---
 include/Bricks/LoadBricks.php        |  3 ++-
 tests/unit/Bricks/LoadBricksTest.php | 14 ++++++++------
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/include/Bricks/LoadBricks.php b/include/Bricks/LoadBricks.php
index 24a556f..53ce72f 100644
--- a/include/Bricks/LoadBricks.php
+++ b/include/Bricks/LoadBricks.php
@@ -41,7 +41,8 @@
 {
     public function loadInstalledBricks(): array
     {
-        $packages = array_unique(InstalledVersions::getInstalledPackagesByType(self::PACKAGE_TYPE));
+        $root     = InstalledVersions::getRootPackage()['name'];
+        $packages = array_unique([$root, ...InstalledVersions::getInstalledPackagesByType(self::PACKAGE_TYPE)]);
 
         $result = [];
         foreach ($packages as $package_name) {
diff --git a/tests/unit/Bricks/LoadBricksTest.php b/tests/unit/Bricks/LoadBricksTest.php
index b532f2e..1474702 100644
--- a/tests/unit/Bricks/LoadBricksTest.php
+++ b/tests/unit/Bricks/LoadBricksTest.php
@@ -75,12 +75,14 @@ public function testItLoadBrick(): void
         $loader = new LoadBricks();
         $bricks = $loader->loadInstalledBricks();
 
-        self::assertCount(1, $bricks);
-        $brick = $bricks[0];
-        self::assertSame('brick1', $brick->package_name);
-        self::assertSame(__DIR__ . '/../Fixtures/brick1', $brick->package_path);
-        self::assertCount(1, $brick->services);
-        $service = $brick->services[0];
+        self::assertCount(2, $bricks);
+        $brick1 = $bricks[0];
+        self::assertSame('archict/core', $brick1->package_name); // Current package
+        $brick2 = $bricks[1];
+        self::assertSame('brick1', $brick2->package_name);
+        self::assertSame(__DIR__ . '/../Fixtures/brick1', $brick2->package_path);
+        self::assertCount(1, $brick2->services);
+        $service = $brick2->services[0];
         self::assertSame(Service1::class, $service->reflection->name);
         self::assertSame('bar.yml', $service->service_attribute->configuration_filename);
         self::assertSame(Service1Configuration::class, $service->service_attribute->configuration_classname);