diff --git a/eslint-rules/__tests__/no-primitive-constructors-test.js b/eslint-rules/__tests__/no-primitive-constructors-test.js new file mode 100644 index 0000000000000..8756117f8b924 --- /dev/null +++ b/eslint-rules/__tests__/no-primitive-constructors-test.js @@ -0,0 +1,50 @@ +/** + * Copyright 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. + * + * @emails react-core + */ + +'use strict'; + +var rule = require('../no-primitive-constructors'); +var RuleTester = require('eslint').RuleTester; +var ruleTester = new RuleTester(); + +ruleTester.run('eslint-rules/no-primitive-constructors', rule, { + valid: [ + '!!obj', + "'' + obj", + '+string', + ], + invalid: [ + { + code: 'Boolean(obj)', + errors: [ + { + message: 'Do not use the Boolean constructor. To cast a value to a boolean, use double negation: !!value', + }, + ], + }, + { + code: 'String(obj)', + errors: [ + { + message: 'Do not use the String constructor. To cast a value to a string, concat it with the empty string (unless it\'s a symbol, which has different semantics): \'\' + value', + }, + ], + }, + { + code: 'Number(string)', + errors: [ + { + message: 'Do not use the Number constructor. To cast a value to a number, use the plus operator: +value', + }, + ], + }, + ], +}); diff --git a/eslint-rules/no-primitive-constructors.js b/eslint-rules/no-primitive-constructors.js index d87f9a081fbb8..0af2602d50352 100644 --- a/eslint-rules/no-primitive-constructors.js +++ b/eslint-rules/no-primitive-constructors.js @@ -31,7 +31,7 @@ module.exports = function(context) { node, name, 'To cast a value to a string, concat it with the empty string ' + - '(unless it\'s a symbol, which have different semantics): ' + + '(unless it\'s a symbol, which has different semantics): ' + '\'\' + value' ); break;