Test and Fix Loop
Purpose
An autonomous loop for the agent to identify, analyze, and fix failing unit tests using Vitest.
Loop Logic
- •Identify: Run
pnpm testto identify failing tests. - •Analyze: Examine the test output to determine:
- •The failing test file and line number.
- •The expected vs actual values.
- •Refer to ../common-references/troubleshooting.md for common test failure patterns.
- •Fix: Apply the minimum necessary change to either the source code (if it's a bug) or the test code (if the test is outdated).
- •Verify: Re-run
pnpm test.- •If passed: Move to the next failing test or finish if all are resolved.
- •If failed: Analyze the new failure (or the same one if the fix was insufficient) and repeat the loop.
Termination Criteria
- •All tests pass (as reported by
pnpm test). - •Reached max iteration limit (default: 5).
- •The error persists after multiple distinct fix attempts, indicating a need for human intervention or a broader architectural change.
Examples
Scenario: Fixing a logic error
- •
pnpm testfails inpackages/common/src/math.test.tsbecauseadd(2, 2)returned5. - •Agent analyzes
packages/common/src/math.tsand finds a typoa + b + 1. - •Agent fixes the typo to
a + b. - •
pnpm testpasses.
Scenario: Updating a test after a deliberate change
- •
pnpm testfails because a UI component's text changed from "Submit" to "Confirm". - •Agent confirms the change was intentional.
- •
pnpm testpasses.
Resources
- •pnpm Commands for Node.js: Common commands for testing and managing dependencies.
- •Testing Best Practices: Project-specific testing guidelines.