// AI wrote your tests. Would they catch a bug? // Teaching excerpts; see the explanation and boundaries on the episode page. // Start with the requirement function shipsFree(total: number) { return total >= 50; } // Two tests pass, but a mutant survives expect(shipsFree(49)).toBe(false); expect(shipsFree(51)).toBe(true); // Original: 50 >= 50 → true // Mutant: 50 > 50 → false // Test exactly 50 expect(shipsFree(50)).toBe(true); // Run Stryker with Vitest npm i -D @stryker-mutator/core @stryker-mutator/vitest-runner npx stryker init npx stryker run // Scope the code to mutate { "testRunner": "vitest", "mutate": ["src/shipping.ts"] }