blob: d64d270eaca3029a354ee3ce62579b1f4d7e749d [file] [log] [blame]
if [[ $# -ne 1 ]]; then
echo "Launches a Karma test in interactive mode for in-browser debugging. It watches for file"
echo "changes in the test's directory and relaunches the Karma test runner when any such files"
echo "change."
echo "Usage: $0 <path to custom element's directory>"
echo "As an example, the following two commands run the same Karma test:"
echo " $0 golden/modules/digest-details-sk"
echo " bazelisk run --config=remote //golden/modules/digest-details-sk:digest-details-sk_test"
echo "This script uses the \"entr\" command to launch a Karma test in interactive mode via"
echo "\"bazelisk run\". When the files in the custom element's directory change, entr will"
echo "reexecute the bazelisk command to rebuild and run the element's Karma test in interactive"
echo "mode with the latest changes. Users must manually refresh the browser to see the changes."
echo "Note: This script MUST be executed from the repository's root directory."
echo "Note: This script only works if the Bazel label of the test is of the form"
echo " //path/to/<MODULE>:<MODULE>_test."
exit 1
# Remove any trailing slashes that might arise from using Bash's autocompletion
# via the tab key, e.g. "path/to/foo/" becomes "path/to/foo".
DIR=$(echo $1 | sed 's:/*$::')
# Extract the Bazel target name
TARGET=$(basename $DIR)_test
git ls-files | entr -r bazelisk run --config=remote //$DIR:$TARGET
# For some reason entr leaves the terminal in a corrupted state after being killed with Ctrl+C. The
# following commands restore the terminal to a workable state.