From 5c352cbc3da1f016dae4a0aa0f093717d884d39f Mon Sep 17 00:00:00 2001 From: Enoah Netzach Date: Fri, 27 Jan 2017 15:10:25 +0100 Subject: [PATCH 1/3] E2E: run tests when react is ready --- .../kitchensink/.template.dependencies.json | 2 +- .../kitchensink/integration/initDOM.js | 18 +++++++----------- .../fixtures/kitchensink/src/App.js | 12 +++++++++++- tasks/e2e-kitchensink.sh | 8 +++++--- 4 files changed, 24 insertions(+), 16 deletions(-) diff --git a/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json b/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json index 8adac45708d..62e0d34a35c 100644 --- a/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json +++ b/packages/react-scripts/fixtures/kitchensink/.template.dependencies.json @@ -1,7 +1,7 @@ { "dependencies": { "babel-preset-latest": "6.16.0", - "babel-register": "6.18.0", + "babel-register": "6.22.0", "babel-polyfill": "6.20.0", "chai": "3.5.0", "jsdom": "9.8.3", diff --git a/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js b/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js index c04e60d4c87..48c7383b507 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js @@ -5,9 +5,7 @@ const path = require('path') let getMarkup let resourceLoader -// this value could be tweaked in order to let the resource -// retriever get every file and jsdom execute react -let timeToWaitForJsToExecute +let resolveOnReady if (process.env.E2E_FILE) { const file = path.isAbsolute(process.env.E2E_FILE) @@ -22,7 +20,7 @@ if (process.env.E2E_FILE) { fs.readFileSync(path.join(path.dirname(file), resource.url.pathname), 'utf8') ) - timeToWaitForJsToExecute = 0 + resolveOnReady = (doc, resolve) => doc.defaultView.addEventListener('load', () => resolve(doc), false) } else if (process.env.E2E_URL) { getMarkup = () => new Promise(resolve => { http.get(process.env.E2E_URL, (res) => { @@ -36,7 +34,7 @@ if (process.env.E2E_FILE) { return resource.defaultFetch(callback) } - timeToWaitForJsToExecute = 100 + resolveOnReady = (doc, resolve) => doc.addEventListener('ReactFeatureDidMount', () => resolve(doc), false) } else { it.only('can run jsdom (at least one of "E2E_FILE" or "E2E_URL" environment variables must be provided)', () => { expect(new Error('This isn\'t the error you are looking for.')).toBeUndefined() @@ -47,16 +45,14 @@ export default feature => new Promise(async resolve => { const markup = await getMarkup() const host = process.env.E2E_URL || 'http://localhost:3000' const doc = jsdom.jsdom(markup, { - features : { - FetchExternalResources : ['script', 'css'], - ProcessExternalResources : ['script'], + features: { + FetchExternalResources: ['script', 'css'], + ProcessExternalResources: ['script'], }, resourceLoader, url: `${host}#${feature}`, virtualConsole: jsdom.createVirtualConsole().sendTo(console), }) - doc.defaultView.addEventListener('load', () => { - setTimeout(() => resolve(doc), timeToWaitForJsToExecute) - }, false) + resolveOnReady(doc, resolve) }) diff --git a/packages/react-scripts/fixtures/kitchensink/src/App.js b/packages/react-scripts/fixtures/kitchensink/src/App.js index 66cd45541f7..9b0884edfb5 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/App.js +++ b/packages/react-scripts/fixtures/kitchensink/src/App.js @@ -1,5 +1,15 @@ import React from 'react'; +class BuiltEmitter extends React.Component { + componentDidMount() { + document.dispatchEvent(new Event('ReactFeatureDidMount')); + } + + render() { + return
{this.props.children}
+ } +} + class App extends React.Component { constructor(props) { super(props); @@ -96,7 +106,7 @@ class App extends React.Component { render() { const Feature = this.state.feature; - return Feature ? : null; + return Feature ? : null; } } diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index eecd6ed62a7..af173169535 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -151,7 +151,7 @@ E2E_URL="http://localhost:3001" \ E2E_FILE=./build/index.html \ CI=true \ NODE_PATH=src \ - node_modules/.bin/mocha --require babel-register --require babel-polyfill integration/*.js + node_modules/.bin/mocha --require babel-register --require babel-polyfill integration/*.test.js # Uncomment when snapshot testing is enabled by default: # test -e src/__snapshots__/App.test.js.snap @@ -182,6 +182,8 @@ NODE_PATH=src REACT_APP_SHELL_ENV_MESSAGE=fromtheshell npm run build test -e build/*.html test -e build/static/js/main.*.js +cat package.json + # Unit tests REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ CI=true \ @@ -199,14 +201,14 @@ E2E_URL="http://localhost:3002" \ REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ CI=true NODE_PATH=src \ NODE_ENV=production \ - node_modules/.bin/mocha --require babel-register --require babel-polyfill integration/*.js + node_modules/.bin/mocha --require babel-register --require babel-polyfill integration/*.test.js # Test "production" environment E2E_FILE=./build/index.html \ CI=true \ NODE_ENV=production \ NODE_PATH=src \ - node_modules/.bin/mocha --require babel-register --require babel-polyfill integration/*.js + node_modules/.bin/mocha --require babel-register --require babel-polyfill integration/*.test.js # Uncomment when snapshot testing is enabled by default: # test -e src/__snapshots__/App.test.js.snap From 0f5e1b1b344fcf67a2c924463d3147a9dc169daf Mon Sep 17 00:00:00 2001 From: Enoah Netzach Date: Sat, 28 Jan 2017 15:41:42 +0100 Subject: [PATCH 2/3] Entangle e2e with callbacks --- .../fixtures/kitchensink/integration/initDOM.js | 13 ++++--------- .../fixtures/kitchensink/src/App.js | 16 ++++++++++++++-- .../kitchensink/src/features/env/NodePath.js | 7 ++++++- .../src/features/syntax/ArrayDestructuring.js | 7 ++++++- .../src/features/syntax/ArraySpread.js | 7 ++++++- .../src/features/syntax/AsyncAwait.js | 7 ++++++- .../src/features/syntax/ComputedProperties.js | 7 ++++++- .../src/features/syntax/CustomInterpolation.js | 7 ++++++- .../src/features/syntax/DefaultParameters.js | 7 ++++++- .../src/features/syntax/DestructuringAndAwait.js | 7 ++++++- .../src/features/syntax/Generators.js | 7 ++++++- .../src/features/syntax/ObjectDestructuring.js | 7 ++++++- .../src/features/syntax/ObjectSpread.js | 7 ++++++- .../kitchensink/src/features/syntax/Promises.js | 7 ++++++- .../src/features/syntax/RestAndDefault.js | 7 ++++++- .../src/features/syntax/RestParameters.js | 7 ++++++- .../src/features/syntax/TemplateInterpolation.js | 7 ++++++- tasks/e2e-kitchensink.sh | 2 -- 18 files changed, 108 insertions(+), 28 deletions(-) diff --git a/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js b/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js index 48c7383b507..21e9c701a47 100644 --- a/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js +++ b/packages/react-scripts/fixtures/kitchensink/integration/initDOM.js @@ -5,7 +5,6 @@ const path = require('path') let getMarkup let resourceLoader -let resolveOnReady if (process.env.E2E_FILE) { const file = path.isAbsolute(process.env.E2E_FILE) @@ -19,8 +18,6 @@ if (process.env.E2E_FILE) { null, fs.readFileSync(path.join(path.dirname(file), resource.url.pathname), 'utf8') ) - - resolveOnReady = (doc, resolve) => doc.defaultView.addEventListener('load', () => resolve(doc), false) } else if (process.env.E2E_URL) { getMarkup = () => new Promise(resolve => { http.get(process.env.E2E_URL, (res) => { @@ -30,11 +27,7 @@ if (process.env.E2E_FILE) { }) }) - resourceLoader = (resource, callback) => { - return resource.defaultFetch(callback) - } - - resolveOnReady = (doc, resolve) => doc.addEventListener('ReactFeatureDidMount', () => resolve(doc), false) + resourceLoader = (resource, callback) => resource.defaultFetch(callback) } else { it.only('can run jsdom (at least one of "E2E_FILE" or "E2E_URL" environment variables must be provided)', () => { expect(new Error('This isn\'t the error you are looking for.')).toBeUndefined() @@ -49,10 +42,12 @@ export default feature => new Promise(async resolve => { FetchExternalResources: ['script', 'css'], ProcessExternalResources: ['script'], }, + created: (_, win) => win.addEventListener('ReactFeatureDidMount', () => resolve(doc), true), + deferClose: true, resourceLoader, url: `${host}#${feature}`, virtualConsole: jsdom.createVirtualConsole().sendTo(console), }) - resolveOnReady(doc, resolve) + doc.close() }) diff --git a/packages/react-scripts/fixtures/kitchensink/src/App.js b/packages/react-scripts/fixtures/kitchensink/src/App.js index 9b0884edfb5..04641535ac7 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/App.js +++ b/packages/react-scripts/fixtures/kitchensink/src/App.js @@ -1,12 +1,24 @@ import React from 'react'; class BuiltEmitter extends React.Component { + constructor(props) { + super(props) + + this.callWhenDone = done => done(); + } + componentDidMount() { - document.dispatchEvent(new Event('ReactFeatureDidMount')); + this.callWhenDone(() => document.dispatchEvent(new Event('ReactFeatureDidMount'))); } render() { - return
{this.props.children}
+ const feature = React.cloneElement(React.Children.only(this.props.children), { + setCallWhenDone: done => { + this.callWhenDone = done; + } + }); + + return
{feature}
; } } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.js b/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.js index 2d2f474f19e..1644b49ca04 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/env/NodePath.js @@ -5,12 +5,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = load(); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArrayDestructuring.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArrayDestructuring.js index 38e35120960..1ee751af71f 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArrayDestructuring.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArrayDestructuring.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = load(); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArraySpread.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArraySpread.js index d7d9a459133..be6311980d7 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArraySpread.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ArraySpread.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = load([{ id: 42, name: '42' }]); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/AsyncAwait.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/AsyncAwait.js index 01c68640575..84dd42e0a9b 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/AsyncAwait.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/AsyncAwait.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = await load(); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ComputedProperties.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ComputedProperties.js index c7a24cb7f3d..b6111a149d9 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ComputedProperties.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ComputedProperties.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = load('user_'); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/CustomInterpolation.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/CustomInterpolation.js index 03298968375..8184d3bd4ba 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/CustomInterpolation.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/CustomInterpolation.js @@ -18,12 +18,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = load(); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DefaultParameters.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DefaultParameters.js index 3a676358a92..637a239d7a4 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DefaultParameters.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DefaultParameters.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = load(); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DestructuringAndAwait.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DestructuringAndAwait.js index 291ed3bccc4..e28e0bb3643 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DestructuringAndAwait.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/DestructuringAndAwait.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const { users } = await load(); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Generators.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Generators.js index 4f2fc95ca6f..a20fc19b75f 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Generators.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Generators.js @@ -12,6 +12,11 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } @@ -20,7 +25,7 @@ export default class extends React.Component { for (let user of load(4)) { users.push(user); } - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ObjectDestructuring.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ObjectDestructuring.js index c6edbee2702..db377cee5e6 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ObjectDestructuring.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ObjectDestructuring.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = load(); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ObjectSpread.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ObjectSpread.js index ca41004f9f6..72356fb9404 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ObjectSpread.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/ObjectSpread.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = load({ age: 42 }); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Promises.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Promises.js index c0e13c81ebf..9eb8c20f790 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Promises.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/Promises.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } componentDidMount() { load().then(users => { - this.setState({ users }); + this.setState({ users }, () => this.done()); }); } diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestAndDefault.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestAndDefault.js index a977e8c8340..94b75980835 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestAndDefault.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestAndDefault.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = load(); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestParameters.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestParameters.js index 9dcc33fa00e..c1cd63e887e 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestParameters.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/RestParameters.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = load({ id: 0, user: { id: 42, name: '42' } }); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/TemplateInterpolation.js b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/TemplateInterpolation.js index 505ee6173d5..33b004722d8 100644 --- a/packages/react-scripts/fixtures/kitchensink/src/features/syntax/TemplateInterpolation.js +++ b/packages/react-scripts/fixtures/kitchensink/src/features/syntax/TemplateInterpolation.js @@ -13,12 +13,17 @@ export default class extends React.Component { constructor(props) { super(props); + this.done = () => {}; + this.props.setCallWhenDone && this.props.setCallWhenDone((done) => { + this.done = done; + }); + this.state = { users: [] }; } async componentDidMount() { const users = load('user_'); - this.setState({ users }); + this.setState({ users }, () => this.done()); } render() { diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index af173169535..4e455e7e116 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -182,8 +182,6 @@ NODE_PATH=src REACT_APP_SHELL_ENV_MESSAGE=fromtheshell npm run build test -e build/*.html test -e build/static/js/main.*.js -cat package.json - # Unit tests REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ CI=true \ From 62b3bf9e7d845e940573350008155b8867d52f19 Mon Sep 17 00:00:00 2001 From: Enoah Netzach Date: Mon, 30 Jan 2017 13:41:23 +0100 Subject: [PATCH 3/3] Remove unused e2e lines --- tasks/e2e-installs.sh | 10 ---------- tasks/e2e-kitchensink.sh | 26 -------------------------- 2 files changed, 36 deletions(-) diff --git a/tasks/e2e-installs.sh b/tasks/e2e-installs.sh index f3c1d8d3bd0..7bb4c0392f2 100755 --- a/tasks/e2e-installs.sh +++ b/tasks/e2e-installs.sh @@ -22,8 +22,6 @@ temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'` function cleanup { echo 'Cleaning up.' cd $root_path - # Uncomment when snapshot testing is enabled by default: - # rm ./packages/react-scripts/template/src/__snapshots__/App.test.js.snap rm -rf $temp_cli_path $temp_app_path } @@ -60,14 +58,6 @@ root_path=$PWD npm install -# If the node version is < 4, the script should just give an error. -if [ `node --version | sed -e 's/^v//' -e 's/\..\+//g'` -lt 4 ] -then - cd $temp_app_path - err_output=`node "$root_path"/packages/create-react-app/index.js test-node-version 2>&1 > /dev/null || echo ''` - [[ $err_output =~ You\ are\ running\ Node ]] && exit 0 || exit 1 -fi - if [ "$USE_YARN" = "yes" ] then # Install Yarn so that the test can use it to install packages. diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index 4e455e7e116..892230ab747 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -22,8 +22,6 @@ temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'` function cleanup { echo 'Cleaning up.' cd $root_path - # Uncomment when snapshot testing is enabled by default: - # rm ./packages/react-scripts/template/src/__snapshots__/App.test.js.snap rm -rf $temp_cli_path $temp_app_path } @@ -60,14 +58,6 @@ root_path=$PWD npm install -# If the node version is < 4, the script should just give an error. -if [ `node --version | sed -e 's/^v//' -e 's/\..\+//g'` -lt 4 ] -then - cd $temp_app_path - err_output=`node "$root_path"/packages/create-react-app/index.js test-node-version 2>&1 > /dev/null || echo ''` - [[ $err_output =~ You\ are\ running\ Node ]] && exit 0 || exit 1 -fi - if [ "$USE_YARN" = "yes" ] then # Install Yarn so that the test can use it to install packages. @@ -93,9 +83,6 @@ cp package.json package.json.orig # of those packages. node $root_path/tasks/replace-own-deps.js -# Remove .npmignore so the test template is added -rm $root_path/packages/react-scripts/.npmignore - # Finally, pack react-scripts scripts_path=$root_path/packages/react-scripts/`npm pack` @@ -153,13 +140,6 @@ E2E_FILE=./build/index.html \ NODE_PATH=src \ node_modules/.bin/mocha --require babel-register --require babel-polyfill integration/*.test.js -# Uncomment when snapshot testing is enabled by default: -# test -e src/__snapshots__/App.test.js.snap - -# Test the server -REACT_APP_SHELL_ENV_MESSAGE=fromtheshell NODE_PATH=src npm start -- --smoke-test -REACT_APP_SHELL_ENV_MESSAGE=fromtheshell HTTPS=true NODE_PATH=src npm start -- --smoke-test - # ****************************************************************************** # Finally, let's check that everything still works after ejecting. # ****************************************************************************** @@ -208,11 +188,5 @@ E2E_FILE=./build/index.html \ NODE_PATH=src \ node_modules/.bin/mocha --require babel-register --require babel-polyfill integration/*.test.js -# Uncomment when snapshot testing is enabled by default: -# test -e src/__snapshots__/App.test.js.snap - -# Test the server -REACT_APP_SHELL_ENV_MESSAGE=fromtheshell NODE_PATH=src npm start -- --smoke-test - # Cleanup cleanup