1111const rule = require ( '../../../lib/rules/prefer-object-rule' ) ;
1212const RuleTester = require ( 'eslint' ) . RuleTester ;
1313
14- const ERROR = { messageId : 'preferObject' , line : 2 , column : 26 } ;
15-
1614// ------------------------------------------------------------------------------
1715// Tests
1816// ------------------------------------------------------------------------------
@@ -63,6 +61,18 @@ ruleTester.run('prefer-object-rule', rule, {
6361 };
6462 module.exports = rule;
6563 ` ,
64+
65+ {
66+ // ESM
67+ code : `
68+ export default {
69+ create(context) {
70+ return { Program() { context.report() } };
71+ },
72+ };
73+ ` ,
74+ parserOptions : { sourceType : 'module' } ,
75+ } ,
6676 ] ,
6777
6878 invalid : [
@@ -77,7 +87,7 @@ ruleTester.run('prefer-object-rule', rule, {
7787 return { Program() { context.report() } };
7888 }};
7989 ` ,
80- errors : [ ERROR ] ,
90+ errors : [ { messageId : 'preferObject' , line : 2 , column : 26 } ] ,
8191 } ,
8292 {
8393 code : `
@@ -90,7 +100,7 @@ ruleTester.run('prefer-object-rule', rule, {
90100 return { Program() { context.report() } };
91101 }};
92102 ` ,
93- errors : [ ERROR ] ,
103+ errors : [ { messageId : 'preferObject' , line : 2 , column : 26 } ] ,
94104 } ,
95105 {
96106 code : `
@@ -103,7 +113,35 @@ ruleTester.run('prefer-object-rule', rule, {
103113 return { Program() { context.report() } };
104114 }};
105115 ` ,
106- errors : [ ERROR ] ,
116+ errors : [ { messageId : 'preferObject' , line : 2 , column : 26 } ] ,
117+ } ,
118+
119+ // ESM
120+ {
121+ code : `
122+ export default function (context) {
123+ return { Program() { context.report() } };
124+ };
125+ ` ,
126+ output : `
127+ export default {create(context) {
128+ return { Program() { context.report() } };
129+ }};
130+ ` ,
131+ parserOptions : { sourceType : 'module' } ,
132+ errors : [ { messageId : 'preferObject' , line : 2 , column : 24 } ] ,
133+ } ,
134+ {
135+ code : 'export default function create() {};' ,
136+ output : 'export default {create() {}};' ,
137+ parserOptions : { sourceType : 'module' } ,
138+ errors : [ { messageId : 'preferObject' , line : 1 , column : 16 } ] ,
139+ } ,
140+ {
141+ code : 'export default () => {};' ,
142+ output : 'export default {create: () => {}};' ,
143+ parserOptions : { sourceType : 'module' } ,
144+ errors : [ { messageId : 'preferObject' , line : 1 , column : 16 } ] ,
107145 } ,
108146 ] ,
109147} ) ;
0 commit comments