eslint-plugin-typescript
Version:
TypeScript plugin for ESLint
90 lines (83 loc) • 2.44 kB
JavaScript
/**
* @fileoverview Enforces PascalCased class and interface names.
* @author Jed Fox
*/
"use strict";
//------------------------------------------------------------------------------
// Requirements
//------------------------------------------------------------------------------
const rule = require("../../../lib/rules/class-name-casing"),
RuleTester = require("eslint").RuleTester;
//------------------------------------------------------------------------------
// Tests
//------------------------------------------------------------------------------
const ruleTester = new RuleTester({
parser: "typescript-eslint-parser"
});
ruleTester.run("class-name-casing", rule, {
valid: [
"class ValidClassName {}",
{
code: "export default class {}",
parserOptions: {
sourceType: "module"
}
},
"var Foo = class {};",
"interface SomeInterface {}",
"class ClassNameWithDigit2 {}"
],
invalid: [
{
code: "class invalidClassName {}",
errors: [
{
message: "Class 'invalidClassName' must be PascalCased",
line: 1,
column: 7
}
]
},
{
code: "class Another_Invalid_Class_Name {}",
errors: [
{
message:
"Class 'Another_Invalid_Class_Name' must be PascalCased",
line: 1,
column: 7
}
]
},
{
code: "var foo = class {};",
errors: [
{
message: "Class 'foo' must be PascalCased",
line: 1,
column: 5
}
]
},
{
code: "var bar = class invalidName {}",
errors: [
{
message: "Class 'invalidName' must be PascalCased",
line: 1,
column: 17
}
]
},
{
code: "interface someInterface {}",
errors: [
{
message: "Interface 'someInterface' must be PascalCased",
line: 1,
column: 11
}
]
}
]
});