Skip to content

Commit

Permalink
Extract rule tester initiation
Browse files Browse the repository at this point in the history
  • Loading branch information
yuhsianw committed Sep 27, 2023
1 parent 82730a0 commit 602aa65
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 47 deletions.
23 changes: 2 additions & 21 deletions test/lib/rules/no-undef-class.test.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,7 @@
import { RuleTester } from 'eslint';
import { test } from 'mocha';

import rule from '../../../lib/rules/no-undef-class';
import { RuleTester, addFilenameOption } from '../../utils';

import { addFilenameOption } from '../../utils';

RuleTester.describe = function (text, method) {
RuleTester.it.title = text;
return method.call(this);
};

RuleTester.it = function (text, method) {
test(RuleTester.it.title + ': ' + text, method);
};

const ruleTester = new RuleTester({
parserOptions: {
sourceType: 'module',
ecmaVersion: 6,
ecmaFeatures: { jsx: true },
},
});
const ruleTester = new RuleTester();

ruleTester.run('no-undef-class', rule, {
valid: [
Expand Down
23 changes: 2 additions & 21 deletions test/lib/rules/no-unused-class.test.js
Original file line number Diff line number Diff line change
@@ -1,26 +1,7 @@
import { RuleTester } from 'eslint';
import mocha from 'mocha';

import rule from '../../../lib/rules/no-unused-class';
import { RuleTester, addFilenameOption } from '../../utils';

import { addFilenameOption } from '../../utils';

RuleTester.describe = function (text, method) {
RuleTester.it.title = text;
return method.call(this);
};

RuleTester.it = function (text, method) {
mocha.test(RuleTester.it.title + ': ' + text, method);
};

const ruleTester = new RuleTester({
parserOptions: {
sourceType: 'module',
ecmaVersion: 6,
ecmaFeatures: { jsx: true },
},
});
const ruleTester = new RuleTester();

ruleTester.run('no-unused-class', rule, {
valid: [
Expand Down
33 changes: 28 additions & 5 deletions test/utils.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,36 @@
/* pattern taken from eslint-plugin-import */

import path from 'path';
import { RuleTester as EslintRuleTester } from 'eslint';
import { test } from 'mocha';

/**
* TODO: Find a way to remove this.
*/
/* pattern taken from eslint-plugin-import */
export function addFilenameOption(testCase) {
return {
...testCase,
// TODO: Find a way to remove this.
filename: path.resolve(__dirname, './files/foo.js'),
};
}


/**
* Customizing ESLint rule tester to be run by Mocha.
* @see https://eslint.org/docs/latest/integrate/nodejs-api#customizing-ruletester
*/
EslintRuleTester.describe = (text, method) => {
EslintRuleTester.it.title = text;
return method.call(this);
};

EslintRuleTester.it = (text, method) => {
test(EslintRuleTester.it.title + ': ' + text, method);
};

export const RuleTester = () => {
return new EslintRuleTester({
parserOptions: {
sourceType: 'module',
ecmaVersion: 6,
ecmaFeatures: { jsx: true },
},
});
};

0 comments on commit 602aa65

Please # to comment.