Skip to content

Commit 7234f6a

Browse files
authored
fix: update RuleTester JSDoc and deprecations (#17496)
* RuleTester: Allow new-style rule definitions * RuleTester: Add check for legacy rule API usage warning for defineRule() * RuleTester: Move typedef import to correct location * FlatRuleTester: Allow new-style rule definitions * FlatRuleTester: Fix copypaste bug
1 parent 1fbb3b0 commit 7234f6a

2 files changed

Lines changed: 8 additions & 3 deletions

File tree

lib/rule-tester/flat-rule-tester.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ const { ConfigArraySymbol } = require("@humanwhocodes/config-array");
3232

3333
/** @typedef {import("../shared/types").Parser} Parser */
3434
/** @typedef {import("../shared/types").LanguageOptions} LanguageOptions */
35+
/** @typedef {import("../shared/types").Rule} Rule */
3536

3637

3738
/**
@@ -446,7 +447,7 @@ class FlatRuleTester {
446447
/**
447448
* Adds a new rule test to execute.
448449
* @param {string} ruleName The name of the rule to run.
449-
* @param {Function} rule The rule to test.
450+
* @param {Function | Rule} rule The rule to test.
450451
* @param {{
451452
* valid: (ValidTestCase | string)[],
452453
* invalid: InvalidTestCase[]

lib/rule-tester/rule-tester.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ const { SourceCode } = require("../source-code");
6262
//------------------------------------------------------------------------------
6363

6464
/** @typedef {import("../shared/types").Parser} Parser */
65+
/** @typedef {import("../shared/types").Rule} Rule */
6566

6667

6768
/**
@@ -508,17 +509,20 @@ class RuleTester {
508509
/**
509510
* Define a rule for one particular run of tests.
510511
* @param {string} name The name of the rule to define.
511-
* @param {Function} rule The rule definition.
512+
* @param {Function | Rule} rule The rule definition.
512513
* @returns {void}
513514
*/
514515
defineRule(name, rule) {
516+
if (typeof rule === "function") {
517+
emitLegacyRuleAPIWarning(name);
518+
}
515519
this.rules[name] = rule;
516520
}
517521

518522
/**
519523
* Adds a new rule test to execute.
520524
* @param {string} ruleName The name of the rule to run.
521-
* @param {Function} rule The rule to test.
525+
* @param {Function | Rule} rule The rule to test.
522526
* @param {{
523527
* valid: (ValidTestCase | string)[],
524528
* invalid: InvalidTestCase[]

0 commit comments

Comments
 (0)