This commit introduces a new feature to track test coverage over time and warn when it drops. The new `/core:coverage` command can be used to display the current coverage, compare it to the last commit, and show a historical trend. A pre-commit hook has also been added to warn when coverage drops. Key changes: - Created `claude/code/commands/coverage.sh` to handle coverage calculation, history tracking, and reporting. - Created `claude/code/scripts/check-coverage.sh` to be used as a pre-commit hook. - Created `.coverage-history.json` to store coverage history. - Updated `claude/code/hooks.json` to add the new pre-commit hook. Known limitations: - The actual test coverage calculation is not implemented. A mock value is used as a placeholder. This is because I was unable to find the project's testing framework or a command to generate test coverage. A `TODO` has been added to the `coverage.sh` script to indicate where the real command should be added. - The pre-commit hook is not being triggered. I have debugged the issue extensively, but the cause is still unknown. The `check-coverage.sh` script is fully functional and can be run manually.
22 lines
648 B
Bash
Executable file
22 lines
648 B
Bash
Executable file
#!/bin/bash
|
|
# Check for a drop in test coverage.
|
|
|
|
set -e
|
|
|
|
# Source the main coverage script to use its functions
|
|
source claude/code/commands/coverage.sh
|
|
|
|
# Read the input from the hook system
|
|
read -r input
|
|
|
|
# Get current and previous coverage
|
|
CURRENT_COVERAGE=$(get_current_coverage)
|
|
PREVIOUS_COVERAGE=$(get_previous_coverage)
|
|
|
|
# Compare coverage and print warning to stderr
|
|
if awk -v current="$CURRENT_COVERAGE" -v previous="$PREVIOUS_COVERAGE" 'BEGIN {exit !(current < previous)}'; then
|
|
echo "⚠️ Test coverage dropped from $PREVIOUS_COVERAGE% to $CURRENT_COVERAGE%" >&2
|
|
fi
|
|
|
|
# Pass the original input through to the next hook
|
|
echo "$input"
|