diff --git a/composer.json b/composer.json index d621181c3..3b5d23822 100644 --- a/composer.json +++ b/composer.json @@ -29,7 +29,7 @@ "codeigniter4/settings": "^2.1" }, "require-dev": { - "boundwize/structarmed": "0.14.16", + "boundwize/structarmed": "0.15.1", "codeigniter/phpstan-codeigniter": "^2.0", "codeigniter4/devkit": "^1.3", "codeigniter4/framework": ">=4.3.5 <4.5.0 || ^4.5.1", diff --git a/structarmed.php b/structarmed.php index aab05444b..f4b4a47bd 100644 --- a/structarmed.php +++ b/structarmed.php @@ -5,8 +5,13 @@ use Boundwize\StructArmed\Architecture; use Boundwize\StructArmed\Preset\Preset; use Boundwize\StructArmed\Preset\Presets\Psr4Preset; +use Boundwize\StructArmed\Rule\Rules\Class_\MustBeFinalRule; return Architecture::define() + ->rule( + 'tests.must_be_final', + new MustBeFinalRule(layer: 'tests'), + ) ->skip([ Psr4Preset::CLASSES_MUST_MATCH_COMPOSER => [ __DIR__ . '/src/Database/Migrations', @@ -14,6 +19,7 @@ ]) ->cacheDirectory(is_dir('/tmp') ? '/tmp/structarmed' : null) ->withPreset(Preset::PSR4()) + ->layer('tests', __DIR__ . '/tests') ->layerPattern('Model', '/^CodeIgniter\\\\Shield\\\\.*Model$/') ->layerPattern('Controller', '/^CodeIgniter\\\\Shield\\\\Controllers\\\\.*$/') ->layerPattern('Config', '/^CodeIgniter\\\\Shield\\\\Config\\\\.*$/', '/^.*Services$/') diff --git a/tests/_support/Config/Registrar.php b/tests/_support/Config/Registrar.php index 3e9661c24..86a5e04e3 100644 --- a/tests/_support/Config/Registrar.php +++ b/tests/_support/Config/Registrar.php @@ -18,7 +18,7 @@ * * Provides a basic registrar class for testing BaseConfig registration functions. */ -class Registrar +final class Registrar { /** * DB config array for testing purposes. @@ -27,7 +27,7 @@ class Registrar * * @psalm-suppress RedundantCondition */ - protected static $dbConfig = [ + private static $dbConfig = [ 'MySQLi' => [ 'DSN' => '', 'hostname' => '127.0.0.1',