Skip to content

Commit ac71f14

Browse files
committed
test: add suggestions to no-unused-vars tests
1 parent 3bae67f commit ac71f14

File tree

3 files changed

+159
-8
lines changed

3 files changed

+159
-8
lines changed

tests/lib/rules/jsx-uses-vars.js

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,21 @@ describe('jsx-uses-vars', () => {
108108
`,
109109
errors: [
110110
{
111-
message: "'SomeComponent' is defined but never used."
111+
message: "'SomeComponent' is defined but never used.",
112+
suggestions: [
113+
{
114+
desc: "Remove unused variable 'SomeComponent'.",
115+
output: `
116+
/* eslint vue/jsx-uses-vars: 1 */
117+
import './SomeComponent.jsx';
118+
export default {
119+
render () {
120+
return <div></div>;
121+
},
122+
};
123+
`
124+
}
125+
]
112126
}
113127
]
114128
},
@@ -128,7 +142,23 @@ describe('jsx-uses-vars', () => {
128142
`,
129143
errors: [
130144
{
131-
message: "'wrapper' is assigned a value but never used."
145+
message: "'wrapper' is assigned a value but never used.",
146+
suggestions: [
147+
{
148+
desc: "Remove unused variable 'wrapper'.",
149+
output: `
150+
/* eslint vue/jsx-uses-vars: 1 */
151+
import SomeComponent from './SomeComponent.jsx';
152+
153+
154+
export default {
155+
render () {
156+
return <div></div>;
157+
},
158+
};
159+
`
160+
}
161+
]
132162
}
133163
]
134164
}

tests/lib/rules/script-setup-uses-vars.js

Lines changed: 65 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,37 @@ describe('script-setup-uses-vars', () => {
260260
errors: [
261261
{
262262
message: "'Bar' is defined but never used.",
263-
line: 6
263+
line: 6,
264+
suggestions: [
265+
{
266+
desc: "Remove unused variable 'Bar'.",
267+
output: `
268+
<script setup>
269+
/* eslint vue/script-setup-uses-vars: 1 */
270+
// imported components are also directly usable in template
271+
import Foo from './Foo.vue'
272+
import './Bar.vue'
273+
import { ref } from 'vue'
274+
275+
// write Composition API code just like in a normal setup()
276+
// but no need to manually return everything
277+
const count = ref(0)
278+
const inc = () => {
279+
count.value++
280+
}
281+
const foo = ref(42)
282+
console.log(foo.value)
283+
const bar = ref(42)
284+
bar.value++
285+
const baz = ref(42)
286+
</script>
287+
288+
<template>
289+
<Foo :count="count" @click="inc" />
290+
</template>
291+
`
292+
}
293+
]
264294
},
265295
{
266296
message: "'baz' is assigned a value but never used.",
@@ -285,7 +315,22 @@ describe('script-setup-uses-vars', () => {
285315
errors: [
286316
{
287317
message: "'camelCase' is defined but never used.",
288-
line: 4
318+
line: 4,
319+
suggestions: [
320+
{
321+
desc: "Remove unused variable 'camelCase'.",
322+
output: `
323+
<script setup>
324+
/* eslint vue/script-setup-uses-vars: 1 */
325+
import './component.vue'
326+
</script>
327+
328+
<template>
329+
<CamelCase />
330+
</template>
331+
`
332+
}
333+
]
289334
}
290335
]
291336
},
@@ -308,7 +353,24 @@ describe('script-setup-uses-vars', () => {
308353
errors: [
309354
{
310355
message: "'msg' is assigned a value but never used.",
311-
line: 5
356+
line: 5,
357+
suggestions: [
358+
{
359+
desc: "Remove unused variable 'msg'.",
360+
output: `
361+
<script setup>
362+
/* eslint vue/script-setup-uses-vars: 1 */
363+
if (a) {
364+
365+
}
366+
</script>
367+
368+
<template>
369+
<div>{{ msg }}</div>
370+
</template>
371+
`
372+
}
373+
]
312374
}
313375
]
314376
},

tests/lib/script-setup-vars.js

Lines changed: 62 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,36 @@ describe('vue-eslint-parser should properly mark the variables used in the templ
220220
errors: [
221221
{
222222
message: "'Bar' is defined but never used.",
223-
line: 5
223+
line: 5,
224+
suggestions: [
225+
{
226+
desc: "Remove unused variable 'Bar'.",
227+
output: `
228+
<script setup>
229+
// imported components are also directly usable in template
230+
import Foo from './Foo.vue'
231+
import './Bar.vue'
232+
import { ref } from 'vue'
233+
234+
// write Composition API code just like in a normal setup()
235+
// but no need to manually return everything
236+
const count = ref(0)
237+
const inc = () => {
238+
count.value++
239+
}
240+
const foo = ref(42)
241+
console.log(foo.value)
242+
const bar = ref(42)
243+
bar.value++
244+
const baz = ref(42)
245+
</script>
246+
247+
<template>
248+
<Foo :count="count" @click="inc" />
249+
</template>
250+
`
251+
}
252+
]
224253
},
225254
{
226255
message: "'baz' is assigned a value but never used.",
@@ -244,7 +273,21 @@ describe('vue-eslint-parser should properly mark the variables used in the templ
244273
errors: [
245274
{
246275
message: "'camelCase' is defined but never used.",
247-
line: 3
276+
line: 3,
277+
suggestions: [
278+
{
279+
desc: "Remove unused variable 'camelCase'.",
280+
output: `
281+
<script setup>
282+
import './component.vue'
283+
</script>
284+
285+
<template>
286+
<CamelCase />
287+
</template>
288+
`
289+
}
290+
]
248291
}
249292
]
250293
},
@@ -266,7 +309,23 @@ describe('vue-eslint-parser should properly mark the variables used in the templ
266309
errors: [
267310
{
268311
message: "'msg' is assigned a value but never used.",
269-
line: 4
312+
line: 4,
313+
suggestions: [
314+
{
315+
desc: "Remove unused variable 'msg'.",
316+
output: `
317+
<script setup>
318+
if (a) {
319+
320+
}
321+
</script>
322+
323+
<template>
324+
<div>{{ msg }}</div>
325+
</template>
326+
`
327+
}
328+
]
270329
}
271330
]
272331
},

0 commit comments

Comments
 (0)