The jest-circus is now default runner, no need to depend on it explicitly.
The testEnvironment also changed its default to "node".
Also types/jest is now needless, we can use jest/globals instead.
https://jestjs.io/blog/2021/05/25/jest-27
`execSync` by default spawns a shell to exec the specified command. And,
without specifying an absolute path to the node binary, it will be
searched in `PATH` where yarn prepends a temporary directory containing
a shell script called **node** that wraps the original node binary with
exec, resulting in implicitly chaining a shell again.
On some Linux distros, the default non-interactive shell, such as the
Dash shell of Debian, silently discards dashes (`-`) in names of
environment variables. But GitHub Actions allows dashes in names of
input variables which are then converted to environment variables in the
form of `INPUT_<VARIABLE_NAME>`.
So the commit fix the error-prone test code by using execFileSync, which
by default exec directly without spawning a shell, to run node with its
absolute path.