Bug 1463673 - Member expressions should also be allowed as expected arguments to Assert.throws/rejects. r?Mossop
MozReview-Commit-ID: Jhs3TD60bli
--- a/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/require-expected-throws-or-rejects.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/lib/rules/require-expected-throws-or-rejects.js
@@ -18,16 +18,17 @@ function checkArgs(context, node, name)
}
});
return;
}
if (!("regex" in node.arguments[1]) &&
node.arguments[1].type !== "FunctionExpression" &&
node.arguments[1].type !== "ArrowFunctionExpression" &&
+ node.arguments[1].type !== "MemberExpression" &&
(node.arguments[1].type !== "Identifier" ||
node.arguments[1].name === "undefined")) {
context.report({
node,
messageId: "requireExpected",
data: {
name
}
--- a/tools/lint/eslint/eslint-plugin-mozilla/tests/require-expected-throws-or-rejects.js
+++ b/tools/lint/eslint/eslint-plugin-mozilla/tests/require-expected-throws-or-rejects.js
@@ -24,17 +24,18 @@ ruleTester.run("no-useless-run-test", ru
valid: [
"Assert.throws(() => foo(), /assertion/);",
"Assert.throws(() => foo(), /assertion/, 'message');",
"Assert.throws(() => foo(), ex => {}, 'message');",
"Assert.throws(() => foo(), foo, 'message');",
"Assert.rejects(foo, /assertion/)",
"Assert.rejects(foo, /assertion/, 'msg')",
"Assert.rejects(foo, ex => {}, 'msg')",
- "Assert.rejects(foo, foo, 'msg')"
+ "Assert.rejects(foo, foo, 'msg')",
+ "Assert.rejects(foo, foo.bar, 'msg')"
],
invalid: [
invalidCode("Assert.throws(() => foo());",
"needsTwoArguments", "throws"),
invalidCode("Assert.throws(() => foo(), 'message');",
"requireExpected", "throws"),