Files
amare/tests/Feature/PublicSite/ErrorPagesTest.php

81 lines
2.4 KiB
PHP

<?php
declare(strict_types=1);
namespace Tests\Feature\PublicSite;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Route;
use Tests\TestCase;
class ErrorPagesTest extends TestCase
{
use RefreshDatabase;
public function test_419_renders_branded_session_expired_page(): void
{
Route::get('/__test-419', fn (): never => abort(419));
$this->get('/__test-419')
->assertStatus(419)
->assertSee('Erro 419')
->assertSee('Sessão expirada')
->assertSee('Voltar para a home');
}
public function test_429_renders_branded_rate_limited_page(): void
{
Route::get('/__test-429', fn (): never => abort(429));
$this->get('/__test-429')
->assertStatus(429)
->assertSee('Erro 429')
->assertSee('Muitas solicitações')
->assertSee('Voltar para a home');
}
public function test_503_renders_branded_maintenance_page(): void
{
Route::get('/__test-503', fn (): never => abort(503));
$this->get('/__test-503')
->assertStatus(503)
->assertSee('Erro 503')
->assertSee('Em manutenção')
->assertSee('Voltar para a home');
}
public function test_error_pages_never_leak_debug_stack_traces(): void
{
config(['app.debug' => false]);
Route::get('/__test-503', fn (): never => abort(503));
$this->get('/__test-503')
->assertStatus(503)
->assertDontSee('segredo-interno-amare')
->assertDontSee('Exception');
}
public function test_all_branded_error_pages_expose_progressive_motion_hooks(): void
{
foreach ([419, 429, 500, 503] as $status) {
Route::get('/__test-motion-'.$status, fn (): never => abort($status));
$this->get('/__test-motion-'.$status)
->assertStatus($status)
->assertSee('data-motion="page-open"', false)
->assertSee('data-motion-beat', false)
->assertSee('data-reveal-group', false)
->assertSee('data-reveal', false);
}
$this->get('/__missing-motion-page')
->assertNotFound()
->assertSee('data-motion="page-open"', false)
->assertSee('data-motion-beat', false)
->assertSee('data-reveal-group', false)
->assertSee('data-reveal', false);
}
}