TypeScript/scripts/eslint/tests/simple-indent.test.ts
2019-08-04 15:33:01 +03:00

334 lines
6.3 KiB
TypeScript

import { RuleTester } from "./support/RuleTester";
import rule = require("../rules/simple-indent");
const ruleTester = new RuleTester({
parserOptions: {
warnOnUnsupportedTypeScriptVersion: false,
},
parser: require.resolve("@typescript-eslint/parser"),
});
ruleTester.run("simple-indent", rule, {
valid: [
{
code: `
/**
* Comment
*/
`
},
{
code: `
module TestModule {
var func = () => {
console.warn("hi");
};
}
`,
},
{
code: `
class TestClass {
private variable;
testFunction() {
this.variable = 3;
}
}
`,
},
{
code: `
var obj = {
a: 1,
b: 2,
c: 3
};
`,
},
{
code: `
export enum TestEnum {
VALUE1,
VALUE2
}
`,
},
{
code: `
switch (integerValue) {
case 1:
console.warn("1");
break;
default:
console.warn("default");
break;
}
`,
},
{
code: `
function loops() {
for (var i = 0; i < 1; ++i) {
console.warn(i);
}
while (i < 1) {
console.warn(i);
}
do {
console.warn(i);
} while (i < 1);
if (i < 1) {
console.warn(i);
} else {
console.warn(i + 1);
}
}
`,
},
],
invalid: [
{
code: `
module TestModule {
\tvar testVariable = 123;
}
`,
output: `
module TestModule {
var testVariable = 123;
}
`,
errors: [
{ messageId: "simpleIndentError", line: 3, column: 2 },
],
},
{
code: `
function a() {
\t\tvar test = 123;
}
`,
output: `
function a() {
var test = 123;
}
`,
errors: [
{ messageId: "simpleIndentError", line: 3, column: 3 },
],
},
{
code: `
class TestClass {
\tprivate variable;
\ttestFunction() {
\t\tthis.variable = 3;
\t}
}
`,
output: `
class TestClass {
private variable;
testFunction() {
this.variable = 3;
}
}
`,
errors: [
{ messageId: "simpleIndentError", line: 3, column: 2 },
{ messageId: "simpleIndentError", line: 5, column: 2 },
{ messageId: "simpleIndentError", line: 6, column: 3 },
{ messageId: "simpleIndentError", line: 7, column: 2 },
],
},
{
code: `
var obj = {
\ta: 1,
\tb: 2,
\tc: 3
};
`,
output: `
var obj = {
a: 1,
b: 2,
c: 3
};
`,
errors: [
{ messageId: "simpleIndentError", line: 3, column: 2 },
{ messageId: "simpleIndentError", line: 4, column: 2 },
{ messageId: "simpleIndentError", line: 5, column: 2 },
]
},
{
code: `
enum TestEnum {
\tVALUE1,
VALUE2
}
`,
output: `
enum TestEnum {
VALUE1,
VALUE2
}
`,
errors: [
{ messageId: "simpleIndentError", line: 3, column: 2 },
],
},
{
code: `
switch (integerValue) {
\tcase 0:
\t\tconsole.warn("1");
\t\tbreak;
case 1:
console.warn("1");
break;
\tdefault:
\t\tconsole.log("2");
\t\tbreak;
}
`,
output: `
switch (integerValue) {
case 0:
console.warn("1");
break;
case 1:
console.warn("1");
break;
default:
console.log("2");
break;
}
`,
errors: [
{ messageId: "simpleIndentError", line: 3, column: 2 },
{ messageId: "simpleIndentError", line: 4, column: 3 },
{ messageId: "simpleIndentError", line: 5, column: 3 },
{ messageId: "simpleIndentError", line: 9, column: 2 },
{ messageId: "simpleIndentError", line: 10, column: 3 },
{ messageId: "simpleIndentError", line: 11, column: 3 },
]
},
{
code: `
for (var i = 0; i < 1; ++i) {
\tconsole.warn("123");
}
`,
output: `
for (var i = 0; i < 1; ++i) {
console.warn("123");
}
`,
errors: [
{ messageId: "simpleIndentError", line: 3, column: 2 },
],
},
{
code: `
while (i < 1) {
\tconsole.warn("123");
}
`,
output: `
while (i < 1) {
console.warn("123");
}
`,
errors: [
{ messageId: "simpleIndentError", line: 3, column: 2 },
]
},
{
code: `
do {
\tconsole.warn("123");
} while (i < 1);
`,
output: `
do {
console.warn("123");
} while (i < 1);
`,
errors: [
{ messageId: "simpleIndentError", line: 3, column: 2 },
]
},
{
code: `
if (i < 1) {
\tconsole.warn("123");
}
`,
output: `
if (i < 1) {
console.warn("123");
}
`,
errors: [
{ messageId: "simpleIndentError", line: 3, column: 2 },
]
},
{
code: `
var arr = [
\t1,
2
];
`,
output: `
var arr = [
1,
2
];
`,
errors: [
{ messageId: "simpleIndentError", line: 3, column: 2 },
]
},
{
code: `
var arr2 = [
{
\t\ta: 1,
b: 2
},
{
a: 3,
\t\tb: 4
}
];
`,
output: `
var arr2 = [
{
a: 1,
b: 2
},
{
a: 3,
b: 4
}
];
`,
errors: [
{ messageId: "simpleIndentError", line: 4, column: 3 },
{ messageId: "simpleIndentError", line: 9, column: 3 },
]
}
],
});