agentsclimarketplace

Unit test validator

Skill dayvisonassis/sdd-skills/skills/unit-test-validator

Spec-driven development skills for Claude Code: PRD → spec/contract → implement → contract-based evaluation with auto-fix

Install
npx -y skills add dayvisonassis/sdd-skills --skill unit-test-validator

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Audits unit tests in the PABX monorepo (Angular frontend .spec.ts + Node.js backend __tests__/unit/) against the unit-test-writer rules, producing a compliance report with a PASS/FAIL/PASS WITH WARNINGS verdict, per-violation severity, and fix suggestions. Read-only — never writes or fixes tests. Dispatched by the evaluator to confirm a corrected test conforms before resuming evaluation, or run directly by a user.

SKILL.md

5.1 KB, as published. Nobody here has run it

Unit Test Validator (PABX)

Audit unit test files to ensure they comply with every rule the unit-test-writer enforces. Read-only: produce a detailed compliance report; never modify test or production files, never execute tests (static analysis only).

Project scope: PABX monorepo. The full rule set is in ../unit-test-writer/references/pabx-rules.md — validate against it.

Scope:

  • Frontend: apps/frontend/*.spec.ts, co-located with the source.
  • Backend: apps/backend/__tests__/unit/*.test.js, mirroring src/ (1:1).

INPUT

  • test_file_path (required) — test file or directory to validate.
  • checklist_file_path (optional) — the .unit-test.md to cross-reference coverage.
  • target_file (optional) — the source under test, to verify coverage completeness.
  • severity_filter (optional) — critical | major | minor (default: all).

OUTPUT

A compliance report (English) with: summary counts by severity, applicable rule categories, overall verdict (PASS = 0 critical + 0 major; PASS WITH WARNINGS = 0 critical, some major/minor; FAIL = ≥1 critical), each violation ([SEVERITY] Rule-ID, location, description, expected, found, fix), coverage analysis, performance analysis (backend), and positive findings. When dispatched by the evaluator, the verdict is the signal it consumes.


EXECUTION STEPS (3 Phases)

Phase 1 — Structural Analysis

Detect scope (frontend .spec.ts vs backend .test.js). Inventory describe/it/hooks/helpers. Map checklist ↔ tests (if provided) and source methods ↔ tests (if target_file given). Note all imports and mock-vs-import order. Identify mocks and cleanup points. Verify order: mocks → imports → describe → beforeEach → tests → afterEach.

Phase 2 — Rule-by-Rule Validation

Check EVERY applicable rule from ../unit-test-writer/references/pabx-rules.md, grouped as:

  • Language & Naming [ALL, CRITICAL] — English only; descriptive names; no double blank lines.
  • Test Structure [ALL, MAJOR] — AAA; independence; deterministic; no prod modification; behavior over implementation.
  • Mock & Isolation [ALL, CRITICAL] — all deps mocked; jest.clearAllMocks(); no real deps imported.
  • Frontend Component [FE, CRITICAL] — real component (no inline @Component copy); TestBed.resetTestingModule(); fixture destroy; subscription cleanup; NO_ERRORS_SCHEMA; jQuery mock before imports; jest.setTimeout; previous-fixture cleanup.
  • Frontend Service [FE, CRITICAL] — manual new Service(...); no TestBed.inject(); no HttpClientTestingModule; localStorage mock before imports; per-method httpClientMock.
  • Frontend Async [FE, MAJOR] — fakeAsync+tick; multiple tick() for chains; done for service Observables.
  • Backend Location/Structure [BE, MAJOR] — 1:1 mapping; req/res/next pattern; no DB access.
  • Backend Promise.all() [BE, CRITICAL] — new mock per dbRead/dbWrite; clone() returns new object; .then via Promise.resolve().then.bind(); fast execution.
  • Coverage [ALL, MAJOR] — public methods, error paths, edge cases, boundaries, checklist alignment.
  • Forbidden Practices [ALL, CRITICAL] — no prod modification, real deps, shared state, Portuguese, inline components, TestBed.inject, HttpClientTestingModule, legacy Karma/Jasmine, slow-model mocks.
  • Resource Cleanup [ALL, MAJOR] — mock reset, fixture destroy, subscription cleanup, TestBed reset, no leaks.

Do not skip rules even after finding criticals. State which categories were skipped and why (scope mismatch, e.g. backend Promise.all skipped for a frontend file).

Phase 3 — Compliance Report

Emit the full report per the OUTPUT format. Verdict is derived strictly from the counts.


RULES

Always:

  • Validate against ../unit-test-writer/references/pabx-rules.md; check every applicable rule.
  • Give exact line/block locations and a concrete fix (with code example) per violation.
  • Respect scope boundaries (never apply frontend rules to backend tests or vice versa).
  • Derive the verdict strictly from severity counts; report positives too. Output in English.

Never:

  • Modify any test or production file (read-only, audit-only).
  • Execute the tests (static analysis only).
  • Mark PASS when any CRITICAL exists; produce partial reports.

Edge Cases

  • Empty test file: CRITICAL — file exists but has no tests.
  • Frontend service using TestBed: CRITICAL even if tests pass (forbidden pattern).
  • Backend real DB calls: CRITICAL. Promise.all() without the dedicated mock: CRITICAL.
  • Directory input: one report per file + a summary. Ambiguous scope: validate both and note it.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.