diff --git a/src/rules/__tests__/valid-expect-in-promise.test.ts b/src/rules/__tests__/valid-expect-in-promise.test.ts index 74cd88fcf..7a9a4ccf6 100644 --- a/src/rules/__tests__/valid-expect-in-promise.test.ts +++ b/src/rules/__tests__/valid-expect-in-promise.test.ts @@ -383,6 +383,19 @@ ruleTester.run('valid-expect-in-promise', rule, { } ); `, + dedent` + it('is valid', async () => { + const promiseOne = loadNumber().then(number => { + expect(typeof number).toBe('number'); + }); + const promiseTwo = loadNumber().then(number => { + expect(typeof number).toBe('number'); + }); + + await promiseTwo; + await promiseOne; + }); + `, dedent` it("it1", () => somePromise.then(() => { expect(someThing).toEqual(true) diff --git a/src/rules/valid-expect-in-promise.ts b/src/rules/valid-expect-in-promise.ts index b6c126434..33b43863b 100644 --- a/src/rules/valid-expect-in-promise.ts +++ b/src/rules/valid-expect-in-promise.ts @@ -163,8 +163,11 @@ const isValueAwaitedOrReturned = ( } if (node.type === AST_NODE_TYPES.ExpressionStatement) { - if (node.expression.type === AST_NODE_TYPES.AwaitExpression) { - return isPromiseMethodThatUsesValue(node.expression, identifier); + if ( + node.expression.type === AST_NODE_TYPES.AwaitExpression && + isPromiseMethodThatUsesValue(node.expression, identifier) + ) { + return true; } // (re)assignment changes the runtime value, so if we've not found an