From bff7454078a289bd15453b31c83a45197f4691ab Mon Sep 17 00:00:00 2001 From: Eric MORAND Date: Mon, 29 Jan 2024 16:57:32 +0100 Subject: [PATCH] Add test to confirm that S4123 honors JSDoc directive --- packages/jsts/src/rules/S4123/unit.test.ts | 39 +++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/packages/jsts/src/rules/S4123/unit.test.ts b/packages/jsts/src/rules/S4123/unit.test.ts index 30a9b6436f6..67f263ac290 100644 --- a/packages/jsts/src/rules/S4123/unit.test.ts +++ b/packages/jsts/src/rules/S4123/unit.test.ts @@ -19,7 +19,7 @@ */ import { rule } from './'; import { RuleTester } from 'eslint'; -import { TypeScriptRuleTester } from '../tools'; +import { JavaScriptRuleTester, TypeScriptRuleTester } from '../tools'; const ruleTester = new TypeScriptRuleTester(); ruleTester.run('await should only be used with promises.', rule, { @@ -231,3 +231,40 @@ ruleTesterWithNoFullTypeInfo.run('await should only be used with promises.', rul ], invalid: [], }); + +const javaScriptRuleTester = new JavaScriptRuleTester(); +javaScriptRuleTester.run( + 'await should only be used with promises: honors JSDoc @return directive.', + rule, + { + valid: [ + { + code: ` +async function foo () { + await bar() +} +/** + * @return {Promise} + */ +async function bar () { + return 5; +}`, + }, + ], + invalid: [ + { + code: ` +async function foo () { + await bar() // FP +} +/** + * @return {number} + */ +async function bar () { + return Promise.resolve(5); +}`, + errors: 1, + }, + ], + }, +);