reconcile-tests

Add, update, or delete tests for changes in the current commit

SKILL.md

GitHub

Add, update, or delete tests for changes made in the current jj commit.

Before starting, load /authoring-tests.

Target

jj show --git

Arguments: $ARGUMENTS

Reconcile tests for the target named in the arguments if given. Otherwise reconcile 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.

Goals

  • Delete tests that no longer apply
  • Update outdated test expectations
  • Add tests for new behaviors

Workflow

  1. Explore each deleted, updated, or added file, and identify:
    • Deleted logic
    • Modified logic (new branches, edge cases, changed behavior)
    • New logic
  2. Find the test files that import or reference the changed code. Create them if missing
  3. Run the relevant tests
  4. Examine failing tests and update them as necessary:
    1. Delete if no longer applicable
    2. Update if expectations are outdated
    3. 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
  5. Add tests for new behaviors
  6. Run the new tests
  7. Examine failing tests and update them as necessary:
    1. Update if there's a bug in the test
    2. 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
  8. If the project has a coverage command, run it. If new logic is not covered, go back to step 5