diff --git a/php-packages/testing/src/integration/Extend/OverrideExtensionManagerForTests.php b/php-packages/testing/src/integration/Extend/OverrideExtensionManagerForTests.php index 49bc5ac86..8d66e7319 100644 --- a/php-packages/testing/src/integration/Extend/OverrideExtensionManagerForTests.php +++ b/php-packages/testing/src/integration/Extend/OverrideExtensionManagerForTests.php @@ -31,6 +31,8 @@ class OverrideExtensionManagerForTests implements ExtenderInterface $extensionManager->enable($extension); } + $extensionManager->booted = true; + $extensionManager->extend($container); } } diff --git a/php-packages/testing/src/integration/Extension/ExtensionManagerIncludeCurrent.php b/php-packages/testing/src/integration/Extension/ExtensionManagerIncludeCurrent.php index 8031d20f9..1a3dbc8f0 100644 --- a/php-packages/testing/src/integration/Extension/ExtensionManagerIncludeCurrent.php +++ b/php-packages/testing/src/integration/Extension/ExtensionManagerIncludeCurrent.php @@ -30,6 +30,11 @@ class ExtensionManagerIncludeCurrent extends ExtensionManager */ protected $enabledIds; + /** + * @var bool + */ + public $booted = false; + public function __construct( SettingsRepositoryInterface $config, Paths $paths, @@ -70,11 +75,15 @@ class ExtensionManagerIncludeCurrent extends ExtensionManager } /** - * Since we enable every time, we always assume it's not enabled. + * We assume it's not enabled during boot. + * However, since some logic needs this, as soon as we enable extensions + * we'll switch booted to on. */ public function isEnabled($extension) { - return false; + if (!$this->booted) return false; + + return parent::isEnabled($extension); } /** diff --git a/php-packages/testing/tests/tests/integration/TestCaseTest.php b/php-packages/testing/tests/tests/integration/TestCaseTest.php index af7f6252b..2b7c3814e 100644 --- a/php-packages/testing/tests/tests/integration/TestCaseTest.php +++ b/php-packages/testing/tests/tests/integration/TestCaseTest.php @@ -125,6 +125,17 @@ class TestCaseTest extends TestCase $this->assertTrue($tableExists); } + /** + * @test + */ + public function current_extension_considered_enabled_after_boot() + { + $this->extension('flarum-testing-tests'); + + $enabled = $this->app()->getContainer()->make('flarum.extensions')->isEnabled('flarum-testing-tests'); + $this->assertTrue($enabled); + } + /** * @test */