← ClaudeAtlas

maji-testlisted

Generate disciplined test cases. Focus on behaviour not implementation, cover edge cases without bloat, name tests for the case not the function. Use when writing tests for new code or filling gaps in coverage.
Ijam18/MAJI-Skills · ★ 17 · AI & Automation · score 65
Install: claude install-skill Ijam18/MAJI-Skills
# maji-test — Disciplined Test Generation A skill that generates tests focused on behaviour and edge cases, not on padding coverage numbers. --- ## When to Use Type `maji-test <target>` where target is: - A function (`maji-test src/utils.ts:parseDate`) - A file (`maji-test src/auth.ts`) - A failing scenario (`maji-test "user submits empty form"`) --- ## Test Structure (per case) ``` test('[case description in plain English]', () => { // Arrange [setup minimum needed state] // Act [single action being tested] // Assert [single behaviour being verified] }) ``` One test = one case = one assertion (where reasonable). --- ## Cases to Cover (in this order of priority) ### 1. Happy Path (always) The normal expected use. If this breaks, the feature is unusable. ### 2. Edge Cases (often) - Empty input (`""`, `[]`, `{}`, `null`, `undefined`) - Boundary values (0, -1, max-int, very long strings) - Type-coerced values (string `"0"` vs number `0`) - Whitespace, special characters, unicode ### 3. Error Cases (when relevant) - Invalid input (wrong type, missing required field) - External service failures (timeout, 500 response) - Concurrency issues (if applicable) ### 4. Integration (selectively) - Cross-module behaviour - Real DB / real API calls (sparingly — slow tests are ignored tests) --- ## Naming Convention | ❌ Bad | ✅ Good | |---|---| | `test('login')` | `test('login returns user when credentials match')` | | `test('parseDate works')` | `test('par