Commit 31243283 authored by Joe Haddad's avatar Joe Haddad Committed by GitHub
Browse files

Add linked modules test (#1913)

parent f61cba10
Showing with 73 additions and 4 deletions
+73 -4
......@@ -5,6 +5,7 @@
"babel-polyfill": "6.20.0",
"chai": "3.5.0",
"jsdom": "9.8.3",
"mocha": "3.2.0"
"mocha": "3.2.0",
"test-integrity": "1.0.0"
}
}
......@@ -44,6 +44,14 @@ describe('Integration', () => {
);
});
it('linked modules', async () => {
const doc = await initDOM('linked-modules');
expect(doc.getElementById('feature-linked-modules').textContent).to.equal(
'2.0.0'
);
});
it('svg inclusion', async () => {
const doc = await initDOM('svg-inclusion');
......
......@@ -111,6 +111,10 @@ class App extends Component {
import('./features/webpack/JsonInclusion').then(f =>
this.setFeature(f.default));
break;
case 'linked-modules':
import('./features/webpack/LinkedModules').then(f =>
this.setFeature(f.default));
break;
case 'node-path':
import('./features/env/NodePath').then(f => this.setFeature(f.default));
break;
......
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
import React from 'react';
import './assets/style.css';
import { test, version } from 'test-integrity';
export default () => {
const v = version();
if (!test() || v !== '2.0.0') {
throw new Error('Functionality test did not pass.');
}
return <p id="feature-linked-modules">{v}</p>;
};
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
import React from 'react';
import ReactDOM from 'react-dom';
import { test, version } from 'test-integrity';
import LinkedModules from './LinkedModules';
describe('linked modules', () => {
it('has integrity', () => {
expect(test());
expect(version() === '2.0.0');
});
it('renders without crashing', () => {
const div = document.createElement('div');
ReactDOM.render(<LinkedModules />, div);
});
});
......@@ -14,17 +14,18 @@
# Start in tasks/ even if run from root directory
cd "$(dirname "$0")"
# CLI and app temporary locations
# CLI, app, and test module temporary locations
# http://unix.stackexchange.com/a/84980
temp_cli_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_cli_path'`
temp_app_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_app_path'`
temp_module_path=`mktemp -d 2>/dev/null || mktemp -d -t 'temp_module_path'`
function cleanup {
echo 'Cleaning up.'
ps -ef | grep 'react-scripts' | grep -v grep | awk '{print $2}' | xargs kill -s 9
cd "$root_path"
# TODO: fix "Device or resource busy" and remove ``|| $CI`
rm -rf "$temp_cli_path" $temp_app_path || $CI
rm -rf "$temp_cli_path" "$temp_app_path" "$temp_module_path" || $CI
}
# Error messages are redirected to stderr
......@@ -111,17 +112,24 @@ npm install "$cli_path"
cd $temp_app_path
create_react_app --scripts-version="$scripts_path" --internal-testing-template="$root_path"/packages/react-scripts/fixtures/kitchensink test-kitchensink
# Install the test module
cd "$temp_module_path"
npm install test-integrity@^2.0.1
# ******************************************************************************
# Now that we used create-react-app to create an app depending on react-scripts,
# let's make sure all npm scripts are in the working state.
# ******************************************************************************
# Enter the app directory
cd test-kitchensink
cd "$temp_app_path/test-kitchensink"
# Link to our preset
npm link "$root_path"/packages/babel-preset-react-app
# Link to test module
npm link "$temp_module_path/node_modules/test-integrity"
# Test the build
REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \
NODE_PATH=src \
......@@ -183,6 +191,9 @@ npm link "$root_path"/packages/eslint-config-react-app
npm link "$root_path"/packages/react-dev-utils
npm link "$root_path"/packages/react-scripts
# Link to test module
npm link "$temp_module_path/node_modules/test-integrity"
# Test the build
REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \
NODE_PATH=src \
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment