From 797a46b8ee80816aff4dd419c1db2df631f6ec1b Mon Sep 17 00:00:00 2001 From: Roman Heckendorf Date: Tue, 12 Dec 2017 11:59:37 +0100 Subject: [PATCH 1/2] TASK: fixed npmScopeArg rewriting, exclude all special characters. Only dash-cased name allowed --- .../src/commands/default.js | 13 ++---- .../src/commands/default.spec.js | 41 +++++++++++++++++++ 2 files changed, 45 insertions(+), 9 deletions(-) diff --git a/packages/create-react-microservice/src/commands/default.js b/packages/create-react-microservice/src/commands/default.js index 734cecc7d..41c671eee 100644 --- a/packages/create-react-microservice/src/commands/default.js +++ b/packages/create-react-microservice/src/commands/default.js @@ -99,14 +99,9 @@ class CreateReactMicroService extends Command { .findNodeModules({cwd: __dirname}) .map(modulesPath => path.join(__dirname, modulesPath)) .find(modulesPath => - file.existsSync( - path.join(modulesPath, scaffoldPackageName) - ) + file.existsSync(path.join(modulesPath, scaffoldPackageName)) ); - const scaffoldPackagePath = path.join( - modulesPath, - scaffoldPackageName - ); + const scaffoldPackagePath = path.join(modulesPath, scaffoldPackageName); const scaffoldPackageJson = file.require( path.join(scaffoldPackageName, 'package.json') ); @@ -203,7 +198,7 @@ class CreateReactMicroService extends Command { const namespace = str .replace(/\s/g, '-') .replace(/[0-9]/g, '') - .replace(/[^a-zA-Z]g/g, '') + .replace(/[^a-zA-Z-]/g, '') .toLowerCase(); return `@${namespace}/`; @@ -271,7 +266,7 @@ class CreateReactMicroService extends Command { const srcGitIgnore = path.join(cwd, '.git-ignore'); if (file.existsSync(srcGitIgnore)) { - file.renameSync(srcGitIgnore, path.join(cwd, '.gitignore')) + file.renameSync(srcGitIgnore, path.join(cwd, '.gitignore')); } await Command.exec('git', ['init'], opts); diff --git a/packages/create-react-microservice/src/commands/default.spec.js b/packages/create-react-microservice/src/commands/default.spec.js index b1cd4c338..49d638168 100644 --- a/packages/create-react-microservice/src/commands/default.spec.js +++ b/packages/create-react-microservice/src/commands/default.spec.js @@ -462,6 +462,47 @@ describe('new Command().safelyCreateNpmScopeArg()', () => { '@foo-bar-baz/' ); }); + it('should remove all special characters', async () => { + const specialChars = [ + '~', + '!', + '@', + '#', + '$', + '%', + '^', + '&', + '*', + '(', + ')', + '_', + '|', + '+', + '=', + '?', + ';', + ':', + ',', + '.', + '<', + '>', + '{', + '}', + '[', + ']', + '\\', + '/', + "'", + '"', + '`', + '´' + ]; + specialChars.forEach(character => { + expect(instance.safelyCreateNpmScopeArg(`${character}foo-bar`)).toBe( + '@foo-bar/' + ); + }); + }); }); describe('new Command().printStartInstructions()', () => { From cd1cf1448f189c5523da4a0df96304c15564884b Mon Sep 17 00:00:00 2001 From: Roman Heckendorf Date: Tue, 12 Dec 2017 13:23:38 +0100 Subject: [PATCH 2/2] TASK: simplify new test for task #47 --- .../src/commands/default.spec.js | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/create-react-microservice/src/commands/default.spec.js b/packages/create-react-microservice/src/commands/default.spec.js index 49d638168..a723e32bc 100644 --- a/packages/create-react-microservice/src/commands/default.spec.js +++ b/packages/create-react-microservice/src/commands/default.spec.js @@ -497,11 +497,9 @@ describe('new Command().safelyCreateNpmScopeArg()', () => { '`', '´' ]; - specialChars.forEach(character => { - expect(instance.safelyCreateNpmScopeArg(`${character}foo-bar`)).toBe( - '@foo-bar/' - ); - }); + expect( + instance.safelyCreateNpmScopeArg(`${specialChars.join('')}foo-bar`) + ).toBe('@foo-bar/'); }); });