Validating ESLint Configuration for Vue 3 in vue-cli
This test suite validates ESLint configuration and functionality specifically for Vue 3 projects within the Vue CLI ecosystem. It focuses on verifying proper ESLint setup and fragment support in Vue 3 templates.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
vuejs/vue-cli
packages/@vue/cli-plugin-eslint/__tests__/eslintVue3.spec.js
jest.setTimeout(300000)
const generateWithPlugin = require('@vue/cli-test-utils/generateWithPlugin')
const createOutside = require('@vue/cli-test-utils/createUpgradableProject')
test('Vue 3 base', async () => {
const { pkg } = await generateWithPlugin([
{
id: '@vue/cli-service',
apply: require('@vue/cli-service/generator'),
options: {
vueVersion: '3'
}
},
{
id: '@vue/cli-plugineslint',
apply: require('../generator'),
options: {}
}
])
expect(pkg.scripts.lint).toBeTruthy()
expect(pkg.eslintConfig.extends).toEqual([
'plugin:vue/vue3-essential', 'eslint:recommended'
])
})
test('Should allow fragments in Vue 3 projects', async () => {
const { write, run } = await createOutside('eslint-vue3-fragment', {
vueVersion: '3',
plugins: {
'@vue/cli-plugin-eslint': {}
}
})
await write('src/App.vue', `<template>
<img alt="Vue logo" src="./assets/logo.png">
<HelloWorld msg="Welcome to Your Vue.js App"/>
</template>
<script>
import HelloWorld from './components/HelloWorld.vue'
export default {
name: 'App',
components: {
HelloWorld
}
}
</script>
`)
await run('vue-cli-service lint')
})