Skip to content

Commit 6274d96

Browse files
bmishljharb
authored andcommitted
[Tests] set eslint-plugin/consistent-output lint rule to always require test case output assertions
Use the more strict option for this internal lint rule. If a rule has no autofix, we should assert that there is no output. All of the test cases I fixed have no autofix, so the output matches the input. In eslint > v2, we can switch to `output: null` to represent this, and re-enable the `eslint-plugin/prefer-output-null` internal lint rule. https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/consistent-output.md https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-output-null.md
1 parent a4d301b commit 6274d96

File tree

4 files changed

+98
-10
lines changed

4 files changed

+98
-10
lines changed

.eslintrc.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,10 @@ rules:
2828
- allowTemplateLiterals: true
2929
avoidEscape: true
3030

31-
eslint-plugin/consistent-output: "error"
31+
eslint-plugin/consistent-output: ["error", "always"]
3232
eslint-plugin/meta-property-ordering: "error"
3333
eslint-plugin/no-deprecated-context-methods: "error"
3434
eslint-plugin/no-deprecated-report-api: "off"
35-
eslint-plugin/prefer-output-null: "error"
3635
eslint-plugin/prefer-replace-text: "error"
3736
eslint-plugin/report-message-format: "error"
3837
eslint-plugin/require-meta-schema: "error"

