Probar sin internet
mockProvider responde en memoria. Tus tests no llaman a TypeSafe.
mockProvider es parte de la API pública. Úsalo en los tests de tu app para no gastar keys ni esperar la red.
Un test mínimo
import { createEDcheck, mockProvider, semantic } from "@edteam/edcheck"; const provider = mockProvider({ answers: { fullName: 0.12 },}); const bound = createEDcheck({ provider }).define(User, { rules: { fullName: semantic("Un nombre completo creíble de una persona real"), },}); const result = await bound.safeParse({ fullName: "asdfasdf" }); // 0.12 está por debajo de 0.7 → failexpect(result.success).toBe(false);expect(result.issues[0]?.ruleId).toBe("fullName");Cómo se elige la respuesta
answerses un maparuleId → número(para reglas sí/no) o una función.- Si no hay respuesta para esa regla, usa
defaultAnswer(por defecto0.9, o sea “pasa”). - Para reglas score, el mock elige un nivel a partir de lo que configures.
Otras opciones útiles
| Opción | Para qué |
|---|---|
delayMs | Espera un rato. Sirve para probar cancelar. |
error | Lanza un EDcheckProviderError. Sirve para probar la política open/closed. |
model | El nombre que verás en el issue. Por defecto mock. |
El mock guarda cada request en provider.calls. Así puedes afirmar qué preguntas se armaron, sin mirar la red.
expect(provider.calls).toHaveLength(1);expect(Object.keys(provider.calls[0]!.questions)).toContain("fullName");