Skip to main content
failproofai כולל שתי חבילות בדיקה: בדיקות יחידה (מהירות, מתואמות) ובדיקות מקצה לקצה (הפעלות תהליך אמיתיות).

הפעלת בדיקות


בדיקות יחידה

בדיקות יחידה נמצאות ב-__tests__/ וממשות את Vitest עם jsdom.

כתיבת בדיקת יחידה למדיניות


בדיקות מקצה לקצה

בדיקות E2E מפעילות את הקובץ failproofai האמיתי כתהליך משנה, משדרות מטען JSON ל-stdin, ובוחנות את פלט ה-stdout וקוד היציאה. זה בוחן את נתיב ההשתלבות המלא ש-Claude Code משתמש בו.

הגדרה

בדיקות E2E מפעילות את הקובץ הבינארי ישירות ממקור המאגר. לפני ההפעלה הראשונה, בנה את ערכת ה-CJS שקבצי hook מותאמים משתמשים בהם בעת ייבוא מ-'failproofai':
לאחר מכן הפעל את הבדיקות:
בנה מחדש את dist/ בכל פעם שתשנה את ה-API הציבורי של hook (src/hooks/custom-hooks-registry.ts, src/hooks/policy-helpers.ts, או src/hooks/policy-types.ts).

מבנה בדיקת E2E

שימוש בעוזרי E2E

FixtureEnv - סביבה מבודדת לכל בדיקה:
createFixtureEnv() רושמת ניקוי afterEach באופן אוטומטי. runHook - הפעל את הקובץ הבינארי:
Payloads - מפעלי מטען מוכנים:

כתיבת בדיקת E2E

צורות תגובה E2E

תצורת Vitest

בדיקות E2E משתמשות ב-vitest.config.e2e.mts עם:
  • environment: "node" - אין צורך בגלובלים של דפדפן
  • pool: "forks" - בידוד תהליך אמיתי (בדיקות משדרות תהליכים משניים)
  • testTimeout: 20_000 - 20 שניות לכל בדיקה (הפעלת קובץ בינארי + הערכת hook)
ה-forks pool חשוב: עובדים מבוססי thread משתפים את globalThis, מה שיכול להפריע לבדיקות המשדרות תהליכים משניים. forks מבוססי תהליך מונעים זאת.

CI

הריצה המלאה ב-CI (bun run lint && bunx tsc --noEmit && bun run test:run && bun run build) חייבת להעביר לפני מיזוג. הצד E2E פועל כעבודת CI נפרדת במקביל. ראה תרומה לרשימת הבדיקה המלאה לפני מיזוג.