Files
Laucha1312 aa9bc585fd 4
2026-06-04 15:22:45 -03:00

109 lines
3.2 KiB
PHP

<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Tests\TestCase;
use App\Models\Club;
use App\Models\AdminUser;
use App\Models\Evento;
use App\Models\Equipo;
use App\Models\Jugador;
use App\Models\QrCode;
class TFICorrectionsTest extends TestCase
{
use DatabaseTransactions;
/**
* Test que verifica el ordenamiento descendente en el panel de clubes.
*/
public function test_clubes_are_ordered_descending_by_id()
{
$admin = AdminUser::create([
'username' => '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');
}
}