Skip to main content
failproofai iki test paketine sahiptir: birim testleri (hızlı, mock’lanmış) ve uçtan uca testler (gerçek alt işlem çağrıları).

Test Çalıştırma


Birim Testleri

Birim testleri __tests__/ dizininde bulunur ve Vitest ile jsdom kullanır.

Politika birim testi yazma


Uçtan Uca Testler

E2E testleri gerçek failproofai ikili dosyasını bir alt işlem olarak çağırır, stdin’e JSON yükü aktarır ve stdout çıkışı ile çıkış kodunu doğrular. Bu, Claude Code’un kullandığı tam entegrasyon yolunu test eder.

Kurulum

E2E testleri ikili dosyayı doğrudan depo kaynak kodundan çalıştırır. İlk çalıştırmadan önce, özel hook dosyalarının 'failproofai'’den içe aktarırken kullandığı CJS paketini derleyin:
Ardından testleri çalıştırın:
Genel hook API’sini değiştirdiğinizde (src/hooks/custom-hooks-registry.ts, src/hooks/policy-helpers.ts veya src/hooks/policy-types.ts) dist/ dizinini yeniden derleyin.

E2E test yapısı

E2E yardımcılarını kullanma

FixtureEnv - test başına izole ortam:
createFixtureEnv() afterEach temizliğini otomatik olarak kaydeder. runHook - ikiliyi çağır:
Payloads - hazır payload fabrikaları:

E2E testi yazma

E2E yanıt şekilleri

Vitest yapılandırması

E2E testleri vitest.config.e2e.mts kullanır:
  • environment: "node" - tarayıcı globals’ı gerekli değil
  • pool: "forks" - gerçek işlem izolasyonu (testler alt işlemleri çağırır)
  • testTimeout: 20_000 - test başına 20s (ikili başlatma + hook değerlendirmesi)
forks havuzu önemlidir: iş parçacığı tabanlı çalışanlar globalThis’i paylaşır, bu da alt işlem çağıran testleri etkileyebilir. İşlem tabanlı forks bunu önler.

CI

Tam CI çalıştırması (bun run lint && bunx tsc --noEmit && bun run test:run && bun run build) birleştirmeden önce başarılı olması gerekir. E2E paketi paralel olarak ayrı bir CI işi olarak çalışır. Tam ön birleştirme kontrol listesi için Contributing bölümüne bakın.