From 9de89777d267a92b5d887e9a01ead6d87a819f1e Mon Sep 17 00:00:00 2001 From: Brett Zamir Date: Mon, 1 Feb 2021 10:05:45 +0800 Subject: [PATCH] test(`require-jsdoc`): avoid test example with `:has()` and demonstrate differential behavior of selectors; #662 `:has()` is a selector only available to esquery, not to the current selector engine in ESLint. --- README.md | 11 ++++++++--- test/rules/assertions/requireJsdoc.js | 22 ++++++++++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index eecae0259..c39784417 100644 --- a/README.md +++ b/README.md @@ -10652,11 +10652,16 @@ export interface Foo { // Options: [{"contexts":["TSPropertySignature","TSMethodSignature"],"publicOnly":true}] // Message: Missing JSDoc comment. -export class User { +export class MyComponentComponent { + @Output() + public changed = new EventEmitter(); + + public test = 'test'; + @Input() - public name: string; + public value = new EventEmitter(); } -// Options: [{"contexts":["ClassProperty:has(Decorator[expression.callee.name=\"Input\"])"]}] +// Options: [{"contexts":["ClassProperty > Decorator[expression.callee.name=\"Input\"]"]}] // Message: Missing JSDoc comment. ```` diff --git a/test/rules/assertions/requireJsdoc.js b/test/rules/assertions/requireJsdoc.js index 60e42547d..b8fb56987 100644 --- a/test/rules/assertions/requireJsdoc.js +++ b/test/rules/assertions/requireJsdoc.js @@ -2716,29 +2716,39 @@ function quux (foo) { }, { code: ` - export class User { + export class MyComponentComponent { + @Output() + public changed = new EventEmitter(); + + public test = 'test'; + @Input() - public name: string; + public value = new EventEmitter(); } `, errors: [ { - line: 3, + line: 8, message: 'Missing JSDoc comment.', }, ], options: [{ contexts: [ - 'ClassProperty:has(Decorator[expression.callee.name="Input"])', + 'ClassProperty > Decorator[expression.callee.name="Input"]', ], }], output: ` - export class User { + export class MyComponentComponent { + @Output() + public changed = new EventEmitter(); + + public test = 'test'; + /** * */ @Input() - public name: string; + public value = new EventEmitter(); } `, parser: require.resolve('@typescript-eslint/parser'),