/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @emails react-core
*/
'use strict';
const rule = require('../prod-error-codes');
const {RuleTester} = require('eslint');
const ruleTester = new RuleTester({
parserOptions: {
ecmaVersion: 2017,
},
});
ruleTester.run('eslint-rules/prod-error-codes', rule, {
valid: [
'arbitraryFunction(a, b)',
'Error(`Expected ${foo} target to be an array; got ${bar}`)',
"Error('Expected ' + foo + ' target to be an array; got ' + bar)",
'Error(`Expected ${foo} target to ` + `be an array; got ${bar}`)',
],
invalid: [
{
code: "Error('Not in error map')",
errors: [
{
message:
'Error message does not have a corresponding production error ' +
'code. Add the following message to codes.json so it can be stripped from ' +
'the production builds:\n\n' +
'Not in error map',
},
],
},
{
code: "Error('Not in ' + 'error map')",
errors: [
{
message:
'Error message does not have a corresponding production error ' +
'code. Add the following message to codes.json so it can be stripped from ' +
'the production builds:\n\n' +
'Not in error map',
},
],
},
{
code: 'Error(`Not in ` + `error map`)',
errors: [
{
message:
'Error message does not have a corresponding production error ' +
'code. Add the following message to codes.json so it can be stripped from ' +
'the production builds:\n\n' +
'Not in error map',
},
],
},
{
code: "Error(`Not in ${'error'} map`)",
errors: [
{
message:
'Error message does not have a corresponding production error ' +
'code. Add the following message to codes.json so it can be stripped from ' +
'the production builds:\n\n' +
'Not in %s map',
},
],
},
],
});