我正在尝试为基于打字稿的项目编写一些自定义 ESLint 规则。在我的项目中,我使用 eslint/typescript 进行 linting。
我已经编写了一个自定义 eslint 插件来验证自定义规则。现在我想为该自定义规则编写单元测试。我的测试文件如下所示:
/**
* @fileoverview This rule verifies that logic can only depend on other logic
* @author Dayem Siddiqui
*/
"use strict";
//------------------------------------------------------------------------------
// Requirements
//------------------------------------------------------------------------------
const typescriptParser = require('@typescript-eslint/parser')
var rule = require("../../../lib/rules/logic-dependency"),
RuleTester = require("eslint").RuleTester;
//------------------------------------------------------------------------------
// Tests
//------------------------------------------------------------------------------
typescriptParser.parseForESLint()
var ruleTester = new RuleTester({ parserOptions: {} });
ruleTester.run("logic-dependency", rule, {
valid: [
`class DeleteLogic {
}
class CreateLogic {
constructor(private deleteLogic: DeleteLogic) {}
}`
],
invalid: [
{
code: `class ExternalClient {
}
class UpdateLogic {
constructor(private externalClient: ExternalClient) {}
}`,
errors: [
{
message: "Logic cannot have a dependency on client",
type: "MethodDefinition"
}
]
}
]
});
现在我的测试失败了,因为默认情况下 eslint 只理解普通的 Javascript 代码。我知道我需要以某种方式将其配置为使用允许它理解/解析打字稿代码的自定义解析器。但是我无法在网上找到一个很好的例子来说明如何做到这一点