Files
coolify/tests/Feature/TeamSettingsNavigationTest.php
T
Andras Bacsai 2291c3fa1c feat(ui): unify team, security, and notification settings layouts
Extract shared settings-layout components and a dedicated team
danger-zone page. Enable modal editing for security resources,
polish OAuth/API-token controls, and align notification and
service configuration UI with the new navigation patterns.
2026-08-05 16:24:31 +02:00

40 lines
1.8 KiB
PHP

<?php
it('uses shared sidebar navigation for every team settings page', function () {
$sidebar = file_get_contents(resource_path('views/components/team/settings-layout.blade.php'));
$navbar = file_get_contents(resource_path('views/components/dashboard/navbar.blade.php'));
foreach ([
resource_path('views/livewire/team/index.blade.php'),
resource_path('views/livewire/team/member/index.blade.php'),
resource_path('views/livewire/team/admin-view.blade.php'),
resource_path('views/livewire/team/danger-zone.blade.php'),
] as $view) {
expect(file_get_contents($view))
->toContain('<x-team.settings-layout>')
->not->toContain('<x-team.navbar');
}
expect($sidebar)
->toContain("'label' => 'General'")
->toContain("'label' => 'Members'")
->toContain("'label' => 'Admin View'")
->toContain("'label' => 'Danger Zone'")
->toContain('application-settings-navigation')
->not->toContain('New team');
expect(file_get_contents(resource_path('views/livewire/team/index.blade.php')))
->toContain('buttonTitle="New team"')
->not->toContain('Delete team');
expect(file_get_contents(resource_path('views/livewire/team/danger-zone.blade.php')))
->toContain('Delete team')
->toContain('status="Permanent"')
->toContain('border-red-300');
expect(file_get_contents(resource_path('views/livewire/switch-team.blade.php')))
->toContain('New team')
->toContain('team-switcher-create-expanded')
->toContain('team-switcher-create-collapsed');
expect($navbar)
->toContain("request()->routeIs('team.index', 'team.member.index', 'team.admin-view', 'team.danger-zone')")
->not->toContain("['label' => 'Members', 'route' => 'team.member.index'");
});