unslop-tests

Detects and fixes weak test patterns in Vitest, Jest, Playwright, and Mocha suites.

113|17|Updated Oct 5, 2025
One-click install
npx skills add https://github.com/jaktestowac/awesome-copilot-for-testers --skill unslop-tests-jaktestowac
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: unslop-tests
Source: https://github.com/jaktestowac/awesome-copilot-for-testers/tree/main/plugins/unslop-tests/skills/unslop-tests
Command: npx skills add https://github.com/jaktestowac/awesome-copilot-for-testers --skill unslop-tests-jaktestowac

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? AI-generated and hastily written test suites often pass while proving nothing: tautological assertions, mock-only tests, hardcoded waits, retries masking races, and coverage theater. This Skill audits test code for 40 named anti-patterns, ranks them by severity, and proves the critical ones by deliberately breaking production code and watching whether the test notices. ## Core Features & Use Cases - Tiered pattern detection: Scans tests for 40 tells across assertions, determinism, test doubles, naming, data, and browser end-to-end code, ranked Tier 1 (test is a lie) through Tier 3 (unreadable). - Mutation-based proof: For every Tier 1 finding, breaks the claimed behavior in production code, runs the single test, and pastes the command and output showing it stayed green. - Framework-specific fixes: Translates each tell into Vitest, Jest, Playwright, and Mocha idioms, including grep patterns suitable for CI. - Use Case: After an AI assistant generates a Playwright suite, run this audit to find that retries: 2 in the config is hiding a real race, prove it with --repeat-each 50 --retries 0, and replace the hardcoded wait with a web-first assertion. ## Quick Start Audit the tests in my current diff against main and report every weak assertion with proof by execution.

Frequently Asked Questions about unslop-tests

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find tests that pass but prove nothing?▼

Scan for tautological assertions, toBeTruthy-style checks that cannot fail, and mock-only tests where every collaborator is stubbed. Then prove each finding by breaking the behavior in production code and confirming the test stays green.

How to fix flaky Playwright tests without retries?▼

Replace page.waitForTimeout with web-first assertions like await expect(locator).toBeVisible() or waitForResponse, which poll until the condition holds. Remove global retries, since they convert real races into reported passes.

What is a mutation check for test quality?▼

A mutation check breaks one behavior in production code with a minimal edit, runs the single test claiming to cover it, and verifies the test fails. If it stays green, the assertion is too weak; restore the code afterward.

Does this work with Jest and Vitest test suites?▼

Yes, the framework-spellings reference maps every anti-pattern to Vitest, Jest, Playwright, and Mocha syntax, including grep commands for CI. Fixes are given in each runner's own idiom, such as vi.useFakeTimers or test.each.

Why do my tests pass alone but fail in the full suite?▼

That pattern indicates leaked or shared state between tests, such as module-scope fixtures mutated across cases. Run the file alone, in random order, and with parallelism toggled to isolate whether the cause is order dependence or a shared resource.

When should snapshots be used as test assertions?▼

Snapshots are appropriate only when the exact output shape is the contract and the snapshot is small enough for a reviewer to read the diff. As the sole assertion on behavior, they hide defects and turn red in bulk on unrelated changes.