coolify/tests/Feature/SidebarNavigationMarkupTest.php
Andras Bacsai 5de6f97256 feat(ui): unify resource nav sidebars and polish project layouts
Extract application/database/service configuration sidebars and
unified headings; improve clone-to-environment, embedded deployments,
storage actions, OAuth icons, terminal, and shared form components.
2026-08-05 17:56:59 +02:00

35 lines
1.6 KiB
PHP

<?php
it('initializes persisted sidebar state before enabling layout transitions', function () {
$layout = file_get_contents(resource_path('views/layouts/app.blade.php'));
expect($layout)
->toContain("collapsed: localStorage.getItem('sidebarCollapsed') === 'true'")
->toContain('sidebarReady: false')
->toContain(":class=\"[collapsed ? 'lg:w-16' : 'lg:w-56', sidebarReady ? 'transition-[width] duration-200' : '']\"")
->toContain(":class=\"[collapsed ? 'lg:ml-16' : 'lg:ml-56', sidebarReady ? 'transition-[margin] duration-200' : '']\"");
});
it('shows the coolify icon in the collapsed desktop brand slot', function () {
$layout = file_get_contents(resource_path('views/layouts/app.blade.php'));
expect($layout)
->toContain('x-show="collapsed" x-cloak src="/coolify-logo.svg" alt="Coolify"')
->not->toContain('>C</span>');
});
it('does not animate navbar padding when restoring collapsed state', function () {
$navbar = file_get_contents(resource_path('views/components/navbar.blade.php'));
expect($navbar)
->not->toContain('items-start gap-3 motion-safe:transition-all')
->not->toContain('overflow-hidden motion-safe:transition-all');
});
it('draws a single border between the desktop sidebar and main content', function () {
$layout = file_get_contents(resource_path('views/layouts/app.blade.php'));
$navbar = file_get_contents(resource_path('views/components/navbar.blade.php'));
expect($navbar)->toContain('border-r border-neutral-200')
->and($layout)->not->toContain('lg:border-l border-neutral-200');
});