---
issue: 35
issue_title: "Align #21 test files with updated mock-cleanup and node:* default-export rules"
---

# Retro: #35 — Align #21 test files with updated mock-cleanup and node:\* default-export rules

## Final Retrospective (2026-05-03T05:58:17Z)

### Session summary

Planned, implemented, and shipped a test-infrastructure cleanup that brought four test files written in #21 into conformance with two AGENTS.md rules added during the #21 retro.
All four files were updated in four atomic commits; `npx vitest run` and `npm run build` stayed green throughout; the release-please PR for v3.0.2 was merged at the end.

### Observations

#### What went well

- **Nuance caught at plan time, not implementation time.**
  The plan identified upfront that `compileWildcardPatterns` has a non-trivial default implementation in its `vi.mock()` factory (it transforms a patterns object into a compiled array), and that `mockReset()` would wipe it — meaning `mockClear()` was the right call for that stub while `mockReset()` was fine for the others.
  Catching this during planning prevented a mid-implementation red-herring debugging pass.

- **Atomic per-file commits.**
  One commit per test file made the CI history clean and each step independently revertable.

#### What caused friction (agent side)

None observed.
The issue was tightly scoped, the plan was accurate, and the implementation matched the design exactly.

#### What caused friction (user side)

- The user asked whether the `mockClear` vs `mockReset` distinction was from authoritative sources before confirming the AGENTS.md sharpening.
  The existing rule wrote `(or .mockClear())` parenthetically without explaining when to choose either option, which left room for doubt.
  Impact: one extra round-trip before the retro change was confirmed; no rework.

### Broader pattern

This issue was a retroactive cleanup of rules added during the #21 retro.
The sequence — (1) add rule to `AGENTS.md`, (2) notice existing files violate it, (3) file a follow-up issue — is the correct pattern.
One refinement worth noting: the moment a new testing rule is added to `AGENTS.md`, a quick scan for pre-existing violations and an immediate follow-up issue (if any are found) would collapse steps 2 and 3 into the retro that adds the rule.

### Changes made

1. Sharpened the `mockReset` vs `mockClear` rule in `AGENTS.md` § Testing (lines 107–109):
   replaced the parenthetical "(or `.mockClear()`)" with two explicit sentences explaining
   when to use each, sourced from official Vitest documentation.
2. Created `docs/retro/0035-align-test-mock-cleanup-rules.md` (this file).
