| name | reconcile-tests |
| description | Add, update, or delete tests for changes in the current commit. |
| argument-hint | [extra guidance or areas to focus on] |
Add, update, or delete tests for changes made in the current jj commit.
Before starting, load /authoring-tests.
Goals
- Delete no longer applicable tests
- Update outdated test expectations
- Add tests for new behaviors
Target
jj show --git
Arguments: $ARGUMENTS
Reconcile tests for the target named in the arguments if given; otherwise the
changes in the current commit shown above; if there are no arguments and the
commit has no changes, ask the user what to reconcile tests for and stop.
Workflow
- Explore each deleted, updated, or added file, and identify:
- Deleted logic
- Modified logic (new branches, edge cases, changed behavior)
- New logic
- Find the test files that import or reference the changed code. Create them if
missing
- Run the relevant tests
- Examine failing tests and update them as necessary:
- Delete if no longer applicable
- Update if expectations are outdated
- Flag regressions to the user. Describe the changed behavior, the failing
test, and your hypothesis about why it's a bug. Ask how to proceed Go back
to step 3 after making updates until all tests pass
- Add tests for new behaviors
- Run the new tests
- Examine failing tests and update them as necessary:
- Update if there's a bug in the test
- Flag to the user if the tests caught a bug, Describe the behavior, the
failing test, and your hypothesis about why it's a bug. Ask how to proceed
Go back to step 7 after making updates
- Run tests with coverage if possible. If new logic is not covered, then go
back to step 5