Files
tubestation/tools/lint/eslint/eslint-plugin-mozilla/tests/no-useless-run-test.js
2017-08-18 21:49:44 +01:00

115 lines
1.9 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
// ------------------------------------------------------------------------------
// Requirements
// ------------------------------------------------------------------------------
var rule = require("../lib/rules/no-useless-run-test");
var RuleTester = require("eslint/lib/testers/rule-tester");
const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 6 } });
// ------------------------------------------------------------------------------
// Tests
// ------------------------------------------------------------------------------
function invalidCode(code, output) {
let message =
"Useless run_test function - only contains run_next_test; whole function can be removed";
return {code, output, errors: [{message, type: "FunctionDeclaration"}]};
}
ruleTester.run("no-useless-run-test", rule, {
valid: [
"function run_test() {}",
"function run_test() {let args = 1; run_next_test();}",
"function run_test() {fakeCall(); run_next_test();}"
],
invalid: [
// Single-line case.
invalidCode(
"function run_test() { run_next_test(); }",
""),
// Multiple-line cases
invalidCode(`
function run_test() {
run_next_test();
}`,
``),
invalidCode(`
foo();
function run_test() {
run_next_test();
}
`,
`
foo();
`),
invalidCode(`
foo();
function run_test() {
run_next_test();
}
bar();
`,
`
foo();
bar();
`),
invalidCode(`
foo();
function run_test() {
run_next_test();
}
bar();`,
`
foo();
bar();`),
invalidCode(`
foo();
function run_test() {
run_next_test();
}
// A comment
bar();
`,
`
foo();
// A comment
bar();
`),
invalidCode(`
foo();
/**
* A useful comment.
*/
function run_test() {
run_next_test();
}
// A comment
bar();
`,
`
foo();
/**
* A useful comment.
*/
// A comment
bar();
`)
]
});