From 07d213719de974d6b5a1cab75e836dc39b432f87 Mon Sep 17 00:00:00 2001 From: Gareth Jones Date: Tue, 12 Oct 2021 08:37:34 +1300 Subject: [PATCH] fix(valid-expect-in-promise): support out of order awaits (#939) --- src/rules/__tests__/valid-expect-in-promise.test.ts | 13 +++++++++++++ src/rules/valid-expect-in-promise.ts | 7 +++++-- 2 files changed, 18 insertions(+), 2 deletions(-) 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