Skip to content

Commit

Permalink
fix(require-tothrow-message): rename rule to require-to-throw-message
Browse files Browse the repository at this point in the history
This change makes consistent with other rule naming format and removes spelling error message from editors
  • Loading branch information
chrisblossom committed Jul 17, 2019
1 parent 28bd1dc commit 672917b
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 38 deletions.
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -134,7 +134,7 @@ installations requiring long-term consistency.
| [prefer-to-contain][] | Suggest using `toContain()` | | ![fixable-green][] |
| [prefer-to-have-length][] | Suggest using `toHaveLength()` | | ![fixable-green][] |
| [prefer-inline-snapshots][] | Suggest using `toMatchInlineSnapshot()` | | ![fixable-green][] |
| [require-tothrow-message][] | Require that `toThrow()` and `toThrowError` includes a message | | |
| [require-to-throw-message][] | Require that `toThrow()` and `toThrowError` includes a message | | |
| [valid-describe][] | Enforce valid `describe()` callback | ![recommended][] | |
| [valid-expect-in-promise][] | Enforce having return statement when testing with promises | ![recommended][] | |
| [valid-expect][] | Enforce valid `expect()` usage | ![recommended][] | |
Expand Down Expand Up @@ -184,7 +184,7 @@ https://github.com/dangreenisrael/eslint-plugin-jest-formatting
[prefer-to-contain]: docs/rules/prefer-to-contain.md
[prefer-to-have-length]: docs/rules/prefer-to-have-length.md
[prefer-inline-snapshots]: docs/rules/prefer-inline-snapshots.md
[require-tothrow-message]: docs/rules/require-tothrow-message.md
[require-to-throw-message]: docs/rules/require-to-throw-message.md
[valid-describe]: docs/rules/valid-describe.md
[valid-expect-in-promise]: docs/rules/valid-expect-in-promise.md
[valid-expect]: docs/rules/valid-expect.md
Expand Down
@@ -1,4 +1,4 @@
# Require a message for `toThrow()` (require-tothrow-message)
# Require a message for `toThrow()` (require-to-throw-message)

`toThrow()`, and its alias `toThrowError()`, are used to check if an error is
thrown by a function call, such as in `expect(() => a()).toThrow()`. However, if
Expand Down
@@ -1,13 +1,13 @@
import { RuleTester } from 'eslint';
import rule from '../require-tothrow-message';
import rule from '../require-to-throw-message';

const ruleTester = new RuleTester({
parserOptions: {
ecmaVersion: 6,
},
});

ruleTester.run('require-tothrow-message', rule, {
ruleTester.run('require-to-throw-message', rule, {
valid: [
// String
"expect(() => { throw new Error('a'); }).toThrow('a');",
Expand Down
36 changes: 36 additions & 0 deletions src/rules/require-to-throw-message.js
@@ -0,0 +1,36 @@
import { argument, expectCase, getDocsUrl, method } from './util';

export default {
meta: {
docs: {
url: getDocsUrl(__filename),
},
messages: {
requireRethrow: 'Add an error message to {{ propertyName }}()',
},
schema: [],
},
create(context) {
return {
CallExpression(node) {
if (!expectCase(node)) {
return;
}

const propertyName = method(node) && method(node).name;

// Look for `toThrow` calls with no arguments.
if (
['toThrow', 'toThrowError'].includes(propertyName) &&
!argument(node)
) {
context.report({
messageId: 'requireRethrow',
data: { propertyName },
node: method(node),
});
}
},
};
},
};
39 changes: 6 additions & 33 deletions src/rules/require-tothrow-message.js
@@ -1,36 +1,9 @@
import { argument, expectCase, getDocsUrl, method } from './util';
import requireToThrowMessage from './require-to-throw-message';

export default {
meta: {
docs: {
url: getDocsUrl(__filename),
},
messages: {
requireRethrow: 'Add an error message to {{ propertyName }}()',
},
schema: [],
},
create(context) {
return {
CallExpression(node) {
if (!expectCase(node)) {
return;
}
const merged = Object.assign({}, requireToThrowMessage);

const propertyName = method(node) && method(node).name;
merged.meta.deprecated = true;
merged.meta.replacedBy = ['require-to-throw-message'];
merged.meta.docs.replacedBy = ['require-to-throw-message'];

// Look for `toThrow` calls with no arguments.
if (
['toThrow', 'toThrowError'].includes(propertyName) &&
!argument(node)
) {
context.report({
messageId: 'requireRethrow',
data: { propertyName },
node: method(node),
});
}
},
};
},
};
export default merged;

0 comments on commit 672917b

Please sign in to comment.