Skip to content

[5.x]: Craft 5.9.17 broke codeception tests with disabled sites #18638

@jeffreyzant

Description

@jeffreyzant

What happened?

Description

After a change in 5.9.17 the codeception tests fail when the installation contains disabled sites.

        if ($withDisabled === null) {
            $request = Craft::$app->getRequest();
            $withDisabled = (
                $request->getIsConsoleRequest() ||
                ($request->getIsCpRequest() && !Craft::$app->getUser()->getIsGuest())
            );
        }
        if ($withDisabled === null) {
            $request = Craft::$app->getRequest();
            $withDisabled = !$request->getIsSiteRequest() || $request->getIsActionRequest();
        }

It is probably happening due to the $request->getIsConsoleRequest() being removed. I suppose there should be a extra addition/condition for when tests are running if this behaviour stays unchanged.

In Sites.php line 872:
                                                                                                         
  [Codeception\Exception\Warning (2)]                                                                    
  Attempt to read property "id" on null at /var/www/html/vendor/craftcms/cms/src/services/Sites.php:872  
                                                                                                         

Exception trace:
  at /var/www/html/vendor/craftcms/cms/src/services/Sites.php:872
 Codeception\Subscriber\ErrorHandler->errorHandler() at /var/www/html/vendor/craftcms/cms/src/services/Sites.php:872
 craft\services\Sites->handleChangedSite() at /var/www/html/vendor/craftcms/cms/src/base/ApplicationTrait.php:1829
 craft\web\Application->craft\base\{closure}() at /var/www/html/vendor/craftcms/cms/src/services/ProjectConfig.php:1183
 craft\services\ProjectConfig->handleChangeEvent() at n/a:n/a
 call_user_func() at /var/www/html/vendor/yiisoft/yii2/base/Component.php:653
 yii\base\Component->trigger() at /var/www/html/vendor/craftcms/cms/src/models/ProjectConfigData.php:82
 craft\models\ProjectConfigData->commitChanges() at /var/www/html/vendor/craftcms/cms/src/services/ProjectConfig.php:748
 craft\services\ProjectConfig->processConfigChanges() at /var/www/html/vendor/craftcms/cms/src/helpers/ProjectConfig.php:158
 craft\helpers\ProjectConfig::ensureAllSitesProcessed() at /var/www/html/vendor/craftcms/cms/src/migrations/Install.php:1164
 craft\migrations\Install->insertDefaultData() at /var/www/html/vendor/craftcms/cms/src/migrations/Install.php:94
 craft\migrations\Install->afterUp() at /var/www/html/vendor/craftcms/cms/src/db/Migration.php:66
 craft\db\Migration->up() at /var/www/html/vendor/craftcms/cms/src/test/TestSetup.php:492
 craft\test\TestSetup::setupCraftDb() at /var/www/html/vendor/craftcms/cms/src/test/Craft.php:256
 craft\test\Craft->setupDb() at /var/www/html/vendor/craftcms/cms/src/test/Craft.php:137
 craft\test\Craft->_beforeSuite() at /var/www/html/vendor/codeception/codeception/src/Codeception/Subscriber/Module.php:52
 Codeception\Subscriber\Module->beforeSuite() at /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php:206
 Symfony\Component\EventDispatcher\EventDispatcher->callListeners() at /var/www/html/vendor/symfony/event-dispatcher/EventDispatcher.php:56
 Symfony\Component\EventDispatcher\EventDispatcher->dispatch() at /var/www/html/vendor/codeception/codeception/src/Codeception/SuiteManager.php:219
 Codeception\SuiteManager->dispatch() at /var/www/html/vendor/codeception/codeception/src/Codeception/SuiteManager.php:138
 Codeception\SuiteManager->run() at /var/www/html/vendor/codeception/codeception/src/Codeception/Codecept.php:244
 Codeception\Codecept->runSuite() at /var/www/html/vendor/codeception/codeception/src/Codeception/Codecept.php:206
 Codeception\Codecept->run() at /var/www/html/vendor/codeception/codeception/src/Codeception/Command/Run.php:585
 Codeception\Command\Run->runSuites() at /var/www/html/vendor/codeception/codeception/src/Codeception/Command/Run.php:406
 Codeception\Command\Run->execute() at /var/www/html/vendor/symfony/console/Command/Command.php:341
 Symfony\Component\Console\Command\Command->run() at /var/www/html/vendor/symfony/console/Application.php:1094
 Symfony\Component\Console\Application->doRunCommand() at /var/www/html/vendor/symfony/console/Application.php:356
 Symfony\Component\Console\Application->doRun() at /var/www/html/vendor/symfony/console/Application.php:195
 Symfony\Component\Console\Application->run() at /var/www/html/vendor/codeception/codeception/src/Codeception/Application.php:107
 Codeception\Application->run() at /var/www/html/vendor/codeception/codeception/app.php:63
 {closure}() at /var/www/html/vendor/codeception/codeception/app.php:64
 require() at /var/www/html/vendor/codeception/codeception/codecept:7
 include() at /var/www/html/vendor/bin/codecept:119

Craft CMS version

5.9.18

PHP version

8.3

Operating system and version

No response

Database type and version

No response

Image driver and version

No response

Installed plugins and versions

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions