Integración con Supabase

Prueba los correos de Supabase Auth con InboxTap

Supabase ya incluye un receptor visual de correo para su entorno local de Auth. InboxTap resulta útil cuando una prueba necesita un SDK tipado y limitado al destinatario, extracción determinista, inyección de fallos o un artefacto con datos sensibles eliminados, pero solo si el proceso de Auth puede alcanzar realmente la escucha SMTP local.

Elige Mailpit o InboxTap según la tarea

La CLI de Supabase incluye Mailpit y expone de forma predeterminada su interfaz web en localhost:54324. Mantén esa opción cuando la necesidad principal sea inspeccionar visualmente las plantillas locales de Auth.

Elige InboxTap cuando las pruebas automáticas se beneficien de una dirección única por caso, waitForLink() o waitForCode(), comparadores que no revelan contenido sensible, reglas de fallos deterministas o pruebas acotadas en HTML y JSON. Es una elección de flujo de pruebas, no una afirmación de que Supabase carezca de captura local de correo.

Resuelve primero la topología de red

InboxTap se enlaza de forma predeterminada a las direcciones loopback del host. Un proceso de Supabase Auth dentro de un contenedor tiene su propia interfaz loopback, de modo que localhost dentro del contenedor no corresponde al proceso de InboxTap del host.

Configura SMTP personalizado solo en una topología donde Auth pueda alcanzar la escucha sin exponer ampliamente un servicio de captura sin autenticación. No copies un enlace a 0.0.0.0 en una estación compartida ni en una red de CI. Del mismo modo, un proyecto alojado de Supabase no puede conectarse a la dirección loopback del portátil de una persona desarrolladora.

Comprueba el mensaje después de conectar SMTP

Cuando la topología local o autoalojada elegida para Auth pueda alcanzar InboxTap, crea un destinatario e inicia signInWithOtp() mediante el cliente real de Supabase. A pesar de su nombre, este método envía de forma predeterminada un enlace mágico; la plantilla de correo decide si el usuario recibe una URL de confirmación o un código.

Supabase crea de forma predeterminada un usuario cuando la dirección es desconocida. Configura shouldCreateUser como false si el producto solo permite el acceso sin contraseña a una cuenta existente y prepara esa cuenta antes de solicitar el mensaje.

El enlace de confirmación predeterminado suele contener la ruta de verificación de Auth mostrada en el fragmento. Si el proyecto usa una plantilla PKCE personalizada o un endpoint de retorno propio, filtra y valida la URL que exige esa plantilla en lugar de fijar el valor predeterminado.

auth-email.test.ts
const inbox = await inboxTap.createInbox({ alias: "supabase-auth" });

const { error } = await supabase.auth.signInWithOtp({
  email: inbox.address,
});

if (error) throw error;

const confirmationUrl = await inbox.waitForLink({
  contains: "/auth/v1/verify",
  timeoutMs: 20_000,
});

Respeta los ajustes de plantillas y OTP

Usar la variable Token en una plantilla de correo de Supabase genera un flujo OTP, mientras que la URL de confirmación genera un flujo de enlace. Comprueba el contrato representado, no lo deduzcas del nombre del método cliente.

Supabase permite una longitud de OTP por correo de seis a diez dígitos. waitForCode() de InboxTap busca exactamente seis de forma predeterminada, así que proporciona un patrón para la longitud configurada. El arreglo de conveniencia CapturedEmail.codes se limita a valores de cuatro a ocho dígitos; un patrón personalizado de waitForCode() examina el cuerpo y es la opción adecuada para códigos de nueve o diez dígitos.

Separa las pruebas locales de las alojadas

El servicio de correo predeterminado de Supabase alojado restringe los destinatarios y limita la frecuencia de entrega, mientras que su SMTP personalizado espera un servidor accesible por red y con credenciales. InboxTap no ofrece deliberadamente acceso público ni autenticación SMTP, por lo que no es un proveedor SMTP para proyectos alojados.

Usa InboxTap en un entorno local o de CI aislado cuyo límite de red controles. Usa un proveedor autenticado adecuado para pruebas o entrega cuando un proyecto alojado de Supabase deba enviar a través de la red pública.

Automatiza el mensaje capturado

Consulta la referencia del cliente para elegir el ayudante adecuado de enlace, código, mensaje o patrón personalizado una vez establecida la conectividad SMTP.

Explorar el SDK de cliente