tests/src/rules/dynamic-import-chunkname.js

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
154154
)`,
155155
options,
156156
parser,
157+
output: `import(
158+
// webpackChunkName: "someModule"
159+
'someModule'
160+
)`,
157161
errors: [{
158162
message: nonBlockCommentError,
159163
type: 'CallExpression',
@@ -163,6 +167,7 @@ ruleTester.run('dynamic-import-chunkname', rule, {
163167
code: 'import(\'test\')',
164168
options,
165169
parser,
170+
output: 'import(\'test\')',
166171
errors: [{
167172
message: noLeadingCommentError,
168173
type: 'CallExpression',
@@ -175,6 +180,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
175180
)`,
176181
options,
177182
parser,
183+
output: `import(
184+
/* webpackChunkName: someModule */
185+
'someModule'
186+
)`,
178187
errors: [{
179188
message: invalidSyntaxCommentError,
180189
type: 'CallExpression',
@@ -187,6 +196,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
187196
)`,
188197
options,
189198
parser,
199+
output: `import(
200+
/* webpackChunkName: 'someModule' */
201+
'someModule'
202+
)`,
190203
errors: [{
191204
message: commentFormatError,
192205
type: 'CallExpression',
@@ -199,6 +212,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
199212
)`,
200213
options,
201214
parser,
215+
output: `import(
216+
/* webpackChunkName "someModule" */
217+
'someModule'
218+
)`,
202219
errors: [{
203220
message: invalidSyntaxCommentError,
204221
type: 'CallExpression',
@@ -211,6 +228,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
211228
)`,
212229
options,
213230
parser,
231+
output: `import(
232+
/* webpackChunkName:"someModule" */
233+
'someModule'
234+
)`,
214235
errors: [{
215236
message: commentFormatError,
216237
type: 'CallExpression',
@@ -223,6 +244,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
223244
)`,
224245
options,
225246
parser,
247+
output: `import(
248+
/*webpackChunkName: "someModule"*/
249+
'someModule'
250+
)`,
226251
errors: [{
227252
message: noPaddingCommentError,
228253
type: 'CallExpression',
@@ -235,6 +260,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
235260
)`,
236261
options,
237262
parser,
263+
output: `import(
264+
/* webpackChunkName : "someModule" */
265+
'someModule'
266+
)`,
238267
errors: [{
239268
message: commentFormatError,
240269
type: 'CallExpression',
@@ -247,6 +276,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
247276
)`,
248277
options,
249278
parser,
279+
output: `import(
280+
/* webpackChunkName: "someModule" ; */
281+
'someModule'
282+
)`,
250283
errors: [{
251284
message: invalidSyntaxCommentError,
252285
type: 'CallExpression',
@@ -259,6 +292,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
259292
)`,
260293
options,
261294
parser,
295+
output: `import(
296+
/* totally not webpackChunkName: "someModule" */
297+
'someModule'
298+
)`,
262299
errors: [{
263300
message: invalidSyntaxCommentError,
264301
type: 'CallExpression',
@@ -272,6 +309,11 @@ ruleTester.run('dynamic-import-chunkname', rule, {
272309
)`,
273310
options,
274311
parser,
312+
output: `import(
313+
/* webpackPrefetch: true */
314+
/* webpackChunk: "someModule" */
315+
'someModule'
316+
)`,
275317
errors: [{
276318
message: commentFormatError,
277319
type: 'CallExpression',
@@ -284,6 +326,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
284326
)`,
285327
options,
286328
parser,
329+
output: `import(
330+
/* webpackPrefetch: true, webpackChunk: "someModule" */
331+
'someModule'
332+
)`,
287333
errors: [{
288334
message: commentFormatError,
289335
type: 'CallExpression',
@@ -296,6 +342,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
296342
)`,
297343
options: pickyCommentOptions,
298344
parser,
345+
output: `import(
346+
/* webpackChunkName: "someModule123" */
347+
'someModule'
348+
)`,
299349
errors: [{
300350
message: pickyCommentFormatError,
301351
type: 'CallExpression',
@@ -307,6 +357,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
307357
'someModule'
308358
)`,
309359
options: multipleImportFunctionOptions,
360+
output: `dynamicImport(
361+
/* webpackChunkName "someModule" */
362+
'someModule'
363+
)`,
310364
errors: [{
311365
message: invalidSyntaxCommentError,
312366
type: 'CallExpression',
@@ -318,6 +372,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
318372
'someModule'
319373
)`,
320374
options: multipleImportFunctionOptions,
375+
output: `definitelyNotStaticImport(
376+
/* webpackChunkName "someModule" */
377+
'someModule'
378+
)`,
321379
errors: [{
322380
message: invalidSyntaxCommentError,
323381
type: 'CallExpression',
@@ -329,6 +387,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
329387
'someModule'
330388
)`,
331389
options,
390+
output: `dynamicImport(
391+
// webpackChunkName: "someModule"
392+
'someModule'
393+
)`,
332394
errors: [{
333395
message: nonBlockCommentError,
334396
type: 'CallExpression',
@@ -337,6 +399,7 @@ ruleTester.run('dynamic-import-chunkname', rule, {
337399
{
338400
code: 'dynamicImport(\'test\')',
339401
options,
402+
output: 'dynamicImport(\'test\')',
340403
errors: [{
341404
message: noLeadingCommentError,
342405
type: 'CallExpression',
@@ -348,6 +411,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
348411
'someModule'
349412
)`,
350413
options,
414+
output: `dynamicImport(
415+
/* webpackChunkName: someModule */
416+
'someModule'
417+
)`,
351418
errors: [{
352419
message: invalidSyntaxCommentError,
353420
type: 'CallExpression',
@@ -359,6 +426,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
359426
'someModule'
360427
)`,
361428
options,
429+
output: `dynamicImport(
430+
/* webpackChunkName: 'someModule' */
431+
'someModule'
432+
)`,
362433
errors: [{
363434
message: commentFormatError,
364435
type: 'CallExpression',
@@ -370,6 +441,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
370441
'someModule'
371442
)`,
372443
options,
444+
output: `dynamicImport(
445+
/* webpackChunkName "someModule" */
446+
'someModule'
447+
)`,
373448
errors: [{
374449
message: invalidSyntaxCommentError,
375450
type: 'CallExpression',
@@ -381,6 +456,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
381456
'someModule'
382457
)`,
383458
options,
459+
output: `dynamicImport(
460+
/* webpackChunkName:"someModule" */
461+
'someModule'
462+
)`,
384463
errors: [{
385464
message: commentFormatError,
386465
type: 'CallExpression',
@@ -392,6 +471,10 @@ ruleTester.run('dynamic-import-chunkname', rule, {
392471
'someModule'
393472
)`,
394473
options: pickyCommentOptions,
474+
output: `dynamicImport(
475+
/* webpackChunkName: "someModule123" */
476+
'someModule'
477+
)`,
395478
errors: [{
396479
message: pickyCommentFormatError,
397480
type: 'CallExpression',

tests/src/rules/no-commonjs.js

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,36 +68,41 @@ ruleTester.run('no-commonjs', require('rules/no-commonjs'), {
6868

6969
// imports
7070
...(semver.satisfies(eslintPkg.version, '< 4.0.0') ? [] : [
71-
{ code: 'var x = require("x")', errors: [ { message: IMPORT_MESSAGE }] },
72-
{ code: 'x = require("x")', errors: [ { message: IMPORT_MESSAGE }] },
73-
{ code: 'require("x")', errors: [ { message: IMPORT_MESSAGE }] },
71+
{ code: 'var x = require("x")', output: 'var x = require("x")', errors: [ { message: IMPORT_MESSAGE }] },
72+
{ code: 'x = require("x")', output: 'x = require("x")', errors: [ { message: IMPORT_MESSAGE }] },
73+
{ code: 'require("x")', output: 'require("x")', errors: [ { message: IMPORT_MESSAGE }] },
7474

7575
{ code: 'if (typeof window !== "undefined") require("x")',
7676
options: [{ allowConditionalRequire: false }],
77+
output: 'if (typeof window !== "undefined") require("x")',
7778
errors: [ { message: IMPORT_MESSAGE }],
7879
},
7980
{ code: 'if (typeof window !== "undefined") { require("x") }',
8081
options: [{ allowConditionalRequire: false }],
82+
output: 'if (typeof window !== "undefined") { require("x") }',
8183
errors: [ { message: IMPORT_MESSAGE }],
8284
},
8385
{ code: 'try { require("x") } catch (error) {}',
8486
options: [{ allowConditionalRequire: false }],
87+
output: 'try { require("x") } catch (error) {}',
8588
errors: [ { message: IMPORT_MESSAGE }],
8689
},
8790
]),
8891

8992
// exports
90-
{ code: 'exports.face = "palm"', errors: [ { message: EXPORT_MESSAGE }] },
91-
{ code: 'module.exports.face = "palm"', errors: [ { message: EXPORT_MESSAGE }] },
92-
{ code: 'module.exports = face', errors: [ { message: EXPORT_MESSAGE }] },
93-
{ code: 'exports = module.exports = {}', errors: [ { message: EXPORT_MESSAGE }] },
94-
{ code: 'var x = module.exports = {}', errors: [ { message: EXPORT_MESSAGE }] },
93+
{ code: 'exports.face = "palm"', output: 'exports.face = "palm"', errors: [ { message: EXPORT_MESSAGE }] },
94+
{ code: 'module.exports.face = "palm"', output: 'module.exports.face = "palm"', errors: [ { message: EXPORT_MESSAGE }] },
95+
{ code: 'module.exports = face', output: 'module.exports = face', errors: [ { message: EXPORT_MESSAGE }] },
96+
{ code: 'exports = module.exports = {}', output: 'exports = module.exports = {}', errors: [ { message: EXPORT_MESSAGE }] },
97+
{ code: 'var x = module.exports = {}', output: 'var x = module.exports = {}', errors: [ { message: EXPORT_MESSAGE }] },
9598
{ code: 'module.exports = {}',
9699
options: ['allow-primitive-modules'],
100+
output: 'module.exports = {}',
97101
errors: [ { message: EXPORT_MESSAGE }],
98102
},
99103
{ code: 'var x = module.exports',
100104
options: ['allow-primitive-modules'],
105+
output: 'var x = module.exports',
101106
errors: [ { message: EXPORT_MESSAGE }],
102107
},
103108
],

tests/src/rules/unambiguous.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ ruleTester.run('unambiguous', rule, {
5050
{
5151
code: 'function x() {}',
5252
parserOptions: { ecmaVersion: 2015, sourceType: 'module' },
53+
output: 'function x() {}',
5354
errors: ['This module could be parsed as a valid script.'],
5455
},
5556
],

0 commit comments

Comments
 (0)