diff --git a/lib/utils.js b/lib/utils.js index 232a61d4..393e410f 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -9,7 +9,12 @@ const assert = require("node:assert"); const SUPPORTED_TEST_IDENTIFIERS = new Set(["test", "asyncTest", "only"]); const OLD_MODULE_HOOK_IDENTIFIERS = ["setup", "teardown"]; -const NEW_MODULE_HOOK_IDENTIFIERS = ["beforeEach", "afterEach"]; +const NEW_MODULE_HOOK_IDENTIFIERS = [ + "before", + "beforeEach", + "afterEach", + "after", +]; const ALL_MODULE_HOOK_IDENTIFIERS = new Set([ ...OLD_MODULE_HOOK_IDENTIFIERS, ...NEW_MODULE_HOOK_IDENTIFIERS, diff --git a/tests/lib/rules/no-arrow-tests.js b/tests/lib/rules/no-arrow-tests.js index 6ee28a52..0f656bcb 100644 --- a/tests/lib/rules/no-arrow-tests.js +++ b/tests/lib/rules/no-arrow-tests.js @@ -188,6 +188,26 @@ ruleTester.run("no-arrow-tests", rule, { }, ], }, + { + code: "QUnit.module('module', { before: () => {} });", + output: "QUnit.module('module', { before: function() {} });", + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], + }, + { + code: "QUnit.module('module', { after: () => {} });", + output: "QUnit.module('module', { after: function() {} });", + errors: [ + { + messageId: "noArrowFunction", + type: "ArrowFunctionExpression", + }, + ], + }, { code: "module('module', { setup: () => {} });", output: "module('module', { setup: function() {} });", diff --git a/tests/lib/rules/no-qunit-start-in-tests.js b/tests/lib/rules/no-qunit-start-in-tests.js index 1cf24d5b..baf4e3d3 100644 --- a/tests/lib/rules/no-qunit-start-in-tests.js +++ b/tests/lib/rules/no-qunit-start-in-tests.js @@ -57,6 +57,14 @@ ruleTester.run("no-qunit-start-in-tests", rule, { code: 'QUnit.module("module", { afterEach: function() { QUnit.start(); } });', errors: [createError("afterEach hook")], }, + { + code: 'QUnit.module("module", { before: function() { QUnit.start(); } });', + errors: [createError("before hook")], + }, + { + code: 'QUnit.module("module", { after: function() { QUnit.start(); } });', + errors: [createError("after hook")], + }, { code: 'QUnit.module("module", { setup: function() { QUnit.start(); } });', errors: [createError("setup hook")], diff --git a/tests/lib/rules/no-setup-teardown.js b/tests/lib/rules/no-setup-teardown.js index ac20316b..0a42d63d 100644 --- a/tests/lib/rules/no-setup-teardown.js +++ b/tests/lib/rules/no-setup-teardown.js @@ -29,8 +29,14 @@ ruleTester.run("no-setup-teardown", rule, { // afterEach "QUnit.module('Module', { afterEach: function () {} });", - // both - "QUnit.module('Module', { beforeEach: function () {}, afterEach: function () {} });", + // before + "QUnit.module('Module', { before: function () {} });", + + // after + "QUnit.module('Module', { after: function () {} });", + + // all + "QUnit.module('Module', { before: function () {}, beforeEach: function () {}, afterEach: function () {}, after: function () {} });", // other property names are not reported "QUnit.module('Module', { foo: function () {} });", diff --git a/tests/lib/rules/resolve-async.js b/tests/lib/rules/resolve-async.js index 0768fdbe..35c43253 100644 --- a/tests/lib/rules/resolve-async.js +++ b/tests/lib/rules/resolve-async.js @@ -195,6 +195,10 @@ ruleTester.run("resolve-async", rule, { code: "QUnit.module('name', { teardown: function () { QUnit.stop(); } });", errors: [createNeedStartCallsMessage("Property")], }, + { + code: "QUnit.module('name', { before: function () { QUnit.stop(); } });", + errors: [createNeedStartCallsMessage("Property")], + }, { code: "QUnit.module('name', { beforeEach: function () { QUnit.stop(); } });", errors: [createNeedStartCallsMessage("Property")], @@ -203,6 +207,10 @@ ruleTester.run("resolve-async", rule, { code: "QUnit.module('name', { afterEach: function () { QUnit.stop(); } });", errors: [createNeedStartCallsMessage("Property")], }, + { + code: "QUnit.module('name', { after: function () { QUnit.stop(); } });", + errors: [createNeedStartCallsMessage("Property")], + }, // Multiple start() calls needed {