fune/tools/lint/eslint/eslint-plugin-mozilla/tests/no-useless-run-test.js
Victor Porof 5c7cdbd4ba Bug 1561435 - Format tools/, a=automatic-formatting
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D35940

--HG--
extra : source : d214f0c82813e5a8d3987debc490a2c11f1308ff
2019-07-05 11:18:19 +02:00

124 lines
2 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();
`
),
],
});