From 141f3a77df39496c3063e732284ab0e258fcd602 Mon Sep 17 00:00:00 2001 From: "Marcus R. Brown" Date: Sat, 11 Feb 2017 17:34:15 -0800 Subject: [PATCH] Fix `test -e` with wildcard arguments. (#1503) The `test` command fails with multiple arguments when given a unary operator such as '-e'. Add a function that can test one or more files by looping over all files. --- tasks/e2e-installs.sh | 13 +++++++++--- tasks/e2e-kitchensink.sh | 15 ++++++++++---- tasks/e2e-simple.sh | 43 +++++++++++++++++++++++----------------- 3 files changed, 46 insertions(+), 25 deletions(-) diff --git a/tasks/e2e-installs.sh b/tasks/e2e-installs.sh index 7bb4c0392f2..d117c24015b 100755 --- a/tasks/e2e-installs.sh +++ b/tasks/e2e-installs.sh @@ -39,6 +39,13 @@ function handle_exit { exit } +# Check for the existence of one or more files. +function exists { + for f in $*; do + test -e "$f" + done +} + function create_react_app { node "$temp_cli_path"/node_modules/create-react-app/index.js $* } @@ -86,7 +93,7 @@ create_react_app --scripts-version=0.4.0 test-app-version-number cd test-app-version-number # Check corresponding scripts version is installed. -test -e node_modules/react-scripts +exists node_modules/react-scripts grep '"version": "0.4.0"' node_modules/react-scripts/package.json # ****************************************************************************** @@ -98,7 +105,7 @@ create_react_app --scripts-version=https://registry.npmjs.org/react-scripts/-/re cd test-app-tarball-url # Check corresponding scripts version is installed. -test -e node_modules/react-scripts +exists node_modules/react-scripts grep '"version": "0.4.0"' node_modules/react-scripts/package.json # ****************************************************************************** @@ -110,7 +117,7 @@ create_react_app --scripts-version=react-scripts-fork test-app-fork cd test-app-fork # Check corresponding scripts version is installed. -test -e node_modules/react-scripts-fork +exists node_modules/react-scripts-fork # ****************************************************************************** # Test nested folder path as the project name diff --git a/tasks/e2e-kitchensink.sh b/tasks/e2e-kitchensink.sh index 3c750feca53..56fc4af1e9d 100755 --- a/tasks/e2e-kitchensink.sh +++ b/tasks/e2e-kitchensink.sh @@ -43,6 +43,13 @@ function create_react_app { node "$temp_cli_path"/node_modules/create-react-app/index.js $* } +# Check for the existence of one or more files. +function exists { + for f in $*; do + test -e "$f" + done +} + # Exit the script with a helpful error message when any error is encountered trap 'set +x; handle_error $LINENO $BASH_COMMAND' ERR @@ -120,8 +127,8 @@ REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ npm run build # Check for expected output -test -e build/*.html -test -e build/static/js/main.*.js +exists build/*.html +exists build/static/js/main.*.js # Unit tests REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ @@ -177,8 +184,8 @@ REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ npm run build # Check for expected output -test -e build/*.html -test -e build/static/js/main.*.js +exists build/*.html +exists build/static/js/main.*.js # Unit tests REACT_APP_SHELL_ENV_MESSAGE=fromtheshell \ diff --git a/tasks/e2e-simple.sh b/tasks/e2e-simple.sh index d0acb16b412..24b5ad85eef 100755 --- a/tasks/e2e-simple.sh +++ b/tasks/e2e-simple.sh @@ -45,6 +45,13 @@ function create_react_app { node "$temp_cli_path"/node_modules/create-react-app/index.js $* } +# Check for the existence of one or more files. +function exists { + for f in $*; do + test -e "$f" + done +} + # Exit the script with a helpful error message when any error is encountered trap 'set +x; handle_error $LINENO $BASH_COMMAND' ERR @@ -86,16 +93,16 @@ fi # Test local build command npm run build # Check for expected output -test -e build/*.html -test -e build/static/js/*.js -test -e build/static/css/*.css -test -e build/static/media/*.svg -test -e build/favicon.ico +exists build/*.html +exists build/static/js/*.js +exists build/static/css/*.css +exists build/static/media/*.svg +exists build/favicon.ico # Run tests with CI flag CI=true npm test # Uncomment when snapshot testing is enabled by default: -# test -e template/src/__snapshots__/App.test.js.snap +# exists template/src/__snapshots__/App.test.js.snap # Test local start command npm start -- --smoke-test @@ -197,16 +204,16 @@ cd test-app # Test the build npm run build # Check for expected output -test -e build/*.html -test -e build/static/js/*.js -test -e build/static/css/*.css -test -e build/static/media/*.svg -test -e build/favicon.ico +exists build/*.html +exists build/static/js/*.js +exists build/static/css/*.css +exists build/static/media/*.svg +exists build/favicon.ico # Run tests with CI flag CI=true npm test # Uncomment when snapshot testing is enabled by default: -# test -e src/__snapshots__/App.test.js.snap +# exists src/__snapshots__/App.test.js.snap # Test the server npm start -- --smoke-test @@ -230,11 +237,11 @@ npm link $root_path/packages/react-scripts # Test the build npm run build # Check for expected output -test -e build/*.html -test -e build/static/js/*.js -test -e build/static/css/*.css -test -e build/static/media/*.svg -test -e build/favicon.ico +exists build/*.html +exists build/static/js/*.js +exists build/static/css/*.css +exists build/static/media/*.svg +exists build/favicon.ico # Run tests, overring the watch option to disable it. # `CI=true npm test` won't work here because `npm test` becomes just `jest`. @@ -242,7 +249,7 @@ test -e build/favicon.ico # `scripts/test.js` survive ejection (right now it doesn't). npm test -- --watch=no # Uncomment when snapshot testing is enabled by default: -# test -e src/__snapshots__/App.test.js.snap +# exists src/__snapshots__/App.test.js.snap # Test the server npm start -- --smoke-test