Skip to content

Latest commit

 

History

History
26 lines (21 loc) · 706 Bytes

File metadata and controls

26 lines (21 loc) · 706 Bytes

Testing Strategy

Unit Tests (Domain layer)

  • 100% coverage mandatory
  • No framework, no DB, pure PHP
  • Use FrozenClock and in-memory repositories

Integration Tests (Infrastructure)

  • Real Doctrine + Redis (Testcontainers via Pest)
  • Transaction rollback after each test
  • Minimum 90% coverage

End-to-End API Tests

  • Pest + Symfony client
  • Run against full docker-compose stack
  • Cover happy path + all error codes from API.md

Load & Concurrency Tests (k6)

  • Script: tests/load/reserve-seats.js
  • Thresholds:
    • 95th percentile < 250ms
    • Error rate < 0.1%
    • No overselling under 5000 VU

Contract Tests

  • Future: Pact or Spring Cloud Contract for consumers of domain events