diff --git a/src/rules/__tests__/valid-expect-in-promise.test.ts b/src/rules/__tests__/valid-expect-in-promise.test.ts index 3d4927a4f..8ed706516 100644 --- a/src/rules/__tests__/valid-expect-in-promise.test.ts +++ b/src/rules/__tests__/valid-expect-in-promise.test.ts @@ -35,6 +35,13 @@ ruleTester.run('valid-expect-in-promise', rule, { }); }); `, + dedent` + xtest('it1', function() { + return somePromise.catch(function() { + expect(someThing).toEqual(true); + }); + }); + `, dedent` it('it1', function() { return somePromise.then(function() { @@ -136,7 +143,16 @@ ruleTester.run('valid-expect-in-promise', rule, { const promise = something().then(value => { expect(value).toBe('red'); }); - + + return promise; + }); + `, + dedent` + test.only('later return', () => { + const promise = something().then(value => { + expect(value).toBe('red'); + }); + return promise; }); `, @@ -274,6 +290,16 @@ ruleTester.run('valid-expect-in-promise', rule, { `, errors: [{ column: 3, endColumn: 5, messageId: 'returnPromise' }], }, + { + code: dedent` + xtest('it1', function() { + somePromise.catch(function() { + expect(someThing).toEqual(true) + }) + }) + `, + errors: [{ column: 3, endColumn: 5, messageId: 'returnPromise' }], + }, { code: dedent` it('it1', function() { @@ -337,5 +363,27 @@ ruleTester.run('valid-expect-in-promise', rule, { `, errors: [{ column: 9, endColumn: 5, messageId: 'returnPromise' }], }, + { + code: dedent` + fit('it1', () => { + somePromise.then(() => { + doSomeOperation(); + expect(someThing).toEqual(true); + }) + }); + `, + errors: [{ column: 3, endColumn: 5, messageId: 'returnPromise' }], + }, + { + code: dedent` + it.skip('it1', () => { + somePromise.then(() => { + doSomeOperation(); + expect(someThing).toEqual(true); + }) + }); + `, + errors: [{ column: 3, endColumn: 5, messageId: 'returnPromise' }], + }, ], }); diff --git a/src/rules/valid-expect-in-promise.ts b/src/rules/valid-expect-in-promise.ts index dc30aae26..15970a67d 100644 --- a/src/rules/valid-expect-in-promise.ts +++ b/src/rules/valid-expect-in-promise.ts @@ -7,12 +7,12 @@ import { CalledKnownMemberExpression, FunctionExpression, KnownCallExpression, - TestCaseName, createRule, getAccessorValue, isExpectMember, isFunction, isSupportedAccessor, + isTestCaseCall, } from './utils'; type MessageIds = 'returnPromise'; @@ -94,16 +94,13 @@ const isPromiseReturnedLater = ( ); }; -const isTestFunc = (node: TSESTree.Node) => - node.type === AST_NODE_TYPES.CallExpression && - isSupportedAccessor(node.callee) && - ([TestCaseName.it, TestCaseName.test] as string[]).includes( - getAccessorValue(node.callee), - ); - const findTestFunction = (node: TSESTree.Node | undefined) => { while (node) { - if (isFunction(node) && node.parent && isTestFunc(node.parent)) { + if ( + isFunction(node) && + node.parent?.type === AST_NODE_TYPES.CallExpression && + isTestCaseCall(node.parent) + ) { return node; }