Ana içeriğe atla
failproofai iki test paketi içerir: birim testleri (hızlı, mock’lanmış) ve uçtan uca testler (gerçek alt işlem çağrıları).

Testleri çalıştırma


Birim testleri

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

Politika birim testi yazma


Uçtan uca testler

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

Kurulum

E2E testleri, ikili dosyayı doğrudan repo kaynağından çalıştırır. İlk çalıştırmadan önce, özel kanca dosyalarının 'failproofai'’den içe aktarırken kullandığı CJS paketini oluşturun:
Ardından testleri çalıştırın:
Genel kanca 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 - ikili dosyayı çağır:
Payloads - hazır yükü üreten fabrikalar:

E2E test yazma

E2E yanıt şekilleri

Vitest config

E2E testleri vitest.config.e2e.mts dosyasını şu ayarlarla kullanır:
  • environment: "node" - tarayıcı küresellerine gerek yok
  • pool: "forks" - gerçek işlem izolasyonu (testler alt işlemleri başlatır)
  • testTimeout: 20_000 - test başına 20sn (ikili başlatma + kanca değerlendirmesi)
forks havuzu önemlidir: thread tabanlı çalışanlar globalThis paylaşır ve bu alt işlemleri başlatan testlerde müdahale edebilir. İşlem tabanlı fork’lar bunu önler.

CI

Birleştirmeden önce tam CI çalıştırması (bun run lint && bunx tsc --noEmit && bun run test:run && bun run build) geçmesi gerekir. E2E paketi paralel olarak ayrı bir CI işi olarak çalışır. Tam ön birleştirme kontrol listesi için Katkıda Bulunma bölümüne bakınız.