{"repo":"citypaul/scenarist","free":true,"listed":false,"github":"https://github.com/citypaul/scenarist","clone":"git clone https://github.com/citypaul/scenarist.git","description":"E2E testing for Node.js with instant scenario switching. Run your real app—mock only external APIs. Express & Next.js adapters.","language":"TypeScript","stars":29,"topics":["e2e-testing","express","integration-testing","mock-service-worker","msw","nextjs","nodejs","playwright","testing","testing-tools"],"license":"MIT","category":"dev-tools","readme_excerpt":"Scenarist 🎭 Scenario-Based Testing for Modern Web Applications. Switch Backend States Instantly. Run Tests in Parallel. Test your Next.js Server Components, Express routes, and API handlers with controlled external API responses. No app restarts. No test conflicts. Built on MSW with runtime scenario management and test ID isolation. Express and Next.js adapters available—your real application code runs, only external HTTP calls are mocked. What is Scenario-Based Testing? Scenario-based testing is an integration testing approach where your real application code executes while external dependencies (third-party APIs, microservices) return controlled responses. Unlike true end-to-end tests that use zero mocks, scenario-based tests mock only the external services you don't control. The key distinction: Testing Approach Your Code External APIs Best For ------------------------ --------- ------------- ------------------------------------------------- Unit Tests Mocked Mocked Isolated function logic Scenario-Based Tests Real Mocked Application behavior with controlled dependencies End-to-End Tests Real Real Full system validation (production-like) Why \"scenario-based\"? Because you define complete backend scenarios (success, error, timeout, user tiers) and switch between them at runtime. Each test selects a scenario that describes the complete external API state, enabling comprehensive testing without external dependencies. --- 📖 Documentation Full documentation at scenarist.io Top","default_branch":null,"files":null,"tree":[],"storefront":"/r/citypaul","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/citypaul/scenarist/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}