seed(RolePermissionSeeder::class); $this->actingAs($this->userWithRoles('super_admin')); $failures = []; foreach (Filament::getPanel('admin')->getResources() as $resource) { /** @var class-string $resource */ if (! array_key_exists('index', $resource::getPages())) { continue; } $failures = [...$failures, ...$this->visit($resource::getUrl('index'), $resource)]; } $this->assertSame([], $failures, implode("\n", $failures)); } #[Test] public function every_custom_page_opens(): void { $this->seed(RolePermissionSeeder::class); $this->actingAs($this->userWithRoles('super_admin')); $failures = []; foreach (Filament::getPanel('admin')->getPages() as $page) { $failures = [...$failures, ...$this->visit($page::getUrl(), $page)]; } $this->assertSame([], $failures, implode("\n", $failures)); } /** * @return array */ protected function visit(string $url, string $subject): array { try { $status = $this->withoutExceptionHandling()->get($url)->status(); } catch (Throwable $e) { return ["{$subject} — {$url}\n ".$e::class.': '.$e->getMessage()]; } return $status === 200 ? [] : ["{$subject} — {$url} answered {$status}"]; } }