Split aside navigation contracts

This commit is contained in:
2026-03-19 19:13:51 +01:00
parent 115723fcd6
commit f7787465f7
4 changed files with 38 additions and 21 deletions

View File

@@ -0,0 +1,34 @@
<?php
namespace MintyPHP\Tests\Architecture;
use PHPUnit\Framework\TestCase;
final class AsideNavigationRuntimeContractTest extends TestCase
{
use ProjectFileAssertionSupport;
public function testAsidePanelsUseSharedDetailsOpenStateHelper(): void
{
$content = $this->readProjectFile('web/js/components/app-toggle-aside-panels.js');
$this->assertStringContainsString(
"import { initPersistedDetailsGroup } from '../core/app-details-open-state.js';",
$content
);
$this->assertStringContainsString('initPersistedDetailsGroup({', $content);
$this->assertStringContainsString("panel.dataset.asideDetailsOpenActive === '1'", $content);
}
public function testDetailStateUsesSharedDetailsOpenStateHelper(): void
{
$content = $this->readProjectFile('web/js/components/app-details-state.js');
$this->assertStringContainsString(
"import { initPersistedDetailsGroup } from '../core/app-details-open-state.js';",
$content
);
$this->assertStringContainsString('initPersistedDetailsGroup({', $content);
$this->assertStringNotContainsString('window.localStorage.setItem(storageKey, JSON.stringify(openKeys));', $content);
}
}