#!/usr/bin/env node // 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('react-scripts/config/env'); const jest = require('jest'); const argv = process.argv.slice(2); // This is not necessary after eject because we embed config into package.json. const createJestConfig = require('react-scripts/scripts/utils/createJestConfig'); const path = require('path'); const paths = require('react-scripts/config/paths'); const config = createJestConfig( relativePath => path.resolve( __dirname, '../../../node_modules/react-scripts', relativePath ), path.resolve(__dirname, '../../../'), false ); // patch config.testEnvironment = 'node'; config.transform = Object.assign( {}, { '\\.(gql|graphql)$': 'jest-transform-graphql' }, config.transform ); config.testMatch = [ '/packages/my-joyent/src/**/**/__tests__/**/*.js', '/packages/my-joyent/src/**/**/**/?(*.)(spec|test).js' ]; config.moduleNameMapper = Object.assign({}, config.moduleNameMapper, { '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '/packages/my-joyent/test/file-mock.js', '^@root/(.*)$': '/packages/my-joyent/src/$1', '^@mocks/(.*)$': '/packages/my-joyent/test/mocks$1', '^@components/(.*)$': '/packages/my-joyent/src/components/$1', '^@containers/(.*)$': '/packages/my-joyent/src/containers/$1', '^@graphql/(.*)$': '/packages/my-joyent/src/graphql/$1', '^@assets/(.*)$': '/packages/my-joyent/src/assets/$1', '^@state/(.*)$': '/packages/my-joyent/src/state/$1' }); argv.push('--config', JSON.stringify(config)); jest.run(argv);