diff --git a/packages/cli/src/commands/init/__tests__/validate.test.js b/packages/cli/src/commands/init/__tests__/validate.test.js index fda90efcf..e7e1745ab 100644 --- a/packages/cli/src/commands/init/__tests__/validate.test.js +++ b/packages/cli/src/commands/init/__tests__/validate.test.js @@ -2,6 +2,7 @@ import {validateProjectName} from '../validate'; import InvalidNameError from '../errors/InvalidNameError'; import ReservedNameError from '../errors/ReservedNameError'; +import HelloWorldError from '../errors/HelloWorldError'; test.each(['projectName', 'ProjectName', 'project_name'])( "'%s' project name should be valid", @@ -23,6 +24,10 @@ test.each([ name: 'react', error: ReservedNameError, }, + { + name: 'helloworld_test', + error: HelloWorldError, + }, ])("'%s' is invalid name", ({name, error}: {name: string, error: Error}) => { expect(() => validateProjectName(name)).toThrowError(error); }); diff --git a/packages/cli/src/commands/init/errors/HelloWorldError.js b/packages/cli/src/commands/init/errors/HelloWorldError.js new file mode 100644 index 000000000..ae515b696 --- /dev/null +++ b/packages/cli/src/commands/init/errors/HelloWorldError.js @@ -0,0 +1,8 @@ +// @flow +export default class HelloWorldError extends Error { + constructor() { + super( + 'Project name shouldn\'t contain "HelloWorld" name in it, because it is CLI\'s default placeholder name.', + ); + } +} diff --git a/packages/cli/src/commands/init/validate.js b/packages/cli/src/commands/init/validate.js index 9166c4026..bf707b89f 100644 --- a/packages/cli/src/commands/init/validate.js +++ b/packages/cli/src/commands/init/validate.js @@ -1,6 +1,7 @@ // @flow import InvalidNameError from './errors/InvalidNameError'; import ReservedNameError from './errors/ReservedNameError'; +import HelloWorldError from './errors/HelloWorldError'; const NAME_REGEX = /^[$A-Z_][0-9A-Z_$]*$/i; @@ -12,4 +13,8 @@ export function validateProjectName(name: string) { if (name === 'React' || name === 'react') { throw new ReservedNameError(); } + + if (name.match(/helloworld/gi)) { + throw new HelloWorldError(); + } }