Skip to content

Commit 2baa352

Browse files
committed
fix: reporting location in no-missing-message-ids
1 parent e2f3deb commit 2baa352

File tree

2 files changed

+45
-16
lines changed

2 files changed

+45
-16
lines changed

lib/rules/no-missing-placeholders.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,11 @@ module.exports = {
8080
});
8181
}
8282

83-
for (const { message, data } of reportMessagesAndDataArray.filter(
84-
(obj) => obj.message
85-
)) {
83+
for (const {
84+
message,
85+
messageId,
86+
data,
87+
} of reportMessagesAndDataArray.filter((obj) => obj.message)) {
8688
const messageStaticValue = getStaticValue(
8789
message,
8890
context.getScope()
@@ -112,7 +114,7 @@ module.exports = {
112114

113115
if (!matchingProperty) {
114116
context.report({
115-
node: message,
117+
node: data || messageId || message,
116118
messageId: 'placeholderDoesNotExist',
117119
data: { missingKey: match[1] },
118120
});

tests/lib/rules/no-missing-placeholders.js

+39-12
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,11 @@ const RuleTester = require('eslint').RuleTester;
1717
* @param {string} missingKey The placeholder that is missing
1818
* @returns {object} An expected error
1919
*/
20-
function error(missingKey, type = 'Literal') {
21-
return { type, message: `The placeholder {{${missingKey}}} does not exist.` };
20+
function error(missingKey, type, extra) {
21+
return {
22+
message: `The placeholder {{${missingKey}}} does not exist.`,
23+
...extra,
24+
};
2225
}
2326

2427
// ------------------------------------------------------------------------------
@@ -232,7 +235,7 @@ ruleTester.run('no-missing-placeholders', rule, {
232235
}
233236
};
234237
`,
235-
errors: [error('bar')],
238+
errors: [error('bar', 'Literal')],
236239
},
237240
{
238241
code: `
@@ -246,7 +249,7 @@ ruleTester.run('no-missing-placeholders', rule, {
246249
}
247250
};
248251
`,
249-
errors: [error('bar')],
252+
errors: [error('bar', 'Literal')],
250253
},
251254
{
252255
code: `
@@ -260,15 +263,15 @@ ruleTester.run('no-missing-placeholders', rule, {
260263
}
261264
};
262265
`,
263-
errors: [error('hasOwnProperty')],
266+
errors: [error('hasOwnProperty', 'ObjectExpression')],
264267
},
265268
{
266269
code: `
267270
module.exports = context => {
268271
context.report(node, 'foo {{bar}}', { baz: 'qux' }); return {};
269272
};
270273
`,
271-
errors: [error('bar')],
274+
errors: [error('bar', 'ObjectExpression')],
272275
},
273276
{
274277
// Message in variable.
@@ -286,7 +289,7 @@ ruleTester.run('no-missing-placeholders', rule, {
286289
context.report(node, { line: 1, column: 3 }, 'foo {{bar}}', { baz: 'baz' }); return {};
287290
};
288291
`,
289-
errors: [error('bar')],
292+
errors: [error('bar', 'ObjectExpression')],
290293
},
291294
{
292295
code: `
@@ -300,7 +303,19 @@ ruleTester.run('no-missing-placeholders', rule, {
300303
}
301304
};
302305
`,
303-
errors: [error('bar')],
306+
errors: [
307+
error(
308+
'bar',
309+
'ObjectExpression',
310+
// report on data
311+
{
312+
line: 7,
313+
endLine: 7,
314+
column: 21,
315+
endColumn: 39,
316+
}
317+
),
318+
],
304319
},
305320

306321
{
@@ -340,7 +355,7 @@ ruleTester.run('no-missing-placeholders', rule, {
340355
}
341356
};
342357
`,
343-
errors: [error('bar')],
358+
errors: [error('bar', 'ObjectExpression')],
344359
},
345360
{
346361
// Suggestion and messageId
@@ -359,7 +374,7 @@ ruleTester.run('no-missing-placeholders', rule, {
359374
}
360375
};
361376
`,
362-
errors: [error('bar')],
377+
errors: [error('bar', 'Literal')],
363378
},
364379
{
365380
// `create` in variable.
@@ -373,7 +388,7 @@ ruleTester.run('no-missing-placeholders', rule, {
373388
}
374389
module.exports = { create };
375390
`,
376-
errors: [error('hasOwnProperty')],
391+
errors: [error('hasOwnProperty', 'ObjectExpression')],
377392
},
378393
{
379394
// messageId.
@@ -388,7 +403,19 @@ ruleTester.run('no-missing-placeholders', rule, {
388403
}
389404
};
390405
`,
391-
errors: [error('bar')],
406+
errors: [
407+
error(
408+
'bar',
409+
'Literal',
410+
// report on the messageId
411+
{
412+
line: 7,
413+
endLine: 7,
414+
column: 26,
415+
endColumn: 39,
416+
}
417+
),
418+
],
392419
},
393420
],
394421
});

0 commit comments

Comments
 (0)