Skip to content

Commit 39a7a8f

Browse files
committed
fix tests for real this time?
1 parent c320b67 commit 39a7a8f

File tree

2 files changed

+129
-9
lines changed

2 files changed

+129
-9
lines changed

lib/rules/no-unescaped-entities.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,17 @@ module.exports = {
125125
{
126126
data: { alt },
127127
fix(fixer) {
128-
const rangeStart = start + index + 1;
129-
const rangeEnd = rangeStart + 1;
128+
const lineToChange = i - node.loc.start.line;
130129

131-
return fixer.replaceTextRange([rangeStart, rangeEnd], alt);
130+
const newText = node.raw.split('\n').map((line, idx) => {
131+
if (idx === lineToChange) {
132+
return line.slice(0, index) + alt + line.slice(index + 1);
133+
}
134+
135+
return line;
136+
}).join('\n');
137+
138+
return fixer.replaceText(node, newText);
132139
},
133140
}
134141
)),

tests/lib/rules/no-unescaped-entities.js

Lines changed: 119 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,19 @@ ruleTester.run('no-unescaped-entities', rule, {
135135
{
136136
messageId: 'unescapedEntityAlts',
137137
data: { entity: '>', alts: '`>`' },
138+
suggestions: [
139+
{
140+
messageId: 'replaceWithAlt',
141+
data: { alt: '>' },
142+
output: `
143+
var Hello = createReactClass({
144+
render: function() {
145+
return <div>&gt; default parser</div>;
146+
}
147+
});
148+
`,
149+
},
150+
],
138151
},
139152
],
140153
},
@@ -152,6 +165,21 @@ ruleTester.run('no-unescaped-entities', rule, {
152165
{
153166
messageId: 'unescapedEntityAlts',
154167
data: { entity: '>', alts: '`&gt;`' },
168+
suggestions: [
169+
{
170+
messageId: 'replaceWithAlt',
171+
data: { alt: '&gt;' },
172+
output: `
173+
var Hello = createReactClass({
174+
render: function() {
175+
return <div>first line is ok
176+
so is second
177+
and here are some bad entities: &gt;</div>
178+
}
179+
});
180+
`,
181+
},
182+
],
155183
},
156184
],
157185
},
@@ -167,14 +195,86 @@ ruleTester.run('no-unescaped-entities', rule, {
167195
{
168196
messageId: 'unescapedEntityAlts',
169197
data: { entity: '\'', alts: '`&apos;`, `&lsquo;`, `&#39;`, `&rsquo;`' },
198+
suggestions: [
199+
{
200+
messageId: 'replaceWithAlt',
201+
data: { alt: '&apos;' },
202+
output: `
203+
var Hello = createReactClass({
204+
render: function() {
205+
return <div>Multiple errors: &apos;>> default parser</div>;
206+
}
207+
});
208+
`,
209+
},
210+
{
211+
messageId: 'replaceWithAlt',
212+
data: { alt: '&lsquo;' },
213+
output: `
214+
var Hello = createReactClass({
215+
render: function() {
216+
return <div>Multiple errors: &lsquo;>> default parser</div>;
217+
}
218+
});
219+
`,
220+
},
221+
{
222+
messageId: 'replaceWithAlt',
223+
data: { alt: '&#39;' },
224+
output: `
225+
var Hello = createReactClass({
226+
render: function() {
227+
return <div>Multiple errors: &#39;>> default parser</div>;
228+
}
229+
});
230+
`,
231+
},
232+
{
233+
messageId: 'replaceWithAlt',
234+
data: { alt: '&rsquo;' },
235+
output: `
236+
var Hello = createReactClass({
237+
render: function() {
238+
return <div>Multiple errors: &rsquo;>> default parser</div>;
239+
}
240+
});
241+
`,
242+
},
243+
],
170244
},
171245
{
172246
messageId: 'unescapedEntityAlts',
173247
data: { entity: '>', alts: '`&gt;`' },
248+
suggestions: [
249+
{
250+
messageId: 'replaceWithAlt',
251+
data: { alt: '&gt;' },
252+
output: `
253+
var Hello = createReactClass({
254+
render: function() {
255+
return <div>Multiple errors: '&gt;> default parser</div>;
256+
}
257+
});
258+
`,
259+
},
260+
],
174261
},
175262
{
176263
messageId: 'unescapedEntityAlts',
177264
data: { entity: '>', alts: '`&gt;`' },
265+
suggestions: [
266+
{
267+
messageId: 'replaceWithAlt',
268+
data: { alt: '&gt;' },
269+
output: `
270+
var Hello = createReactClass({
271+
render: function() {
272+
return <div>Multiple errors: '>&gt; default parser</div>;
273+
}
274+
});
275+
`,
276+
},
277+
],
178278
},
179279
],
180280
},
@@ -190,6 +290,19 @@ ruleTester.run('no-unescaped-entities', rule, {
190290
{
191291
messageId: 'unescapedEntityAlts',
192292
data: { entity: '}', alts: '`&#125;`' },
293+
suggestions: [
294+
{
295+
messageId: 'replaceWithAlt',
296+
data: { alt: '&#125;' },
297+
output: `
298+
var Hello = createReactClass({
299+
render: function() {
300+
return <div>{"Unbalanced braces - default parser"}&#125;</div>;
301+
}
302+
});
303+
`,
304+
},
305+
],
193306
},
194307
],
195308
},
@@ -212,12 +325,12 @@ ruleTester.run('no-unescaped-entities', rule, {
212325
messageId: 'replaceWithAlt',
213326
data: { alt: '&gt;' },
214327
output: `
215-
var Hello = createReactClass({
216-
render: function() {
217-
return <>&gt; babel-eslint</>;
218-
}
219-
});
220-
`,
328+
var Hello = createReactClass({
329+
render: function() {
330+
return <>&gt; babel-eslint</>;
331+
}
332+
});
333+
`,
221334
},
222335
],
223336
},

0 commit comments

Comments
 (0)