Split frontend runtime contracts
This commit is contained in:
60
tests/Architecture/FrontendRuntimeHostContractTest.php
Normal file
60
tests/Architecture/FrontendRuntimeHostContractTest.php
Normal file
@@ -0,0 +1,60 @@
|
||||
<?php
|
||||
|
||||
namespace MintyPHP\Tests\Architecture;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
class FrontendRuntimeHostContractTest extends TestCase
|
||||
{
|
||||
use ProjectFileAssertionSupport;
|
||||
|
||||
public function testHostBoundComponentsExposeDataAppComponentMarkupHosts(): void
|
||||
{
|
||||
$defaultTemplate = $this->readProjectFile('templates/default.phtml');
|
||||
$loginTemplate = $this->readProjectFile('templates/login.phtml');
|
||||
$flashPartial = $this->readProjectFile('templates/partials/app-flash.phtml');
|
||||
$topbarPartial = $this->readProjectFile('templates/partials/app-topbar.phtml');
|
||||
$asideIconBar = $this->readProjectFile('templates/partials/app-main-aside-icon-bar.phtml');
|
||||
$asidePartial = $this->readProjectFile('templates/partials/app-main-aside.phtml');
|
||||
$bookmarkDialog = $this->readProjectFile('modules/bookmarks/templates/bookmark-dialogs.phtml');
|
||||
$bookmarkPanelTemplate = $this->readProjectFile('modules/bookmarks/templates/aside-bookmarks-panel.phtml');
|
||||
$sessionWarningDialog = $this->readProjectFile('templates/partials/app-session-warning-dialog.phtml');
|
||||
|
||||
$this->assertStringContainsString('id="page-config-app-components"', $defaultTemplate);
|
||||
$this->assertStringContainsString('id="page-config-login-components"', $loginTemplate);
|
||||
$this->assertStringNotContainsString("assetVersion('js/components/app-bookmark-init.js')", $defaultTemplate);
|
||||
|
||||
$this->assertStringContainsString('data-app-component="flash-auto-dismiss"', $flashPartial);
|
||||
$this->assertStringContainsString('data-app-component="nav-history"', $topbarPartial);
|
||||
$this->assertStringContainsString('data-app-component="tenant-switcher"', $topbarPartial);
|
||||
$this->assertStringContainsString('data-app-component="theme-controls"', $topbarPartial);
|
||||
$this->assertStringContainsString('data-app-component="contrast-toggle"', $topbarPartial);
|
||||
$this->assertStringContainsString('data-app-component="details-aside-toggle"', $topbarPartial);
|
||||
$this->assertStringContainsString('data-app-component="aside-panels"', $asideIconBar);
|
||||
$this->assertStringContainsString('data-app-component="sidebar-toggle"', $asidePartial);
|
||||
$this->assertStringContainsString('data-app-component="global-search"', $asidePartial);
|
||||
$this->assertStringContainsString('data-app-component="bookmark-panel"', $bookmarkPanelTemplate);
|
||||
$this->assertStringContainsString('data-app-component="bookmark-save"', $bookmarkDialog);
|
||||
$this->assertStringContainsString('data-app-component="session-warning"', $sessionWarningDialog);
|
||||
}
|
||||
|
||||
public function testTabsHostsUseDataAppComponentContract(): void
|
||||
{
|
||||
$files = [
|
||||
'modules/addressbook/pages/address-book/view(default).phtml',
|
||||
'pages/admin/departments/_form.phtml',
|
||||
'pages/admin/permissions/_form.phtml',
|
||||
'pages/admin/roles/_form.phtml',
|
||||
'pages/admin/settings/index(default).phtml',
|
||||
'pages/admin/stats/index(default).phtml',
|
||||
'pages/admin/tenants/_form.phtml',
|
||||
'pages/admin/users/_form.phtml',
|
||||
];
|
||||
|
||||
foreach ($files as $file) {
|
||||
$content = $this->readProjectFile($file);
|
||||
$this->assertStringContainsString('data-tabs', $content, $file);
|
||||
$this->assertStringContainsString('data-app-component="tabs"', $content, $file);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user