noredink-ui/script/format-axe-report.sh

37 lines
1.4 KiB
Bash
Raw Normal View History

2019-07-24 00:55:31 +03:00
#!/usr/bin/env bash
set -euo pipefail
JSON_FILE="${1:-}"
if test -z "$JSON_FILE"; then
echo "Please specify a report JSON file as the first argument."
exit 1
fi
jq -r -f script/axe-report.jq "$JSON_FILE"
# Hey there! Did this script tell you to check out this file because the
# expected error count went down? Well done! Just change this number to the new
# value.
2020-03-24 21:49:29 +03:00
TARGET_ERRORS=24
2019-07-24 00:55:31 +03:00
# ideally we'd fail on any failures, but we have had a bunch build up over time!
# So right now, we need to fail if the error count is not exactly what we
# expect. This failure reminds us to come back and ratchet down the number of
# failures to the correct value.
NUM_ERRORS="$(jq '.violations | map(.nodes | length) | add' "$JSON_FILE")"
if test "$NUM_ERRORS" -ne "$TARGET_ERRORS"; then
2019-07-24 00:59:14 +03:00
echo "got $NUM_ERRORS errors, but expected $TARGET_ERRORS."
echo
echo 'If it went down, hooray!'
echo "Check out ${0:-} and change the count to the reported value above."
2019-07-24 01:10:08 +03:00
echo
echo "If it went up, let's fix it instead."
2019-07-24 01:10:08 +03:00
echo "Since there are so many errors right now, a decent debugging strategy is:"
echo
echo " 1. save this output somewhere ('make axe-report > errors.new')"
2019-07-24 01:10:08 +03:00
echo " 2. undo your changes ('git stash' or 'checkout master')"
echo " 3. regenerate the log with 'make axe-report > errors.old'"
2019-11-15 19:27:34 +03:00
echo " 4. see what's new with 'diff -u errors.old errors.new'"
2019-07-29 21:47:50 +03:00
exit 1
2019-07-24 00:55:31 +03:00
fi