Skip to content

Commit

Permalink
facebookgh-1269: Enabling nested folder paths for project name (faceb…
Browse files Browse the repository at this point in the history
…ook#1270)

* facebookgh-1269: Enabling nested folder paths for project name

* facebookgh-1269: Added "fs-extra" and removed "path-exists"

* facebookgh-1269: Added e2e test cases to verify nested folder names
  • Loading branch information
dinukadesilva authored and randycoulman committed May 8, 2017
1 parent 0d4ab85 commit 53bded6
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 7 deletions.
9 changes: 3 additions & 6 deletions packages/create-react-app/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,11 @@ if (currentNodeVersion.split('.')[0] < 4) {
process.exit(1);
}

var fs = require('fs');
var fs = require('fs-extra');
var path = require('path');
var execSync = require('child_process').execSync;
var spawn = require('cross-spawn');
var semver = require('semver');
var pathExists = require('path-exists');

var projectName;

Expand Down Expand Up @@ -103,10 +102,8 @@ function createApp(name, verbose, version) {
var appName = path.basename(root);

checkAppName(appName);

if (!pathExists.sync(name)) {
fs.mkdirSync(root);
} else if (!isSafeToCreateProjectIn(root)) {
fs.ensureDirSync(name);
if (!isSafeToCreateProjectIn(root)) {
console.log('The directory ' + chalk.green(name) + ' contains files that could conflict.');
console.log('Try using a new directory name.');
process.exit(1);
Expand Down
2 changes: 1 addition & 1 deletion packages/create-react-app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"chalk": "^1.1.1",
"commander": "^2.9.0",
"cross-spawn": "^4.0.0",
"path-exists": "^2.1.0",
"fs-extra": "^1.0.0",
"semver": "^5.0.3"
}
}
26 changes: 26 additions & 0 deletions tasks/e2e.sh
Original file line number Diff line number Diff line change
Expand Up @@ -230,5 +230,31 @@ cd test-app-fork
# Check corresponding scripts version is installed.
test -e node_modules/react-scripts-fork

# ******************************************************************************
# Test nested folder path as the project name
# ******************************************************************************

#Testing a path that exists
cd $temp_app_path
mkdir test-app-nested-paths-t1
cd test-app-nested-paths-t1
mkdir -p test-app-nested-paths-t1/aa/bb/cc/dd
create_react_app test-app-nested-paths-t1/aa/bb/cc/dd
cd test-app-nested-paths-t1/aa/bb/cc/dd
npm start -- --smoke-test

#Testing a path that does not exist
cd $temp_app_path
create_react_app test-app-nested-paths-t2/aa/bb/cc/dd
cd test-app-nested-paths-t2/aa/bb/cc/dd
npm start -- --smoke-test

#Testing a path that is half exists
cd $temp_app_path
mkdir -p test-app-nested-paths-t3/aa
create_react_app test-app-nested-paths-t3/aa/bb/cc/dd
cd test-app-nested-paths-t3/aa/bb/cc/dd
npm start -- --smoke-test

# Cleanup
cleanup

0 comments on commit 53bded6

Please sign in to comment.