Skip to content

Commit 720cfc2

Browse files
authored
Breaking: Update report-message-format to also apply to suggestion messages (#195)
1 parent d85c446 commit 720cfc2

File tree

2 files changed

+43
-3
lines changed

2 files changed

+43
-3
lines changed

lib/rules/report-message-format.js

+10-3
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,19 @@ module.exports = {
8383
) {
8484
const reportInfo = utils.getReportInfo(node.arguments, context);
8585
const message = reportInfo && reportInfo.message;
86+
const suggest = reportInfo && reportInfo.suggest;
8687

87-
if (!message) {
88-
return;
88+
if (message) {
89+
processMessageNode(message);
8990
}
9091

91-
processMessageNode(message);
92+
if (suggest && suggest.type === 'ArrayExpression') {
93+
suggest.elements
94+
.flatMap(obj => obj.properties)
95+
.filter(prop => prop.type === 'Property' && prop.key.type === 'Identifier' && prop.key.name === 'message')
96+
.map(prop => prop.value)
97+
.forEach(processMessageNode);
98+
}
9299
}
93100
},
94101
};

tests/lib/rules/report-message-format.js

+33
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,28 @@ ruleTester.run('report-message-format', rule, {
109109
`,
110110
options: ['^foo$'],
111111
},
112+
{
113+
// Suggestion message
114+
code: `
115+
module.exports = {
116+
create(context) {
117+
context.report({node, suggest: [{message: 'foo'}]});
118+
}
119+
};
120+
`,
121+
options: ['^foo$'],
122+
},
123+
{
124+
// Suggestion message with ternary expression
125+
code: `
126+
module.exports = {
127+
create(context) {
128+
context.report({node, suggest: foo ? []: [{}]});
129+
}
130+
};
131+
`,
132+
options: ['^foo$'],
133+
},
112134
{
113135
code: `
114136
module.exports = {
@@ -250,6 +272,17 @@ ruleTester.run('report-message-format', rule, {
250272
`,
251273
options: ['foo'],
252274
},
275+
{
276+
// Suggestion message
277+
code: `
278+
module.exports = {
279+
create(context) {
280+
context.report({node, suggest: [{message: 'FOO'}]});
281+
}
282+
};
283+
`,
284+
options: ['foo'],
285+
},
253286
{
254287
code: `
255288
module.exports = {

0 commit comments

Comments
 (0)