| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #!/bin/bash
- declare -a vitest_args=("$@")
- has_mocha_test=0
- has_mocha_mjs_test=0
- has_vitest_test=0
- mocha_mjs_dirs=()
- for dir_path in "$@"; do
- if [ -n "$(find "$dir_path" -name "*.js" -type f -print -quit 2>/dev/null)" ]; then
- has_mocha_test=1
- fi
- if [ -n "$(find "$dir_path" -name "*Tests.mjs" -type f -print -quit 2>/dev/null)" ]; then
- has_mocha_mjs_test=1
- mocha_mjs_dirs+=("$dir_path/**/*Tests.mjs")
- fi
- if [ -n "$(find "$dir_path" -name "*.test.mjs" -type f -print -quit 2>/dev/null)" ]; then
- has_vitest_test=1
- fi
- done
- if [[ -n "$MOCHA_GREP" ]]; then
- vitest_args+=("--testNamePattern" "$MOCHA_GREP")
- fi
- if [[ -n "$VITEST_NO_CACHE" ]]; then
- echo "Disabling cache for vitest."
- vitest_args+=("--no-cache")
- fi
- echo "Running unit tests in directory: $*"
- # Remove this if/else when we have converted all module tests to vitest.
- if (( has_vitest_test == 1 )); then
- npm run test:unit:esm -- "${vitest_args[@]}"
- vitest_status=$?
- else
- echo "No vitest tests found in $*, skipping vitest step."
- vitest_status=0
- fi
- if (( has_mocha_test == 1 )); then
- mocha --recursive --timeout 25000 --exit --grep="$MOCHA_GREP" --require test/unit/bootstrap.js --extension=js "$@"
- mocha_status=$?
- fi
- # Remove this if/else when we have converted all module tests to vitest.
- if (( has_mocha_mjs_test == 1)); then
- mocha --recursive --timeout 25000 --exit --grep="$MOCHA_GREP" --require test/unit/bootstrap.js --extension=mjs "${mocha_mjs_dirs[@]}"
- mocha_status=$((mocha_status != 0 ? mocha_status : $?))
- fi
- if (( has_mocha_mjs_test == 0 && has_mocha_test == 0 )); then
- echo "No mocha tests found in $TARGET_DIR, skipping mocha step."
- mocha_status=0
- fi
- if [ "$mocha_status" -eq 0 ] && [ "$vitest_status" -eq 0 ]; then
- exit 0
- fi
- # Report status briefly at the end for failures
- if [ "$mocha_status" -ne 0 ]; then
- echo "Mocha tests failed with status: $mocha_status"
- fi
- if [ "$vitest_status" -ne 0 ]; then
- echo "Vitest tests failed with status: $vitest_status"
- fi
- exit 1
|