diff options
author | Determinant <ted.sybil@gmail.com> | 2019-02-06 23:36:34 -0500 |
---|---|---|
committer | Determinant <ted.sybil@gmail.com> | 2019-02-06 23:36:34 -0500 |
commit | 13a2bd4f4aee6b4dec0ce799e9ba212693cbedf1 (patch) | |
tree | de455efa781bdb07101eaa3283971b057e8081a7 /scripts/test.js | |
parent | 96b08d7651a7ecddc15bc77ce5c453fbe4e12b12 (diff) |
eject from create-react-app
Diffstat (limited to 'scripts/test.js')
-rw-r--r-- | scripts/test.js | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/scripts/test.js b/scripts/test.js new file mode 100644 index 0000000..0b6e8cb --- /dev/null +++ b/scripts/test.js @@ -0,0 +1,53 @@ +'use strict'; + +// Do this as the first thing so that any code reading it knows the right env. +process.env.BABEL_ENV = 'test'; +process.env.NODE_ENV = 'test'; +process.env.PUBLIC_URL = ''; + +// Makes the script crash on unhandled rejections instead of silently +// ignoring them. In the future, promise rejections that are not handled will +// terminate the Node.js process with a non-zero exit code. +process.on('unhandledRejection', err => { + throw err; +}); + +// Ensure environment variables are read. +require('../config/env'); + + +const jest = require('jest'); +const execSync = require('child_process').execSync; +let argv = process.argv.slice(2); + +function isInGitRepository() { + try { + execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore' }); + return true; + } catch (e) { + return false; + } +} + +function isInMercurialRepository() { + try { + execSync('hg --cwd . root', { stdio: 'ignore' }); + return true; + } catch (e) { + return false; + } +} + +// Watch unless on CI, in coverage mode, or explicitly running all tests +if ( + !process.env.CI && + argv.indexOf('--coverage') === -1 && + argv.indexOf('--watchAll') === -1 +) { + // https://github.com/facebook/create-react-app/issues/5210 + const hasSourceControl = isInGitRepository() || isInMercurialRepository(); + argv.push(hasSourceControl ? '--watch' : '--watchAll'); +} + + +jest.run(argv); |