Saltar al contenido principal

Paleta de comandos

Busca un comando para ejecutar...

Pruebas E2E con Better Auth

Escrito por
Avatar de Nelson Lai
Nelson Lai
Publicado el
--
Vistas
--
Comentarios
--
Pruebas E2E con Better Auth

Resumen

Necesitarás generar un token de sesión válido y almacenarlo como cookies. Esto permite que tus pruebas E2E accedan a rutas autenticadas sin iniciar sesión manualmente. Este método funciona tanto para autenticación basada en credenciales como para OAuth.

Repositorio de GitHub: nelsonlaidev/e2e-testing-with-better-auth

Prefacio

En esta guía, usaremos Playwright como nuestro framework de pruebas E2E, pero los conceptos se pueden aplicar a otros frameworks como Cypress.

Por simplicidad, usaremos un ejemplo de autenticación basada en credenciales. Sin embargo, los mismos principios se aplican a proveedores OAuth.

Además, usamos una base de datos SQLite con fines de demostración. Ajusta las interacciones con la base de datos (por ejemplo, nombres de tablas, tipos de columnas) según tu configuración.

Generando un Token de Sesión

Para simular una sesión autenticada, necesitaremos generar un token de sesión firmado usando BETTER_AUTH_SECRET. Este token se usará en las cookies de sesión.

Insertando Datos de Prueba

Queremos mantener nuestro usuario de prueba estático para evitar crear múltiples usuarios durante las pruebas. Inserta un usuario de prueba, cuenta y sesión en la base de datos si aún no existen. Usamos 0 como ID único para todas las claves primarias por simplicidad.

Almacenando la Sesión

Guarda el token firmado como una cookie en un archivo JSON para usarlo en los frameworks de pruebas. No olvides aplicar encodeURIComponent al valor de la cookie.

Usando la Sesión en las Pruebas

Carga la sesión almacenada en tus pruebas E2E para acceder a rutas protegidas sin iniciar sesión. El ejemplo a continuación usa Playwright, pero esto se puede adaptar a cualquier biblioteca de pruebas (por ejemplo, Cypress) que soporte inyección de cookies.

TypeScript
playwright.config.ts

Enlaces Útiles

Editar en GitHub
Última actualización: --