הפעלת בדיקות
בדיקות יחידה
בדיקות היחידה נמצאות ב-__tests__/ ומשתמשות ב-Vitest עם jsdom.
כתיבת בדיקת יחידה של מדיניות
בדיקות end-to-end
בדיקות E2E משדרות את הקובץfailproofai האמיתי כתהליך משנה, חוצים עומס JSON ל-stdin, ובודקות את פלט stdout וקוד ההחروج. זה בודק את נתיב האינטגרציה המלא שבו Claude Code משתמש.
התקנה
בדיקות E2E משדרות את הקובץ הישירות מקוד המקור של הריפו. לפני ההרצה הראשונה, בנה את ערימת CJS שקובצי hook מותאמים משתמשים בהם בעת ייבוא מ-'failproofai':
dist/ בכל פעם שאתה משנה את ממשק hook הציבורי (src/hooks/custom-hooks-registry.ts, src/hooks/policy-helpers.ts, או src/hooks/policy-types.ts).
מבנה בדיקת E2E
שימוש ב-E2E helpers
FixtureEnv - סביבה מבודדת לכל בדיקה:
createFixtureEnv() רושם afterEach ניקיון באופן אוטומטי.
runHook - שדרות הקובץ:
Payloads - מפעלות עומס מוכנות:
כתיבת בדיקת E2E
צורות תגובה E2E
תצורת Vitest
בדיקות E2E משתמשות ב-vitest.config.e2e.mts עם:
environment: "node"- אין צורך בגלובלים של דפדפןpool: "forks"- בידוד תהליך אמיתי (בדיקות שדרות תהליכי משנה)testTimeout: 20_000- 20 שניות לכל בדיקה (הפעלה של קובץ + הערכה של hook)
forks חשובה: עובדים מבוססי threads שיתופיים globalThis, מה שיכול להפריע לבדיקות שדרות תהליכי משנה. ערימות מבוססות תהליכים מונעות זאת.
CI
הריצה המלאה ב-CI (bun run lint && bunx tsc --noEmit && bun run test:run && bun run build) חייבת לעבור לפני המיזוג. ערימת E2E רצה כעבודת CI נפרדת במקביל.
ראה Contributing לרשימת הבדיקה המלאה לפני מיזוג.
