Pruebas
Pruebas unitarias, pruebas de seguridad de la base de datos y la prueba de humo de extremo a extremo.
| Comando | Qué cubre | Necesita |
|---|---|---|
pnpm test | Pruebas unitarias: reglas de precios, la tienda (carrito, consentimiento, pedidos), niveles de acceso, el generador de la demostración, el motor de prueba del guion | Nada |
pnpm test:rls | Una prueba por invariante de seguridad, incluidas escrituras que deben fallar | Supabase local en ejecución y restablecido |
pnpm test:e2e | Prueba de humo de Playwright de la demostración, con la red de terceros bloqueada | Playwright y Chrome |
Pruebas unitarias
pnpm testEntre otras cosas, comprueban que cada plan, paquete y complemento figure en $290 al mes o por debajo, y que los promedios, como el tiempo de atención, nunca se sumen entre los días.
Las pruebas de la tienda (pnpm --filter @callwise/store test) comprueban que se rechace un pedido sin consentimiento, que el consentimiento se guarde con su marca de tiempo, la versión de las condiciones y el texto exacto, que las fechas de inicio, fin y renovación del plazo sean correctas, que el total de un pedido sea igual a la cotización anual, que se rechacen los complementos incompatibles y que no exista una vía de reembolso. Para la semana gratuita comprueban que un primer pedido cobre $0 hoy y guarde las fechas de la prueba y del primer cargo, que un segundo pedido del mismo correo no tenga prueba y se cobre hoy, que la tarea del día 7 cobre una sola vez (ejecutada dos veces, un cargo), nunca antes del día 7 y nunca una prueba cancelada, que cancelar durante la prueba no cobre nada y que cancelar después del primer cargo se rechace, y que los datos de la tarjeta nunca se guarden completos.
Pruebas de seguridad de la base de datos
pnpm supabase:web:start
pnpm supabase:web:reset
pnpm test:rlsCada prueba inicia sesión como un usuario cargado e intenta algo que las reglas prohíben: un miembro que publica un guion, un propietario que sube su propio plan, un usuario que lee las llamadas de otro espacio de trabajo. La prueba pasa cuando Postgres lo rechaza.
De extremo a extremo
pnpm test:e2eAbre la demostración en un navegador y recorre las páginas principales. Las solicitudes a cualquier host externo están bloqueadas, así que la prueba también demuestra que la demostración no hace solicitudes externas.