diff --git a/phpunit.xml b/phpunit.xml
index c6eba8d..0d6f653 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -37,7 +37,8 @@
tests/Architecture/FileStorageContractTest.php
tests/Architecture/PostEndpointCsrfContractTest.php
tests/Architecture/PostRedirectGetContractTest.php
- tests/Architecture/PublicPageContractTest.php
+ tests/Architecture/PublicPageAdminContractTest.php
+ tests/Architecture/PublicPageRoutingContractTest.php
tests/Architecture/SecurityCryptoContractTest.php
tests/Architecture/SecurityLoggingContractTest.php
@@ -51,7 +52,8 @@
tests/Architecture/DetailActionPolicyContractTest.php
tests/Architecture/DetailPageContractTest.php
tests/Architecture/DetailValidationSummaryContractTest.php
- tests/Architecture/FilterDrawerContractTest.php
+ tests/Architecture/FilterDrawerRuntimeContractTest.php
+ tests/Architecture/FilterDrawerTemplateContractTest.php
tests/Architecture/FrontendRuntimeComponentContractTest.php
tests/Architecture/FrontendRuntimeEntrypointContractTest.php
tests/Architecture/FrontendRuntimeHostContractTest.php
diff --git a/tests/Architecture/PublicPageAdminContractTest.php b/tests/Architecture/PublicPageAdminContractTest.php
new file mode 100644
index 0000000..cf1aeb8
--- /dev/null
+++ b/tests/Architecture/PublicPageAdminContractTest.php
@@ -0,0 +1,23 @@
+readProjectFile('pages/page/index($slug).php');
+ $copyAction = $this->readProjectFile('pages/page/copy-language().php');
+
+ $this->assertStringContainsString('UiAccessService::class', $indexAction);
+ $this->assertStringContainsString('SettingsAuthorizationPolicy::ABILITY_ADMIN_SETTINGS_UPDATE', $indexAction);
+ $this->assertStringNotContainsString('$canEdit = $currentUserId > 0;', $indexAction);
+
+ $this->assertStringContainsString('UiAccessService::class', $copyAction);
+ $this->assertStringContainsString('SettingsAuthorizationPolicy::ABILITY_ADMIN_SETTINGS_UPDATE', $copyAction);
+ }
+}
diff --git a/tests/Architecture/PublicPageContractTest.php b/tests/Architecture/PublicPageRoutingContractTest.php
similarity index 56%
rename from tests/Architecture/PublicPageContractTest.php
rename to tests/Architecture/PublicPageRoutingContractTest.php
index 4bebaf3..3487d1b 100644
--- a/tests/Architecture/PublicPageContractTest.php
+++ b/tests/Architecture/PublicPageRoutingContractTest.php
@@ -4,13 +4,13 @@ namespace MintyPHP\Tests\Architecture;
use PHPUnit\Framework\TestCase;
-class PublicPageContractTest extends TestCase
+class PublicPageRoutingContractTest extends TestCase
{
use ProjectFileAssertionSupport;
public function testPublicStaticPageRoutesPointToPublicPageTargets(): void
{
- $routes = include $this->projectRootPath() . '/config/routes.php';
+ $routes = include dirname(__DIR__, 2) . '/config/routes.php';
$this->assertIsArray($routes);
$byPath = [];
@@ -34,23 +34,10 @@ class PublicPageContractTest extends TestCase
public function testPageTemplatesAreSeparatedByContext(): void
{
- $root = $this->projectRootPath();
+ $root = dirname(__DIR__, 2);
$this->assertFileExists($root . '/pages/page/index(default).phtml');
$this->assertFileDoesNotExist($root . '/pages/page/index(page).phtml');
$this->assertFileExists($root . '/pages/public-page/index(page).phtml');
}
-
- public function testPageMutationsUseSettingsUpdateCapabilityGuard(): void
- {
- $indexAction = $this->readProjectFile('pages/page/index($slug).php');
- $copyAction = $this->readProjectFile('pages/page/copy-language().php');
-
- $this->assertStringContainsString('UiAccessService::class', $indexAction);
- $this->assertStringContainsString('SettingsAuthorizationPolicy::ABILITY_ADMIN_SETTINGS_UPDATE', $indexAction);
- $this->assertStringNotContainsString('$canEdit = $currentUserId > 0;', $indexAction);
-
- $this->assertStringContainsString('UiAccessService::class', $copyAction);
- $this->assertStringContainsString('SettingsAuthorizationPolicy::ABILITY_ADMIN_SETTINGS_UPDATE', $copyAction);
- }
}
diff --git a/tests/README.md b/tests/README.md
index 6167adf..53dc58d 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -32,8 +32,8 @@ ohne dass jede Aenderung immer die komplette Suite im Kopf behalten muss.
## Naechste Refactor-Kandidaten
-- `tests/Architecture/FilterDrawerContractTest.php`
-- `tests/Architecture/PublicPageContractTest.php`
- `tests/Architecture/CodexSkillsContractTest.php`
- `tests/Architecture/ModuleRegistryContractTest.php`
- `tests/Architecture/AgentSystemContractTest.php`
+- `tests/Architecture/DetailValidationSummaryContractTest.php`
+- `tests/Architecture/DetailActionPolicyContractTest.php`