mirror of
https://git.proxmox.com/git/pve-eslint
synced 2025-10-04 16:10:05 +00:00
84 lines
3.1 KiB
JavaScript
84 lines
3.1 KiB
JavaScript
/**
|
|
* @fileoverview Tests for no-useless-constructor rule.
|
|
* @author Alberto Rodriguez
|
|
*/
|
|
|
|
"use strict";
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Requirements
|
|
//------------------------------------------------------------------------------
|
|
|
|
const rule = require("../../../lib/rules/no-useless-constructor");
|
|
const { RuleTester } = require("../../../lib/rule-tester");
|
|
|
|
//------------------------------------------------------------------------------
|
|
// Tests
|
|
//------------------------------------------------------------------------------
|
|
|
|
const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 6 } });
|
|
const error = { messageId: "noUselessConstructor", type: "MethodDefinition" };
|
|
|
|
ruleTester.run("no-useless-constructor", rule, {
|
|
valid: [
|
|
"class A { }",
|
|
"class A { constructor(){ doSomething(); } }",
|
|
"class A extends B { constructor(){} }",
|
|
"class A extends B { constructor(){ super('foo'); } }",
|
|
"class A extends B { constructor(foo, bar){ super(foo, bar, 1); } }",
|
|
"class A extends B { constructor(){ super(); doSomething(); } }",
|
|
"class A extends B { constructor(...args){ super(...args); doSomething(); } }",
|
|
"class A { dummyMethod(){ doSomething(); } }",
|
|
"class A extends B.C { constructor() { super(foo); } }",
|
|
"class A extends B.C { constructor([a, b, c]) { super(...arguments); } }",
|
|
"class A extends B.C { constructor(a = f()) { super(...arguments); } }",
|
|
"class A extends B { constructor(a, b, c) { super(a, b); } }",
|
|
"class A extends B { constructor(foo, bar){ super(foo); } }",
|
|
"class A extends B { constructor(test) { super(); } }",
|
|
"class A extends B { constructor() { foo; } }",
|
|
"class A extends B { constructor(foo, bar) { super(bar); } }",
|
|
{
|
|
code: "declare class A { constructor(options: any); }",
|
|
parser: require.resolve("../../fixtures/parsers/typescript-parsers/declare-class")
|
|
}
|
|
],
|
|
invalid: [
|
|
{
|
|
code: "class A { constructor(){} }",
|
|
errors: [error]
|
|
},
|
|
{
|
|
code: "class A { 'constructor'(){} }",
|
|
errors: [error]
|
|
},
|
|
{
|
|
code: "class A extends B { constructor() { super(); } }",
|
|
errors: [error]
|
|
},
|
|
{
|
|
code: "class A extends B { constructor(foo){ super(foo); } }",
|
|
errors: [error]
|
|
},
|
|
{
|
|
code: "class A extends B { constructor(foo, bar){ super(foo, bar); } }",
|
|
errors: [error]
|
|
},
|
|
{
|
|
code: "class A extends B { constructor(...args){ super(...args); } }",
|
|
errors: [error]
|
|
},
|
|
{
|
|
code: "class A extends B.C { constructor() { super(...arguments); } }",
|
|
errors: [error]
|
|
},
|
|
{
|
|
code: "class A extends B { constructor(a, b, ...c) { super(...arguments); } }",
|
|
errors: [error]
|
|
},
|
|
{
|
|
code: "class A extends B { constructor(a, b, ...c) { super(a, b, ...c); } }",
|
|
errors: [error]
|
|
}
|
|
]
|
|
});
|