'superadmin_test', 'password' => bcrypt('password'), 'role' => 1 // SuperAdmin ]); $club1 = Club::create(['nombre' => 'Club Viejo']); $club2 = Club::create(['nombre' => 'Club Nuevo']); $this->withSession(['admin_logged_in' => true, 'admin_role' => 1]); $response = $this->get(route('admin.clubes.index')); $response->assertStatus(200); // El club con mayor ID (el último creado) debería aparecer primero en el HTML $response->assertSeeInOrder(['Club Nuevo', 'Club Viejo']); } /** * Test que verifica el bloqueo de botón y validación JS (indirectamente via form attributes). */ public function test_admin_layout_contains_form_validation_script() { $this->withSession(['admin_logged_in' => true, 'admin_role' => 1]); $response = $this->get(route('admin.dashboard')); $response->assertStatus(200); // Verificar que el script de validación inyectado esté presente $response->assertSee('handleFormValidation'); } /** * Test que verifica la ruta de descarga de QR en PDF. */ public function test_qr_pdf_download_route_is_accessible() { $club = Club::create(['nombre' => 'Club Test']); $jugador = Jugador::create([ 'id_jugador' => 'JUG_TEST_PDF', 'nombre' => 'Test', 'apellido' => 'User', 'documento' => '99999999', 'email' => 'test@pdf.com', 'id_club_actual' => $club->id_club ]); $evento = Evento::create([ 'id_evento' => 'EVE_TEST_PDF', 'nombre_evento' => 'Evento PDF', 'fecha_evento' => now()->toDateString(), 'hora_inicio' => '10:00', 'hora_fin' => '12:00' ]); $qr = QrCode::create([ 'id_qr' => 'qr_pdf_test', 'id_evento' => $evento->id_evento, 'id_jugador' => $jugador->id_jugador, 'tipo_qr' => 'invitado', 'creado' => now() ]); $this->withSession([ 'user_logged_in' => true, 'user_tipo' => 'jugador', 'user_id' => $jugador->id_jugador ]); $response = $this->get(route('panel.qr.descargar', $qr->id_qr)); $response->assertStatus(200); $response->assertHeader('Content-Type', 'application/pdf'); } /** * Test que verifica la visibilidad del manual de usuario. */ public function test_documentation_is_accessible() { $response = $this->get(route('documentacion.index')); $response->assertStatus(200); $response->assertSee('Manual de Usuario'); } }