Skip to content

Commit

Permalink
feat(inline context): update inline content (#460)
Browse files Browse the repository at this point in the history
  • Loading branch information
veritem committed May 24, 2024
1 parent 8b11357 commit 6aa0aca
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 8 deletions.
20 changes: 13 additions & 7 deletions src/rules/prefer-expect-assertions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ const isFirstStatement = (node: TSESTree.CallExpression): boolean => {
const suggestRemovingExtraArguments = (context: TSESLint.RuleContext<string, unknown[]>,
func: TSESTree.CallExpression,
from: number): TSESLint.ReportSuggestionArray<MessageIds>[0] => ({
messageId: 'suggestRemovingExtraArguments',
fix: fixer => removeExtraArgumentsFixer(fixer, context, func, from)
})
messageId: 'suggestRemovingExtraArguments',
fix: fixer => removeExtraArgumentsFixer(fixer, context, func, from)
})

export default createEslintRule<Options[], MessageIds>({
name: 'prefer-expect-assertions',
Expand All @@ -51,15 +51,15 @@ export default createEslintRule<Options[], MessageIds>({
},
messages: {
hasAssertionsTakesNoArguments:
'`expect.hasAssertions` expects no arguments',
'`expect.hasAssertions` expects no arguments',
assertionsRequiresOneArgument:
'`expect.assertions` excepts a single argument of type number',
'`expect.assertions` excepts a single argument of type number',
assertionsRequiresNumberArgument: 'This argument should be a number',
haveExpectAssertions:
'Every test should have either `expect.assertions(<number of assertions>)` or `expect.hasAssertions()` as its first expression',
'Every test should have either `expect.assertions(<number of assertions>)` or `expect.hasAssertions()` as its first expression',
suggestAddingHasAssertions: 'Add `expect.hasAssertions()`',
suggestAddingAssertions:
'Add `expect.assertions(<number of assertions>)`',
'Add `expect.assertions(<number of assertions>)`',
suggestRemovingExtraArguments: 'Remove extra arguments'
},
type: 'suggestion',
Expand Down Expand Up @@ -202,6 +202,12 @@ export default createEslintRule<Options[], MessageIds>({

const [, secondArg] = node.arguments

if (secondArg?.type === AST_NODE_TYPES.ArrowFunctionExpression && secondArg.params.length) {
if (secondArg?.params[0].type === AST_NODE_TYPES.ObjectPattern) {
if (secondArg.params[0].properties[0].type === AST_NODE_TYPES.Property && secondArg.params[0].properties[0].key.type === AST_NODE_TYPES.Identifier && secondArg.params[0].properties[0].key.name === "expect") return
}
}

if (!isFunction(secondArg) || !shouldCheckFunction(secondArg))
return

Expand Down
7 changes: 6 additions & 1 deletion tests/prefer-expect-assertions.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ ruleTester.run(RULE_NAME, rule, {
'itHappensToStartWithIt("foo", function() {})',
'testSomething("bar", function() {})',
'it(async () => {expect.assertions(0);})',
`test("example-fail", async ({ expect }) => {
expect.assertions(1);
await expect(Promise.resolve(null)).resolves.toBeNull();
});
`,
{
code: `
const expectNumbersToBeGreaterThan = (numbers, value) => {
Expand Down Expand Up @@ -131,7 +136,7 @@ ruleTester.run(RULE_NAME, rule, {
{
messageId: 'suggestAddingHasAssertions',
output:
'it("it1", function() {expect.hasAssertions();var a = 2;})'
'it("it1", function() {expect.hasAssertions();var a = 2;})'
},
{
messageId: 'suggestAddingAssertions',
Expand Down

0 comments on commit 6aa0aca

Please sign in to comment.