20 lines
886 B
Bash
20 lines
886 B
Bash
#!/usr/bin/env bash
|
|
set -eEuo pipefail
|
|
|
|
#
|
|
# As of Node 20, the --test parameter does not support globbing, and it does not
|
|
# support variable Windows paths. We also cannot invoke the test runner
|
|
# directly, because while it has an API, there's no way to force it to transpile
|
|
# the Typescript into JavaScript before passing it to the runner.
|
|
#
|
|
# So we're left with this solution, which shells out to Node to list all files
|
|
# that end in *.test.ts (excluding node_modules/), and then execs out to that
|
|
# process. We have to exec so the stderr/stdout and exit code is appropriately
|
|
# fed to the caller.
|
|
#
|
|
|
|
FILES="$(node -e "process.stdout.write(require('node:fs').readdirSync('./', { recursive: true }).filter((e) => {return e.endsWith('.test.ts') && !e.startsWith('node_modules');}).sort().join(' '));")"
|
|
|
|
set -x
|
|
exec node --require ts-node/register --test-reporter spec --test ${FILES}
|