Skip to content

Commit

Permalink
feat: Use custom test.js in example. TODO: Move to jest-preview
Browse files Browse the repository at this point in the history
  • Loading branch information
nvh95 committed Apr 26, 2022
1 parent ccdf71f commit 783a81a
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 1 deletion.
2 changes: 1 addition & 1 deletion examples/create-react-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test -- --config=jest.config.js",
"test": "node scripts/test.js",
"test:nc": "npm run test -- --no-cache",
"eject": "react-scripts eject",
"jest-preview": "jest-preview",
Expand Down
50 changes: 50 additions & 0 deletions examples/create-react-app/scripts/test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
// 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.
// Read config from react-scripts directly
require('react-scripts/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 or explicitly running all tests
if (
!process.env.CI &&
argv.indexOf('--watchAll') === -1 &&
argv.indexOf('--watchAll=false') === -1
) {
// https://github.com/facebook/create-react-app/issues/5210
const hasSourceControl = isInGitRepository() || isInMercurialRepository();
argv.push(hasSourceControl ? '--watch' : '--watchAll');
}

jest.run(argv);

0 comments on commit 783a81a

Please sign in to comment.