TypeScript/scripts/eslint/tests/boolean-trivia.test.ts

84 lines
1.8 KiB
TypeScript

import { RuleTester } from "./support/RuleTester";
import rule = require("../rules/boolean-trivia");
const ruleTester = new RuleTester({
parserOptions: {
warnOnUnsupportedTypeScriptVersion: false,
},
parser: require.resolve("@typescript-eslint/parser"),
});
ruleTester.run("boolean-trivia", rule, {
valid: [
{
code: `
const fn = (prop: boolean) => {};
fn(/* boolean prop */ true);
`,
},
{
code: `
const fn = (prop: null) => {};
fn(/* null prop */ null);
`,
},
{
code: `
const fn = (prop: undefined) => {};
fn(/* undefined prop */ undefined);
`,
},
{
code: `
const fn = (prop: null) => {};
fn(/*null prop*/ null);
`,
},
{
code: `
const fn = (prop: boolean) => {};
fn(/* comment */
false
);
`,
},
{
code: `
const fn = (prop: boolean) => {};
fn.apply(null, true);
`,
},
],
invalid: [
{
code: `
const fn = (prop: null) => {};
fn(null);
`,
errors: [{ messageId: "booleanTriviaArgumentError" }],
},
{
code: `
const fn = (prop: boolean) => {};
fn(false);
`,
errors: [{ messageId: "booleanTriviaArgumentError" }],
},
{
code: `
const fn = (prop: boolean) => {};
fn(/* boolean arg */false);
`,
errors: [{ messageId: "booleanTriviaArgumentSpaceError" }],
},
{
code: `
const fn = (prop: boolean) => {};
fn(/* first comment */ /* second comment */ false);
`,
errors: [{ messageId: "booleanTriviaArgumentError" }],
},
],
});