@@ -15,6 +15,12 @@ const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 6 } });
15
15
ruleTester . run ( 'require-meta-docs-suggestion' , rule , {
16
16
valid : [
17
17
'module.exports = context => {};' ,
18
+ // No suggestions reported, no violations reported, no meta object.
19
+ `
20
+ module.exports = {
21
+ create(context) {}
22
+ };
23
+ ` ,
18
24
// No suggestions reported, no violations reported, no docs object.
19
25
`
20
26
module.exports = {
@@ -49,6 +55,15 @@ ruleTester.run('require-meta-docs-suggestion', rule, {
49
55
}
50
56
};
51
57
` ,
58
+ // No suggestions reported (empty suggest array), no suggestion property.
59
+ `
60
+ module.exports = {
61
+ meta: { docs: {} },
62
+ create(context) {
63
+ context.report({node, message, suggest:[]});
64
+ }
65
+ };
66
+ ` ,
52
67
// No suggestions reported, suggestion property set to false.
53
68
`
54
69
module.exports = {
@@ -63,7 +78,16 @@ ruleTester.run('require-meta-docs-suggestion', rule, {
63
78
module.exports = {
64
79
meta: { docs: { suggestion: true } },
65
80
create(context) {
66
- context.report({node, message, suggest: []});
81
+ context.report({node, message, suggest: [{}]});
82
+ }
83
+ };
84
+ ` ,
85
+ // Provides *dynamic* suggestions, has suggestion property.
86
+ `
87
+ module.exports = {
88
+ meta: { docs: { suggestion: true } },
89
+ create(context) {
90
+ context.report({node, message, suggest: getSuggestions()});
67
91
}
68
92
};
69
93
` ,
@@ -85,44 +109,53 @@ ruleTester.run('require-meta-docs-suggestion', rule, {
85
109
86
110
invalid : [
87
111
{
88
- // Reports suggestions, no suggestion property, no docs object.
112
+ // Reports suggestions, no meta object, violation should be on create function.
113
+ code : `
114
+ module.exports = {
115
+ create(context) { context.report({node, message, suggest: [{}]}); }
116
+ };
117
+ ` ,
118
+ errors : [ { messageId : 'shouldBeSuggestable' , type : 'FunctionExpression' , line : 3 , column : 17 , endLine : 3 , endColumn : 78 } ] ,
119
+ } ,
120
+ {
121
+ // Reports suggestions, no docs object, violation should be on meta object.
89
122
code : `
90
123
module.exports = {
91
124
meta: {},
92
- create(context) { context.report({node, message, suggest: []}); }
125
+ create(context) { context.report({node, message, suggest: [{} ]}); }
93
126
};
94
127
` ,
95
- errors : [ { messageId : 'shouldBeSuggestable' , type : 'FunctionExpression' } ] ,
128
+ errors : [ { messageId : 'shouldBeSuggestable' , type : 'ObjectExpression' , line : 3 , column : 17 , endLine : 3 , endColumn : 19 } ] ,
96
129
} ,
97
130
{
98
- // Reports suggestions, no suggestion property, with docs object.
131
+ // Reports suggestions, no suggestion property, violation should be on docs object
99
132
code : `
100
133
module.exports = {
101
134
meta: { docs: {} },
102
- create(context) { context.report({node, loc, message, data, suggest: []}); }
135
+ create(context) { context.report({node, loc, message, data, suggest: [{} ]}); }
103
136
};
104
137
` ,
105
- errors : [ { messageId : 'shouldBeSuggestable' , type : 'FunctionExpression' } ] ,
138
+ errors : [ { messageId : 'shouldBeSuggestable' , type : 'ObjectExpression' , line : 3 , column : 25 , endLine : 3 , endColumn : 27 } ] ,
106
139
} ,
107
140
{
108
- // Reports suggestions, suggestion property set to false.
141
+ // Reports suggestions, suggestion property set to false, violation should be on `false`
109
142
code : `
110
143
module.exports = {
111
144
meta: { docs: { suggestion: false } },
112
- create(context) { context.report({node, message, suggest: []}); }
145
+ create(context) { context.report({node, message, suggest: [{} ]}); }
113
146
};
114
147
` ,
115
- errors : [ { messageId : 'shouldBeSuggestable' , type : 'Literal' } ] ,
148
+ errors : [ { messageId : 'shouldBeSuggestable' , type : 'Literal' , line : 3 , column : 39 , endLine : 3 , endColumn : 44 } ] ,
116
149
} ,
117
150
{
118
- // Does not report suggestions, suggestion property set to true.
151
+ // Does not report suggestions, suggestion property set to true, violation should be on `true`
119
152
code : `
120
153
module.exports = {
121
154
meta: { docs: { suggestion: true } },
122
155
create(context) { context.report({node, message}); }
123
156
};
124
157
` ,
125
- errors : [ { messageId : 'shouldNotBeSuggestable' , type : 'Literal' } ] ,
158
+ errors : [ { messageId : 'shouldNotBeSuggestable' , type : 'Literal' , line : 3 , column : 39 , endLine : 3 , endColumn : 43 } ] ,
126
159
} ,
127
160
] ,
128
161
} ) ;
0 commit comments