.'
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: '
',
+ options: ['foo'],
+ errors: [
+ {
+ message: 'Using `v-on:foo` is not allowed on this element.'
+ }
+ ]
+ }
+ ]
+})
diff --git a/tests/lib/rules/no-root-v-if.js b/tests/lib/rules/no-root-v-if.js
index 766c5b2ad..43119b7d0 100644
--- a/tests/lib/rules/no-root-v-if.js
+++ b/tests/lib/rules/no-root-v-if.js
@@ -5,12 +5,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-root-v-if')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('no-root-v-if', rule, {
diff --git a/tests/lib/rules/no-setup-props-destructure.js b/tests/lib/rules/no-setup-props-destructure.js
index 5d9a704d1..3e3989342 100644
--- a/tests/lib/rules/no-setup-props-destructure.js
+++ b/tests/lib/rules/no-setup-props-destructure.js
@@ -3,12 +3,15 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-setup-props-destructure')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2020, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 2020,
+ sourceType: 'module'
+ }
})
tester.run('no-setup-props-destructure', rule, {
diff --git a/tests/lib/rules/no-setup-props-reactivity-loss.js b/tests/lib/rules/no-setup-props-reactivity-loss.js
index 2e2480631..408ccb09e 100644
--- a/tests/lib/rules/no-setup-props-reactivity-loss.js
+++ b/tests/lib/rules/no-setup-props-reactivity-loss.js
@@ -3,12 +3,15 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-setup-props-reactivity-loss')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2020, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 2020,
+ sourceType: 'module'
+ }
})
tester.run('no-setup-props-reactivity-loss', rule, {
diff --git a/tests/lib/rules/no-shared-component-data.js b/tests/lib/rules/no-shared-component-data.js
index 49ad5c67a..50f433036 100644
--- a/tests/lib/rules/no-shared-component-data.js
+++ b/tests/lib/rules/no-shared-component-data.js
@@ -6,9 +6,9 @@
const rule = require('../../../lib/rules/no-shared-component-data')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
-const parserOptions = {
+const languageOptions = {
ecmaVersion: 2018,
sourceType: 'module'
}
@@ -27,7 +27,7 @@ ruleTester.run('no-shared-component-data', rule, {
}
})
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.js',
@@ -41,7 +41,7 @@ ruleTester.run('no-shared-component-data', rule, {
}
})
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.js',
@@ -64,7 +64,7 @@ ruleTester.run('no-shared-component-data', rule, {
}
})
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -77,7 +77,7 @@ ruleTester.run('no-shared-component-data', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -86,7 +86,7 @@ ruleTester.run('no-shared-component-data', rule, {
...foo
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -95,7 +95,7 @@ ruleTester.run('no-shared-component-data', rule, {
data
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -106,7 +106,7 @@ ruleTester.run('no-shared-component-data', rule, {
}
}
`,
- parserOptions
+ languageOptions
}
],
@@ -129,13 +129,13 @@ return {
}
})
`,
- parserOptions,
errors: [
{
message: '`data` property in component must be a function.',
line: 3
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.js',
@@ -155,13 +155,13 @@ return {
}
})
`,
- parserOptions,
errors: [
{
message: '`data` property in component must be a function.',
line: 3
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.vue',
@@ -181,13 +181,13 @@ return {
}
}
`,
- parserOptions,
errors: [
{
message: '`data` property in component must be a function.',
line: 3
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.vue',
@@ -207,13 +207,13 @@ return (/*b*/{
}
}
`,
- parserOptions,
errors: [
{
message: '`data` property in component must be a function.',
line: 3
}
- ]
+ ],
+ languageOptions
}
]
})
diff --git a/tests/lib/rules/no-side-effects-in-computed-properties.js b/tests/lib/rules/no-side-effects-in-computed-properties.js
index a72004060..7ba6c0827 100644
--- a/tests/lib/rules/no-side-effects-in-computed-properties.js
+++ b/tests/lib/rules/no-side-effects-in-computed-properties.js
@@ -5,16 +5,15 @@
'use strict'
const rule = require('../../../lib/rules/no-side-effects-in-computed-properties')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
-const parserOptions = {
+const languageOptions = {
ecmaVersion: 2020,
sourceType: 'module'
}
const ruleTester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions
+ languageOptions: { parser: require('vue-eslint-parser'), ...languageOptions }
})
ruleTester.run('no-side-effects-in-computed-properties', rule, {
@@ -392,13 +391,13 @@ ruleTester.run('no-side-effects-in-computed-properties', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
errors: [
{
line: 5,
message: 'Unexpected side effect in "test1" computed property.'
}
- ]
+ ],
+ languageOptions: { parser: require('@typescript-eslint/parser') }
},
{
diff --git a/tests/lib/rules/no-spaces-around-equal-signs-in-attribute.js b/tests/lib/rules/no-spaces-around-equal-signs-in-attribute.js
index da77bcdbe..9372a1c98 100644
--- a/tests/lib/rules/no-spaces-around-equal-signs-in-attribute.js
+++ b/tests/lib/rules/no-spaces-around-equal-signs-in-attribute.js
@@ -4,10 +4,10 @@
'use strict'
const rule = require('../../../lib/rules/no-spaces-around-equal-signs-in-attribute')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser')
+ languageOptions: { parser: require('vue-eslint-parser') }
})
tester.run('no-spaces-around-equal-signs-in-attribute', rule, {
diff --git a/tests/lib/rules/no-sparse-arrays.js b/tests/lib/rules/no-sparse-arrays.js
index 7c0020fd5..3a08561d1 100644
--- a/tests/lib/rules/no-sparse-arrays.js
+++ b/tests/lib/rules/no-sparse-arrays.js
@@ -3,12 +3,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-sparse-arrays')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('no-sparse-arrays', rule, {
diff --git a/tests/lib/rules/no-static-inline-styles.js b/tests/lib/rules/no-static-inline-styles.js
index 31e08b38e..c215d4bd3 100644
--- a/tests/lib/rules/no-static-inline-styles.js
+++ b/tests/lib/rules/no-static-inline-styles.js
@@ -4,14 +4,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-static-inline-styles')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-static-inline-styles', rule, {
diff --git a/tests/lib/rules/no-template-key.js b/tests/lib/rules/no-template-key.js
index 01add78e9..62f9f2a87 100644
--- a/tests/lib/rules/no-template-key.js
+++ b/tests/lib/rules/no-template-key.js
@@ -5,12 +5,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-template-key')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('no-template-key', rule, {
diff --git a/tests/lib/rules/no-template-shadow.js b/tests/lib/rules/no-template-shadow.js
index 6844b5f9f..3cc5218d1 100644
--- a/tests/lib/rules/no-template-shadow.js
+++ b/tests/lib/rules/no-template-shadow.js
@@ -5,11 +5,11 @@
'use strict'
const rule = require('../../../lib/rules/no-template-shadow')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const ruleTester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2018,
sourceType: 'module'
}
diff --git a/tests/lib/rules/no-template-target-blank.js b/tests/lib/rules/no-template-target-blank.js
index b9896d7ed..42d84f6b2 100644
--- a/tests/lib/rules/no-template-target-blank.js
+++ b/tests/lib/rules/no-template-target-blank.js
@@ -6,11 +6,10 @@
const rule = require('../../../lib/rules/no-template-target-blank')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const ruleTester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
ruleTester.run('no-template-target-blank', rule, {
diff --git a/tests/lib/rules/no-textarea-mustache.js b/tests/lib/rules/no-textarea-mustache.js
index ac34728e5..cc389f223 100644
--- a/tests/lib/rules/no-textarea-mustache.js
+++ b/tests/lib/rules/no-textarea-mustache.js
@@ -5,12 +5,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-textarea-mustache')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('no-textarea-mustache', rule, {
diff --git a/tests/lib/rules/no-this-in-before-route-enter.js b/tests/lib/rules/no-this-in-before-route-enter.js
index f3861672e..490385345 100644
--- a/tests/lib/rules/no-this-in-before-route-enter.js
+++ b/tests/lib/rules/no-this-in-before-route-enter.js
@@ -9,7 +9,7 @@
//------------------------------------------------------------------------------
const rule = require('../../../lib/rules/no-this-in-before-route-enter')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
//------------------------------------------------------------------------------
// Tests
@@ -59,8 +59,11 @@ export default {
`
const ruleTester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2020, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 2020,
+ sourceType: 'module'
+ }
})
ruleTester.run('no-this-in-before-route-enter', rule, {
valid: [
diff --git a/tests/lib/rules/no-undef-components.js b/tests/lib/rules/no-undef-components.js
index 0941f003d..8b332ba42 100644
--- a/tests/lib/rules/no-undef-components.js
+++ b/tests/lib/rules/no-undef-components.js
@@ -4,13 +4,13 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-undef-components')
const semver = require('semver')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
@@ -656,11 +656,13 @@ tester.run('no-undef-components', rule, {
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
}
],
@@ -751,12 +753,14 @@ tester.run('no-undef-components', rule, {
`,
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
},
- parser: require.resolve('vue-eslint-parser'),
errors: [
{
message:
@@ -803,19 +807,21 @@ tester.run('no-undef-components', rule, {
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 6,
- sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
- },
errors: [
{
message:
"The '
' component has been used, but 'Foo' only refers to a type.",
line: 7
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module',
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
+ }
},
// options API
diff --git a/tests/lib/rules/no-undef-properties.js b/tests/lib/rules/no-undef-properties.js
index 816d8b552..83812a248 100644
--- a/tests/lib/rules/no-undef-properties.js
+++ b/tests/lib/rules/no-undef-properties.js
@@ -4,15 +4,15 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-undef-properties')
const {
getTypeScriptFixtureTestOptions
} = require('../../test-utils/typescript')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
@@ -555,8 +555,10 @@ tester.run('no-undef-properties', rule, {
{{ foo }}
{{ unknown }}
`,
- parserOptions: {
- parser: require.resolve('@typescript-eslint/parser')
+ languageOptions: {
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
},
diff --git a/tests/lib/rules/no-unsupported-features.js b/tests/lib/rules/no-unsupported-features.js
index 77ee72055..c99f5f973 100644
--- a/tests/lib/rules/no-unsupported-features.js
+++ b/tests/lib/rules/no-unsupported-features.js
@@ -7,14 +7,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-unsupported-features')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/define-model.js b/tests/lib/rules/no-unsupported-features/define-model.js
index 0307d1f9f..a82aad26f 100644
--- a/tests/lib/rules/no-unsupported-features/define-model.js
+++ b/tests/lib/rules/no-unsupported-features/define-model.js
@@ -4,16 +4,13 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('define-model', '^3.3.0')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/define-model', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/define-options.js b/tests/lib/rules/no-unsupported-features/define-options.js
index a53bd776c..6a270a071 100644
--- a/tests/lib/rules/no-unsupported-features/define-options.js
+++ b/tests/lib/rules/no-unsupported-features/define-options.js
@@ -4,14 +4,14 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('define-options', '^3.2.0')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2019,
sourceType: 'module'
}
diff --git a/tests/lib/rules/no-unsupported-features/define-slots.js b/tests/lib/rules/no-unsupported-features/define-slots.js
index 2fef117c7..95d61199d 100644
--- a/tests/lib/rules/no-unsupported-features/define-slots.js
+++ b/tests/lib/rules/no-unsupported-features/define-slots.js
@@ -4,16 +4,13 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('define-slots', '^3.2.0')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/define-slots', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/dynamic-directive-arguments.js b/tests/lib/rules/no-unsupported-features/dynamic-directive-arguments.js
index 61b39e738..ced8dce9e 100644
--- a/tests/lib/rules/no-unsupported-features/dynamic-directive-arguments.js
+++ b/tests/lib/rules/no-unsupported-features/dynamic-directive-arguments.js
@@ -4,7 +4,7 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
@@ -13,10 +13,7 @@ const buildOptions = utils.optionsBuilder(
'^2.5.0'
)
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/dynamic-directive-arguments', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/is-attribute-with-vue-prefix.js b/tests/lib/rules/no-unsupported-features/is-attribute-with-vue-prefix.js
index adcc64835..1ee6cc0cc 100644
--- a/tests/lib/rules/no-unsupported-features/is-attribute-with-vue-prefix.js
+++ b/tests/lib/rules/no-unsupported-features/is-attribute-with-vue-prefix.js
@@ -4,7 +4,7 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
@@ -13,10 +13,7 @@ const buildOptions = utils.optionsBuilder(
'^3.1.0'
)
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/is-attribute-with-vue-prefix', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/script-setup.js b/tests/lib/rules/no-unsupported-features/script-setup.js
index 51ffb1cea..183fa88f2 100644
--- a/tests/lib/rules/no-unsupported-features/script-setup.js
+++ b/tests/lib/rules/no-unsupported-features/script-setup.js
@@ -4,16 +4,13 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('script-setup', '^3.0.0')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/script-setup', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/slot-scope-attribute.js b/tests/lib/rules/no-unsupported-features/slot-scope-attribute.js
index 8f8b0b136..c1e05f10d 100644
--- a/tests/lib/rules/no-unsupported-features/slot-scope-attribute.js
+++ b/tests/lib/rules/no-unsupported-features/slot-scope-attribute.js
@@ -4,16 +4,13 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('slot-scope-attribute', '^2.4.0')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/slot-scope-attribute', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/style-css-vars-injection.js b/tests/lib/rules/no-unsupported-features/style-css-vars-injection.js
index df94061f7..c9ba478ad 100644
--- a/tests/lib/rules/no-unsupported-features/style-css-vars-injection.js
+++ b/tests/lib/rules/no-unsupported-features/style-css-vars-injection.js
@@ -4,14 +4,14 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('style-css-vars-injection', '^3.0.3')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2019,
sourceType: 'module'
}
diff --git a/tests/lib/rules/no-unsupported-features/v-bind-attr-modifier.js b/tests/lib/rules/no-unsupported-features/v-bind-attr-modifier.js
index 912c98d9e..7b9931e3c 100644
--- a/tests/lib/rules/no-unsupported-features/v-bind-attr-modifier.js
+++ b/tests/lib/rules/no-unsupported-features/v-bind-attr-modifier.js
@@ -4,16 +4,13 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('v-bind-attr-modifier', '^3.1.0')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/v-bind-attr-modifier', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/v-bind-prop-modifier-shorthand.js b/tests/lib/rules/no-unsupported-features/v-bind-prop-modifier-shorthand.js
index 58ffda146..7b1742412 100644
--- a/tests/lib/rules/no-unsupported-features/v-bind-prop-modifier-shorthand.js
+++ b/tests/lib/rules/no-unsupported-features/v-bind-prop-modifier-shorthand.js
@@ -4,7 +4,7 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
@@ -13,10 +13,7 @@ const buildOptions = utils.optionsBuilder(
'^2.6.0'
)
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/v-bind-prop-modifier-shorthand', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/v-bind-same-name-shorthand.js b/tests/lib/rules/no-unsupported-features/v-bind-same-name-shorthand.js
index 088ba7cbc..3c5e2c8a4 100644
--- a/tests/lib/rules/no-unsupported-features/v-bind-same-name-shorthand.js
+++ b/tests/lib/rules/no-unsupported-features/v-bind-same-name-shorthand.js
@@ -4,7 +4,7 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
@@ -13,10 +13,7 @@ const buildOptions = utils.optionsBuilder(
'^3.3.0'
)
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/v-bind-same-name-shorthand', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/v-is.js b/tests/lib/rules/no-unsupported-features/v-is.js
index 3212a7578..c9cf3fdc5 100644
--- a/tests/lib/rules/no-unsupported-features/v-is.js
+++ b/tests/lib/rules/no-unsupported-features/v-is.js
@@ -4,16 +4,13 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('v-is', '^2.6.0')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/v-is', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/v-memo.js b/tests/lib/rules/no-unsupported-features/v-memo.js
index 8c3ea1249..3b9569cb0 100644
--- a/tests/lib/rules/no-unsupported-features/v-memo.js
+++ b/tests/lib/rules/no-unsupported-features/v-memo.js
@@ -4,16 +4,13 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('v-memo', '^3.1.0')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/v-memo', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/v-model-argument.js b/tests/lib/rules/no-unsupported-features/v-model-argument.js
index ceb79784e..e7fe0a4ec 100644
--- a/tests/lib/rules/no-unsupported-features/v-model-argument.js
+++ b/tests/lib/rules/no-unsupported-features/v-model-argument.js
@@ -4,16 +4,13 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('v-model-argument', '^2.6.0')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/v-model-argument', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/v-model-custom-modifiers.js b/tests/lib/rules/no-unsupported-features/v-model-custom-modifiers.js
index 521272738..066230306 100644
--- a/tests/lib/rules/no-unsupported-features/v-model-custom-modifiers.js
+++ b/tests/lib/rules/no-unsupported-features/v-model-custom-modifiers.js
@@ -4,16 +4,13 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('v-model-custom-modifiers', '^2.6.0')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/v-model-custom-modifiers', rule, {
diff --git a/tests/lib/rules/no-unsupported-features/v-slot.js b/tests/lib/rules/no-unsupported-features/v-slot.js
index a382a7eda..71be84273 100644
--- a/tests/lib/rules/no-unsupported-features/v-slot.js
+++ b/tests/lib/rules/no-unsupported-features/v-slot.js
@@ -4,16 +4,13 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../../eslint-compat').RuleTester
const rule = require('../../../../lib/rules/no-unsupported-features')
const utils = require('./utils')
const buildOptions = utils.optionsBuilder('v-slot', '^2.5.0')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 2019
- }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2019 }
})
tester.run('no-unsupported-features/v-slot', rule, {
diff --git a/tests/lib/rules/no-unused-components.js b/tests/lib/rules/no-unused-components.js
index c87166cbd..4078af76f 100644
--- a/tests/lib/rules/no-unused-components.js
+++ b/tests/lib/rules/no-unused-components.js
@@ -4,12 +4,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-unused-components')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2018,
sourceType: 'module'
}
diff --git a/tests/lib/rules/no-unused-emit-declarations.js b/tests/lib/rules/no-unused-emit-declarations.js
index f3189ea82..17b2f441b 100644
--- a/tests/lib/rules/no-unused-emit-declarations.js
+++ b/tests/lib/rules/no-unused-emit-declarations.js
@@ -4,15 +4,15 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-unused-emit-declarations')
const {
getTypeScriptFixtureTestOptions
} = require('../../test-utils/typescript')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
@@ -345,7 +345,9 @@ tester.run('no-unused-emit-declarations', rule, {
}>()
const change = () => emit('foo');
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
filename: 'test.vue',
@@ -665,7 +667,6 @@ tester.run('no-unused-emit-declarations', rule, {
}>()
const change = () => emit('foo');
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') },
errors: [
{
messageId: 'unused',
@@ -673,7 +674,10 @@ tester.run('no-unused-emit-declarations', rule, {
column: 11,
endColumn: 36
}
- ]
+ ],
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
filename: 'test.vue',
@@ -699,7 +703,6 @@ tester.run('no-unused-emit-declarations', rule, {
defineEmits<{(e: 'foo'): void}>()
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') },
errors: [
{
messageId: 'unused',
@@ -707,7 +710,10 @@ tester.run('no-unused-emit-declarations', rule, {
column: 22,
endColumn: 38
}
- ]
+ ],
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
filename: 'test.vue',
diff --git a/tests/lib/rules/no-unused-properties.js b/tests/lib/rules/no-unused-properties.js
index 93a5279f0..65b185298 100644
--- a/tests/lib/rules/no-unused-properties.js
+++ b/tests/lib/rules/no-unused-properties.js
@@ -4,7 +4,7 @@
*/
'use strict'
-const { RuleTester, Linter } = require('eslint')
+const { RuleTester, Linter } = require('../../eslint-compat')
const assert = require('assert')
const rule = require('../../../lib/rules/no-unused-properties')
const {
@@ -12,8 +12,8 @@ const {
} = require('../../test-utils/typescript')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
@@ -2131,8 +2131,10 @@ tester.run('no-unused-properties', rule, {
`,
- parserOptions: {
- parser: '@typescript-eslint/parser'
+ languageOptions: {
+ parserOptions: {
+ parser: '@typescript-eslint/parser'
+ }
}
},
@@ -3900,16 +3902,18 @@ tester.run('no-unused-properties', rule, {
// https://github.com/vuejs/eslint-plugin-vue/issues/1789
describe('`vue/no-unused-properties` and `vue/no-unused-components` should not conflict.', () => {
const linter = new Linter()
- linter.defineParser('vue-eslint-parser', require('vue-eslint-parser'))
- linter.defineRule(
- 'vue/no-unused-components',
- require('../../../lib/rules/no-unused-components')
- )
- linter.defineRule('vue/no-unused-properties', rule)
-
const config = {
- parser: 'vue-eslint-parser',
- parserOptions: {
+ files: ['**/*.vue'],
+ plugins: {
+ vue: {
+ rules: {
+ 'no-unused-components': require('../../../lib/rules/no-unused-components'),
+ 'no-unused-properties': rule
+ }
+ }
+ },
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
},
diff --git a/tests/lib/rules/no-unused-refs.js b/tests/lib/rules/no-unused-refs.js
index 2547ef05d..7e092ee87 100644
--- a/tests/lib/rules/no-unused-refs.js
+++ b/tests/lib/rules/no-unused-refs.js
@@ -4,12 +4,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-unused-refs')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/no-unused-vars.js b/tests/lib/rules/no-unused-vars.js
index 5a128e762..39cf9a4c7 100644
--- a/tests/lib/rules/no-unused-vars.js
+++ b/tests/lib/rules/no-unused-vars.js
@@ -5,12 +5,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-unused-vars')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('no-unused-vars', rule, {
diff --git a/tests/lib/rules/no-use-computed-property-like-method.js b/tests/lib/rules/no-use-computed-property-like-method.js
index 4b49c9dbc..63ddc0dd2 100644
--- a/tests/lib/rules/no-use-computed-property-like-method.js
+++ b/tests/lib/rules/no-use-computed-property-like-method.js
@@ -3,12 +3,15 @@
* See LICENSE file in root directory for full license.
*/
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-use-computed-property-like-method')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2020, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 2020,
+ sourceType: 'module'
+ }
})
tester.run('no-use-computed-property-like-method', rule, {
diff --git a/tests/lib/rules/no-use-v-else-with-v-for.js b/tests/lib/rules/no-use-v-else-with-v-for.js
index 8778cc125..896ac122d 100644
--- a/tests/lib/rules/no-use-v-else-with-v-for.js
+++ b/tests/lib/rules/no-use-v-else-with-v-for.js
@@ -1,11 +1,10 @@
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-use-v-else-with-v-for')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('no-use-v-else-with-v-for', rule, {
diff --git a/tests/lib/rules/no-use-v-if-with-v-for.js b/tests/lib/rules/no-use-v-if-with-v-for.js
index 17cc77240..6d2661a4c 100644
--- a/tests/lib/rules/no-use-v-if-with-v-for.js
+++ b/tests/lib/rules/no-use-v-if-with-v-for.js
@@ -3,12 +3,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-use-v-if-with-v-for')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('no-use-v-if-with-v-for', rule, {
diff --git a/tests/lib/rules/no-useless-concat.js b/tests/lib/rules/no-useless-concat.js
index 28ac8240d..eca6901bb 100644
--- a/tests/lib/rules/no-useless-concat.js
+++ b/tests/lib/rules/no-useless-concat.js
@@ -3,12 +3,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-useless-concat')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('no-useless-concat', rule, {
diff --git a/tests/lib/rules/no-useless-mustaches.js b/tests/lib/rules/no-useless-mustaches.js
index 2627eeedf..a40d93f7d 100644
--- a/tests/lib/rules/no-useless-mustaches.js
+++ b/tests/lib/rules/no-useless-mustaches.js
@@ -3,12 +3,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-useless-mustaches.js')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/no-useless-template-attributes.js b/tests/lib/rules/no-useless-template-attributes.js
index 7639b0f33..bb34c4170 100644
--- a/tests/lib/rules/no-useless-template-attributes.js
+++ b/tests/lib/rules/no-useless-template-attributes.js
@@ -4,12 +4,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-useless-template-attributes')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/no-useless-v-bind.js b/tests/lib/rules/no-useless-v-bind.js
index 63a55dce9..907125cc1 100644
--- a/tests/lib/rules/no-useless-v-bind.js
+++ b/tests/lib/rules/no-useless-v-bind.js
@@ -3,12 +3,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-useless-v-bind.js')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/no-v-for-template-key-on-child.js b/tests/lib/rules/no-v-for-template-key-on-child.js
index b3bbf3fec..7c65a2012 100644
--- a/tests/lib/rules/no-v-for-template-key-on-child.js
+++ b/tests/lib/rules/no-v-for-template-key-on-child.js
@@ -3,12 +3,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-v-for-template-key-on-child')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('no-v-for-template-key-on-child', rule, {
diff --git a/tests/lib/rules/no-v-for-template-key.js b/tests/lib/rules/no-v-for-template-key.js
index c784087f6..8de3ddc9c 100644
--- a/tests/lib/rules/no-v-for-template-key.js
+++ b/tests/lib/rules/no-v-for-template-key.js
@@ -3,12 +3,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-v-for-template-key')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('no-v-for-template-key', rule, {
diff --git a/tests/lib/rules/no-v-html.js b/tests/lib/rules/no-v-html.js
index 8e62fb770..d9ae67ca1 100644
--- a/tests/lib/rules/no-v-html.js
+++ b/tests/lib/rules/no-v-html.js
@@ -4,12 +4,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-v-html')
const ruleTester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
ruleTester.run('no-v-html', rule, {
diff --git a/tests/lib/rules/no-v-model-argument.js b/tests/lib/rules/no-v-model-argument.js
index 2f02abb83..f8bb7f140 100644
--- a/tests/lib/rules/no-v-model-argument.js
+++ b/tests/lib/rules/no-v-model-argument.js
@@ -5,11 +5,10 @@
'use strict'
const rule = require('../../../lib/rules/no-v-model-argument')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const ruleTester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
ruleTester.run('no-v-model-argument', rule, {
diff --git a/tests/lib/rules/no-v-text-v-html-on-component.js b/tests/lib/rules/no-v-text-v-html-on-component.js
index 1dafc17d8..ebf2901ba 100644
--- a/tests/lib/rules/no-v-text-v-html-on-component.js
+++ b/tests/lib/rules/no-v-text-v-html-on-component.js
@@ -4,12 +4,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-v-text-v-html-on-component')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/no-v-text.js b/tests/lib/rules/no-v-text.js
index df355f99e..76756d188 100644
--- a/tests/lib/rules/no-v-text.js
+++ b/tests/lib/rules/no-v-text.js
@@ -5,12 +5,11 @@
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-v-text')
const ruleTester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
ruleTester.run('no-v-text', rule, {
diff --git a/tests/lib/rules/no-watch-after-await.js b/tests/lib/rules/no-watch-after-await.js
index 97ec9c608..06da09cf3 100644
--- a/tests/lib/rules/no-watch-after-await.js
+++ b/tests/lib/rules/no-watch-after-await.js
@@ -3,12 +3,15 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/no-watch-after-await')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2020, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 2020,
+ sourceType: 'module'
+ }
})
tester.run('no-watch-after-await', rule, {
@@ -127,7 +130,7 @@ tester.run('no-watch-after-await', rule, {
await doSomething()
`,
- parserOptions: { ecmaVersion: 2022 }
+ languageOptions: { ecmaVersion: 2022 }
},
{
filename: 'test.vue',
@@ -140,7 +143,7 @@ tester.run('no-watch-after-await', rule, {
watchEffect(() => { /* ... */ }) // not error
`,
- parserOptions: { ecmaVersion: 2022 }
+ languageOptions: { ecmaVersion: 2022 }
},
{
filename: 'test.vue',
@@ -153,7 +156,7 @@ tester.run('no-watch-after-await', rule, {
watchEffect(() => { /* ... */ }) // not error
`,
- parserOptions: { ecmaVersion: 2022 }
+ languageOptions: { ecmaVersion: 2022 }
},
{
filename: 'test.vue',
@@ -167,7 +170,7 @@ tester.run('no-watch-after-await', rule, {
watch(foo, () => { /* ... */ })
`,
- parserOptions: { ecmaVersion: 2022 }
+ languageOptions: { ecmaVersion: 2022 }
}
],
invalid: [
diff --git a/tests/lib/rules/object-curly-newline.js b/tests/lib/rules/object-curly-newline.js
index 9fcacb77e..6363a50e9 100644
--- a/tests/lib/rules/object-curly-newline.js
+++ b/tests/lib/rules/object-curly-newline.js
@@ -3,12 +3,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/object-curly-newline')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2020 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2020 }
})
tester.run('object-curly-newline', rule, {
diff --git a/tests/lib/rules/object-curly-spacing.js b/tests/lib/rules/object-curly-spacing.js
index eb26eab96..181587eb2 100644
--- a/tests/lib/rules/object-curly-spacing.js
+++ b/tests/lib/rules/object-curly-spacing.js
@@ -3,12 +3,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/object-curly-spacing')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('object-curly-spacing', rule, {
diff --git a/tests/lib/rules/object-property-newline.js b/tests/lib/rules/object-property-newline.js
index 2de002caf..31e37dfb1 100644
--- a/tests/lib/rules/object-property-newline.js
+++ b/tests/lib/rules/object-property-newline.js
@@ -3,12 +3,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/object-property-newline')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2020 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2020 }
})
tester.run('object-property-newline', rule, {
diff --git a/tests/lib/rules/object-shorthand.js b/tests/lib/rules/object-shorthand.js
index 62a9a9efa..f216048f0 100644
--- a/tests/lib/rules/object-shorthand.js
+++ b/tests/lib/rules/object-shorthand.js
@@ -4,12 +4,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/object-shorthand')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/one-component-per-file.js b/tests/lib/rules/one-component-per-file.js
index 579c470fc..7c62e69a9 100644
--- a/tests/lib/rules/one-component-per-file.js
+++ b/tests/lib/rules/one-component-per-file.js
@@ -5,10 +5,10 @@
'use strict'
const rule = require('../../../lib/rules/one-component-per-file')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const ruleTester = new RuleTester({
- parserOptions: {
+ languageOptions: {
ecmaVersion: 2018,
sourceType: 'module'
}
diff --git a/tests/lib/rules/operator-linebreak.js b/tests/lib/rules/operator-linebreak.js
index 8b0c731e6..68843a7ef 100644
--- a/tests/lib/rules/operator-linebreak.js
+++ b/tests/lib/rules/operator-linebreak.js
@@ -3,12 +3,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/operator-linebreak')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2020 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2020 }
})
tester.run('operator-linebreak', rule, {
diff --git a/tests/lib/rules/order-in-components.js b/tests/lib/rules/order-in-components.js
index 669383e52..25010f483 100644
--- a/tests/lib/rules/order-in-components.js
+++ b/tests/lib/rules/order-in-components.js
@@ -5,14 +5,13 @@
'use strict'
const rule = require('../../../lib/rules/order-in-components')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
-const ruleTester = new RuleTester()
-
-const parserOptions = {
+const languageOptions = {
ecmaVersion: 2020,
sourceType: 'module'
}
+const ruleTester = new RuleTester({ languageOptions })
ruleTester.run('order-in-components', rule, {
valid: [
@@ -32,7 +31,7 @@ ruleTester.run('order-in-components', rule, {
},
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'example.vue',
@@ -75,21 +74,21 @@ ruleTester.run('order-in-components', rule, {
renderError,
};
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
code: `
export default {}
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
code: `
export default 'example-text'
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.jsx',
@@ -103,7 +102,7 @@ ruleTester.run('order-in-components', rule, {
},
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.js',
@@ -118,14 +117,14 @@ ruleTester.run('order-in-components', rule, {
}
})
`,
- parserOptions: { ecmaVersion: 6 }
+ languageOptions: { ecmaVersion: 6 }
},
{
filename: 'test.js',
code: `
Vue.component('example')
`,
- parserOptions: { ecmaVersion: 6 }
+ languageOptions: { ecmaVersion: 6 }
},
{
filename: 'test.js',
@@ -141,7 +140,7 @@ ruleTester.run('order-in-components', rule, {
}
})
`,
- parserOptions: { ecmaVersion: 6 }
+ languageOptions: { ecmaVersion: 6 }
},
{
filename: 'test.js',
@@ -157,14 +156,14 @@ ruleTester.run('order-in-components', rule, {
}
})
`,
- parserOptions: { ecmaVersion: 6 }
+ languageOptions: { ecmaVersion: 6 }
},
{
filename: 'test.js',
code: `
new Vue()
`,
- parserOptions: { ecmaVersion: 6 }
+ languageOptions: { ecmaVersion: 6 }
},
{
filename: 'example.vue',
@@ -176,8 +175,7 @@ ruleTester.run('order-in-components', rule, {
})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions
+ languageOptions: { parser: require('vue-eslint-parser') }
}
],
@@ -210,14 +208,14 @@ ruleTester.run('order-in-components', rule, {
},
}
`,
- parserOptions,
errors: [
{
message:
'The "props" property should be above the "data" property on line 4.',
line: 9
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.jsx',
@@ -257,11 +255,6 @@ ruleTester.run('order-in-components', rule, {
},
}
`,
- parserOptions: {
- ecmaVersion: 6,
- sourceType: 'module',
- ecmaFeatures: { jsx: true }
- },
errors: [
{
message:
@@ -278,7 +271,14 @@ ruleTester.run('order-in-components', rule, {
'The "props" property should be above the "data" property on line 9.',
line: 14
}
- ]
+ ],
+ languageOptions: {
+ ecmaVersion: 6,
+ sourceType: 'module',
+ parserOptions: {
+ ecmaFeatures: { jsx: true }
+ }
+ }
},
{
filename: 'test.js',
@@ -306,14 +306,14 @@ ruleTester.run('order-in-components', rule, {
template: ''
})
`,
- parserOptions: { ecmaVersion: 6 },
errors: [
{
message:
'The "components" property should be above the "data" property on line 4.',
line: 9
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6 }
},
{
filename: 'test.js',
@@ -341,14 +341,14 @@ ruleTester.run('order-in-components', rule, {
template: ''
})
`,
- parserOptions: { ecmaVersion: 6 },
errors: [
{
message:
'The "components" property should be above the "data" property on line 4.',
line: 9
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6 }
},
{
filename: 'test.js',
@@ -378,14 +378,14 @@ ruleTester.run('order-in-components', rule, {
template: ''
})
`,
- parserOptions: { ecmaVersion: 6 },
errors: [
{
message:
'The "components" property should be above the "data" property on line 5.',
line: 10
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6 }
},
{
filename: 'test.js',
@@ -415,7 +415,6 @@ ruleTester.run('order-in-components', rule, {
template: ''
})
`,
- parserOptions: { ecmaVersion: 6 },
errors: [
{
message:
@@ -427,7 +426,8 @@ ruleTester.run('order-in-components', rule, {
'The "components" property should be above the "data" property on line 5.',
line: 10
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6 }
},
{
filename: 'example.vue',
@@ -467,14 +467,14 @@ ruleTester.run('order-in-components', rule, {
},
};
`,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 16
}
- ]
+ ],
+ languageOptions
},
{
filename: 'example.vue',
@@ -495,14 +495,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
options: [{ order: ['data', 'test', 'name'] }],
- parserOptions,
errors: [
{
message:
'The "test" property should be above the "name" property on line 5.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
filename: 'example.vue',
@@ -524,14 +524,14 @@ ruleTester.run('order-in-components', rule, {
}
};
`,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 4.',
line: 7
}
- ]
+ ],
+ languageOptions
},
{
filename: 'example.vue',
@@ -553,27 +553,27 @@ ruleTester.run('order-in-components', rule, {
}/*test*/
};
`,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 4.',
line: 7
}
- ]
+ ],
+ languageOptions
},
{
filename: 'example.vue',
code: `export default {data(){},name:'burger'};`,
output: `export default {name:'burger',data(){}};`,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 1.',
line: 1
}
- ]
+ ],
+ languageOptions
},
{
// side-effects CallExpression
@@ -587,14 +587,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects NewExpression
@@ -608,14 +608,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects UpdateExpression
@@ -629,14 +629,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects AssignmentExpression
@@ -650,14 +650,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects TaggedTemplateExpression
@@ -671,14 +671,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects key
@@ -692,14 +692,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects object deep props
@@ -713,14 +713,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects array elements
@@ -734,14 +734,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects call at middle
@@ -755,14 +755,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects delete
@@ -776,14 +776,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects within BinaryExpression
@@ -797,14 +797,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects within ConditionalExpression
@@ -818,14 +818,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// side-effects within TemplateLiteral
@@ -839,14 +839,14 @@ ruleTester.run('order-in-components', rule, {
};
`,
output: null,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 6
}
- ]
+ ],
+ languageOptions
},
{
// without side-effects
@@ -867,14 +867,14 @@ ruleTester.run('order-in-components', rule, {
test: fn(),
};
`,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 5
}
- ]
+ ],
+ languageOptions
},
{
// don't side-effects
@@ -913,14 +913,14 @@ ruleTester.run('order-in-components', rule, {
testOptionalChaining: a?.b?.c,
};
`,
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "data" property on line 3.',
line: 15
}
- ]
+ ],
+ languageOptions
},
{
filename: 'example.vue',
@@ -944,18 +944,20 @@ ruleTester.run('order-in-components', rule, {
};
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ...parserOptions,
- parser: { ts: require.resolve('@typescript-eslint/parser') }
- },
errors: [
{
message:
'The "props" property should be above the "setup" property on line 4.',
line: 5
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions,
+ parserOptions: {
+ parser: { ts: require.resolve('@typescript-eslint/parser') }
+ }
+ }
},
{
filename: 'example.vue',
@@ -975,15 +977,14 @@ ruleTester.run('order-in-components', rule, {
})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions,
errors: [
{
message:
'The "name" property should be above the "inheritAttrs" property on line 4.',
line: 5
}
- ]
+ ],
+ languageOptions: { parser: require('vue-eslint-parser') }
}
]
})
diff --git a/tests/lib/rules/padding-line-between-blocks.js b/tests/lib/rules/padding-line-between-blocks.js
index f53461bae..e78422e87 100644
--- a/tests/lib/rules/padding-line-between-blocks.js
+++ b/tests/lib/rules/padding-line-between-blocks.js
@@ -3,12 +3,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/padding-line-between-blocks')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2020 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2020 }
})
tester.run('padding-line-between-blocks', rule, {
diff --git a/tests/lib/rules/padding-line-between-tags.js b/tests/lib/rules/padding-line-between-tags.js
index 70c7a57bb..2bb656201 100644
--- a/tests/lib/rules/padding-line-between-tags.js
+++ b/tests/lib/rules/padding-line-between-tags.js
@@ -4,12 +4,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/padding-line-between-tags')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/padding-lines-in-component-definition.js b/tests/lib/rules/padding-lines-in-component-definition.js
index 7b2eda6c8..702897431 100644
--- a/tests/lib/rules/padding-lines-in-component-definition.js
+++ b/tests/lib/rules/padding-lines-in-component-definition.js
@@ -4,15 +4,15 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/padding-lines-in-component-definition')
const {
getTypeScriptFixtureTestOptions
} = require('../../test-utils/typescript')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
@@ -1069,7 +1069,7 @@ tester.run('padding-lines-in-component-definition', rule, {
b: {
type: String,
},
- // eslint-disable-next-line padding-lines-in-component-definition
+ // foo
c: {
type: String,
},
@@ -1098,7 +1098,7 @@ tester.run('padding-lines-in-component-definition', rule, {
type: String,
},
- // eslint-disable-next-line padding-lines-in-component-definition
+ // foo
c: {
type: String,
},
diff --git a/tests/lib/rules/prefer-define-options.js b/tests/lib/rules/prefer-define-options.js
index f3d9d88b0..5b7f20e0d 100644
--- a/tests/lib/rules/prefer-define-options.js
+++ b/tests/lib/rules/prefer-define-options.js
@@ -4,12 +4,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/prefer-define-options')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/prefer-import-from-vue.js b/tests/lib/rules/prefer-import-from-vue.js
index 5c87404c2..519d0a877 100644
--- a/tests/lib/rules/prefer-import-from-vue.js
+++ b/tests/lib/rules/prefer-import-from-vue.js
@@ -4,11 +4,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/prefer-import-from-vue')
const tester = new RuleTester({
- parserOptions: {
+ languageOptions: {
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/prefer-prop-type-boolean-first.js b/tests/lib/rules/prefer-prop-type-boolean-first.js
index 1c66f8417..e01759450 100644
--- a/tests/lib/rules/prefer-prop-type-boolean-first.js
+++ b/tests/lib/rules/prefer-prop-type-boolean-first.js
@@ -4,15 +4,15 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/prefer-prop-type-boolean-first')
const {
getTypeScriptFixtureTestOptions
} = require('../../test-utils/typescript')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/prefer-separate-static-class.js b/tests/lib/rules/prefer-separate-static-class.js
index 498fc90dd..5b5a508ac 100644
--- a/tests/lib/rules/prefer-separate-static-class.js
+++ b/tests/lib/rules/prefer-separate-static-class.js
@@ -4,12 +4,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/prefer-separate-static-class')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/prefer-template.js b/tests/lib/rules/prefer-template.js
index e35fa6d1f..0c4b3366b 100644
--- a/tests/lib/rules/prefer-template.js
+++ b/tests/lib/rules/prefer-template.js
@@ -3,12 +3,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/prefer-template')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2020 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2020 }
})
tester.run('prefer-template', rule, {
diff --git a/tests/lib/rules/prefer-true-attribute-shorthand.js b/tests/lib/rules/prefer-true-attribute-shorthand.js
index 0bad5c173..342b0246c 100644
--- a/tests/lib/rules/prefer-true-attribute-shorthand.js
+++ b/tests/lib/rules/prefer-true-attribute-shorthand.js
@@ -4,12 +4,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/prefer-true-attribute-shorthand')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/prop-name-casing.js b/tests/lib/rules/prop-name-casing.js
index d3ba65936..0ec845938 100644
--- a/tests/lib/rules/prop-name-casing.js
+++ b/tests/lib/rules/prop-name-casing.js
@@ -6,9 +6,9 @@
const semver = require('semver')
const rule = require('../../../lib/rules/prop-name-casing')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
-const parserOptions = {
+const languageOptions = {
ecmaVersion: 2018,
sourceType: 'module'
}
@@ -23,7 +23,7 @@ ruleTester.run('prop-name-casing', rule, {
props: ['greetingText']
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -32,7 +32,7 @@ ruleTester.run('prop-name-casing', rule, {
props: some_props
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -43,7 +43,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -53,7 +53,7 @@ ruleTester.run('prop-name-casing', rule, {
}
`,
options: ['camelCase'],
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -63,7 +63,7 @@ ruleTester.run('prop-name-casing', rule, {
}
`,
options: ['snake_case'],
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -74,7 +74,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -86,7 +86,7 @@ ruleTester.run('prop-name-casing', rule, {
}
`,
options: ['camelCase'],
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -98,7 +98,7 @@ ruleTester.run('prop-name-casing', rule, {
}
`,
options: ['snake_case'],
- parserOptions
+ languageOptions
},
{
// computed property name
@@ -110,7 +110,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// computed property name
@@ -122,7 +122,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// TemplateLiteral computed property does not warn
@@ -134,7 +134,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// shorthand
@@ -146,7 +146,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// valiable computed property name does not warn
@@ -158,7 +158,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// valiable computed property name does not warn
@@ -170,7 +170,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// BinaryExpression computed property name does not warn
@@ -182,7 +182,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// CallExpression computed property name does not warn
@@ -194,7 +194,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// ThisExpression computed property name does not warn
@@ -206,7 +206,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// ArrayExpression computed property name does not warn
@@ -218,7 +218,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// number Literal computed property name
@@ -230,7 +230,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// boolean Literal computed property name
@@ -242,7 +242,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// null Literal computed property name
@@ -254,7 +254,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// Japanese characters
@@ -266,7 +266,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// emoji
@@ -278,7 +278,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// #862
@@ -290,7 +290,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
// #932
@@ -302,7 +302,7 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -314,7 +314,7 @@ ruleTester.run('prop-name-casing', rule, {
}
`,
options: ['snake_case'],
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -325,8 +325,10 @@ ruleTester.run('prop-name-casing', rule, {
})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions
+ }
},
{
filename: 'test.vue',
@@ -335,8 +337,10 @@ ruleTester.run('prop-name-casing', rule, {
defineProps(['greetingText'])
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions
+ }
},
{
filename: 'test.vue',
@@ -348,10 +352,12 @@ ruleTester.run('prop-name-casing', rule, {
defineProps()
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ...parserOptions,
- parser: require.resolve('@typescript-eslint/parser')
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions,
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
}
],
@@ -366,14 +372,14 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions,
errors: [
{
message: 'Prop "greeting_text" is not in camelCase.',
type: 'Property',
line: 4
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.vue',
@@ -385,14 +391,14 @@ ruleTester.run('prop-name-casing', rule, {
}
`,
options: ['camelCase'],
- parserOptions,
errors: [
{
message: 'Prop "greeting_text" is not in camelCase.',
type: 'Property',
line: 4
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.vue',
@@ -402,14 +408,14 @@ ruleTester.run('prop-name-casing', rule, {
}
`,
options: ['camelCase'],
- parserOptions,
errors: [
{
message: 'Prop "greeting_text" is not in camelCase.',
type: 'Literal',
line: 3
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.vue',
@@ -421,14 +427,14 @@ ruleTester.run('prop-name-casing', rule, {
}
`,
options: ['snake_case'],
- parserOptions,
errors: [
{
message: 'Prop "greetingText" is not in snake_case.',
type: 'Property',
line: 4
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.vue',
@@ -440,14 +446,14 @@ ruleTester.run('prop-name-casing', rule, {
}
`,
options: ['camelCase'],
- parserOptions,
errors: [
{
message: 'Prop "greeting-text" is not in camelCase.',
type: 'Property',
line: 4
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.vue',
@@ -459,14 +465,14 @@ ruleTester.run('prop-name-casing', rule, {
}
`,
options: ['snake_case'],
- parserOptions,
errors: [
{
message: 'Prop "greeting-text" is not in snake_case.',
type: 'Property',
line: 4
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.vue',
@@ -477,14 +483,14 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions,
errors: [
{
message: 'Prop "greeting_text" is not in camelCase.',
type: 'Property',
line: 4
}
- ]
+ ],
+ languageOptions
},
{
// computed property name
@@ -496,14 +502,14 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions,
errors: [
{
message: 'Prop "greeting-text" is not in camelCase.',
type: 'Property',
line: 4
}
- ]
+ ],
+ languageOptions
},
{
// shorthand
@@ -515,14 +521,14 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions,
errors: [
{
message: 'Prop "greeting_text" is not in camelCase.',
type: 'Property',
line: 4
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.vue',
@@ -533,14 +539,14 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions,
errors: [
{
message: 'Prop "abc-123-def" is not in camelCase.',
type: 'Property',
line: 4
}
- ]
+ ],
+ languageOptions
},
{
// Parentheses computed property name
@@ -552,14 +558,14 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions,
errors: [
{
message: 'Prop "greeting-text" is not in camelCase.',
type: 'Property',
line: 4
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.vue',
@@ -570,8 +576,8 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions,
- errors: ['Prop "_item" is not in camelCase.']
+ errors: ['Prop "_item" is not in camelCase.'],
+ languageOptions
},
{
filename: 'test.vue',
@@ -583,8 +589,8 @@ ruleTester.run('prop-name-casing', rule, {
}
`,
options: ['snake_case'],
- parserOptions,
- errors: ['Prop "_itemName" is not in snake_case.']
+ errors: ['Prop "_itemName" is not in snake_case.'],
+ languageOptions
},
{
// TemplateLiteral computed property
@@ -596,8 +602,8 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions,
- errors: ['Prop "greeting-text" is not in camelCase.']
+ errors: ['Prop "greeting-text" is not in camelCase.'],
+ languageOptions
},
{
// RegExp Literal computed property name
@@ -609,8 +615,8 @@ ruleTester.run('prop-name-casing', rule, {
}
}
`,
- parserOptions,
- errors: ['Prop "/greeting-text/" is not in camelCase.']
+ errors: ['Prop "/greeting-text/" is not in camelCase.'],
+ languageOptions
},
{
filename: 'test.vue',
@@ -621,14 +627,16 @@ ruleTester.run('prop-name-casing', rule, {
})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions,
errors: [
{
message: 'Prop "greeting_text" is not in camelCase.',
line: 4
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions
+ }
},
{
filename: 'test.vue',
@@ -637,14 +645,16 @@ ruleTester.run('prop-name-casing', rule, {
defineProps(['greeting_text'])
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions,
errors: [
{
message: 'Prop "greeting_text" is not in camelCase.',
line: 3
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions
+ }
},
...(semver.lt(
require('@typescript-eslint/parser/package.json').version,
@@ -662,10 +672,12 @@ ruleTester.run('prop-name-casing', rule, {
defineProps()
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ...parserOptions,
- parser: require.resolve('@typescript-eslint/parser')
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions,
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
},
errors: [
{
diff --git a/tests/lib/rules/quote-props.js b/tests/lib/rules/quote-props.js
index 378affe72..9d5caa890 100644
--- a/tests/lib/rules/quote-props.js
+++ b/tests/lib/rules/quote-props.js
@@ -4,12 +4,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/quote-props')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/require-component-is.js b/tests/lib/rules/require-component-is.js
index 081b0baa7..e4de51629 100644
--- a/tests/lib/rules/require-component-is.js
+++ b/tests/lib/rules/require-component-is.js
@@ -5,12 +5,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/require-component-is')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('require-component-is', rule, {
diff --git a/tests/lib/rules/require-default-prop.js b/tests/lib/rules/require-default-prop.js
index abb1fcb37..97aea4919 100644
--- a/tests/lib/rules/require-default-prop.js
+++ b/tests/lib/rules/require-default-prop.js
@@ -6,13 +6,13 @@
const semver = require('semver')
const rule = require('../../../lib/rules/require-default-prop')
-const RuleTester = require('eslint').RuleTester
-const parserOptions = {
+const RuleTester = require('../../eslint-compat').RuleTester
+const languageOptions = {
ecmaVersion: 2020,
sourceType: 'module'
}
-const ruleTester = new RuleTester({ parserOptions })
+const ruleTester = new RuleTester({ languageOptions })
ruleTester.run('require-default-prop', rule, {
valid: [
{
@@ -54,8 +54,6 @@ ruleTester.run('require-default-prop', rule, {
},
i: Boolean,
j: [Boolean],
- // eslint-disable-next-line require-default-prop
- k: Number
}
}
`
@@ -118,7 +116,10 @@ ruleTester.run('require-default-prop', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser')
+
+ languageOptions: {
+ parser: require('@typescript-eslint/parser')
+ }
},
{
filename: 'test.vue',
@@ -132,7 +133,9 @@ ruleTester.run('require-default-prop', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser')
+ languageOptions: {
+ parser: require('@typescript-eslint/parser')
+ }
},
{
filename: 'test.vue',
@@ -180,7 +183,7 @@ ruleTester.run('require-default-prop', rule, {
export default {
props: ['foo']
}`,
- parserOptions
+ languageOptions
},
// sparse array
@@ -209,8 +212,10 @@ ruleTester.run('require-default-prop', rule, {
})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions
+ }
},
{
filename: 'test.vue',
@@ -219,8 +224,10 @@ ruleTester.run('require-default-prop', rule, {
defineProps(['foo'])
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions
+ }
},
{
filename: 'test.vue',
@@ -232,10 +239,12 @@ ruleTester.run('require-default-prop', rule, {
defineProps()
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ...parserOptions,
- parser: require.resolve('@typescript-eslint/parser')
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions,
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
},
{
@@ -248,10 +257,10 @@ ruleTester.run('require-default-prop', rule, {
withDefaults(defineProps(), {foo:42})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ...parserOptions,
- parser: require.resolve('@typescript-eslint/parser')
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions,
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
}
},
{
@@ -268,10 +277,10 @@ ruleTester.run('require-default-prop', rule, {
})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ...parserOptions,
- parser: require.resolve('@typescript-eslint/parser')
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions,
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
}
},
{
@@ -298,10 +307,10 @@ ruleTester.run('require-default-prop', rule, {
});
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ...parserOptions,
- parser: require.resolve('@typescript-eslint/parser')
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions,
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
}
},
{
@@ -315,10 +324,10 @@ ruleTester.run('require-default-prop', rule, {
const props = defineProps();
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ...parserOptions,
- parser: require.resolve('@typescript-eslint/parser')
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions,
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
}
}
],
@@ -383,13 +392,15 @@ ruleTester.run('require-default-prop', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
errors: [
{
message: `Prop 'a' requires default value to be set.`,
line: 4
}
- ]
+ ],
+ languageOptions: {
+ parser: require('@typescript-eslint/parser')
+ }
},
{
filename: 'test.vue',
@@ -402,13 +413,13 @@ ruleTester.run('require-default-prop', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
errors: [
{
message: `Prop 'a' requires default value to be set.`,
line: 4
}
- ]
+ ],
+ languageOptions: { parser: require('@typescript-eslint/parser') }
},
// computed properties
@@ -522,14 +533,16 @@ ruleTester.run('require-default-prop', rule, {
})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions,
errors: [
{
message: "Prop 'foo' requires default value to be set.",
line: 4
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions
+ }
},
...(semver.lt(
require('@typescript-eslint/parser/package.json').version,
@@ -547,10 +560,12 @@ ruleTester.run('require-default-prop', rule, {
withDefaults(defineProps(), {bar:42})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ...parserOptions,
- parser: require.resolve('@typescript-eslint/parser')
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions,
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
},
errors: [
{
diff --git a/tests/lib/rules/require-direct-export.js b/tests/lib/rules/require-direct-export.js
index bf25849df..cec06c7a0 100644
--- a/tests/lib/rules/require-direct-export.js
+++ b/tests/lib/rules/require-direct-export.js
@@ -5,13 +5,15 @@
'use strict'
const rule = require('../../../lib/rules/require-direct-export')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const ruleTester = new RuleTester({
- parserOptions: {
+ languageOptions: {
ecmaVersion: 2018,
sourceType: 'module',
- ecmaFeatures: { jsx: true }
+ parserOptions: {
+ ecmaFeatures: { jsx: true }
+ }
}
})
ruleTester.run('require-direct-export', rule, {
diff --git a/tests/lib/rules/require-emit-validator.js b/tests/lib/rules/require-emit-validator.js
index d539b55ea..0a509a6c1 100644
--- a/tests/lib/rules/require-emit-validator.js
+++ b/tests/lib/rules/require-emit-validator.js
@@ -9,7 +9,7 @@ const {
getTypeScriptFixtureTestOptions
} = require('../../test-utils/typescript')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const ruleTester = new RuleTester()
ruleTester.run('require-emit-validator', rule, {
@@ -25,7 +25,7 @@ ruleTester.run('require-emit-validator', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 2018, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 2018, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -36,7 +36,7 @@ ruleTester.run('require-emit-validator', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -49,7 +49,7 @@ ruleTester.run('require-emit-validator', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -60,7 +60,7 @@ ruleTester.run('require-emit-validator', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -71,7 +71,7 @@ ruleTester.run('require-emit-validator', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -80,7 +80,7 @@ ruleTester.run('require-emit-validator', rule, {
emits
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -89,7 +89,7 @@ ruleTester.run('require-emit-validator', rule, {
emits: externalEmits
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -98,7 +98,7 @@ ruleTester.run('require-emit-validator', rule, {
emits: []
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -107,7 +107,7 @@ ruleTester.run('require-emit-validator', rule, {
emits: {}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -118,8 +118,11 @@ ruleTester.run('require-emit-validator', rule, {
}
})
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -132,8 +135,11 @@ ruleTester.run('require-emit-validator', rule, {
},
})
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -145,7 +151,7 @@ ruleTester.run('require-emit-validator', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -157,7 +163,7 @@ ruleTester.run('require-emit-validator', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -166,11 +172,11 @@ ruleTester.run('require-emit-validator', rule, {
const emit = defineEmits<(e: 'foo')=>void>()
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
}
},
{
@@ -191,7 +197,6 @@ ruleTester.run('require-emit-validator', rule, {
emits: ['foo', bar, \`baz\`, foo()]
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'missing',
@@ -213,7 +218,8 @@ ruleTester.run('require-emit-validator', rule, {
data: { name: 'Unknown emit' },
line: 3
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.js',
@@ -222,7 +228,6 @@ ruleTester.run('require-emit-validator', rule, {
emits: ['foo', bar, \`baz\`, foo()]
})
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'missing',
@@ -244,7 +249,8 @@ ruleTester.run('require-emit-validator', rule, {
data: { name: 'Unknown emit' },
line: 3
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -254,7 +260,6 @@ ruleTester.run('require-emit-validator', rule, {
foo: null
}
}`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'skipped',
@@ -272,7 +277,8 @@ ruleTester.run('require-emit-validator', rule, {
}
]
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -283,7 +289,6 @@ ruleTester.run('require-emit-validator', rule, {
bar: (payload) => {}
}
}`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'skipped',
@@ -302,7 +307,8 @@ ruleTester.run('require-emit-validator', rule, {
}
]
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -315,14 +321,14 @@ ruleTester.run('require-emit-validator', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'missing',
data: { name: 'foo' },
line: 4
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -333,15 +339,18 @@ ruleTester.run('require-emit-validator', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'missing',
data: { name: 'foo' },
line: 4
}
- ]
+ ],
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -350,18 +359,18 @@ ruleTester.run('require-emit-validator', rule, {
const emit = defineEmits(['foo'])
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 6,
- sourceType: 'module'
- },
errors: [
{
messageId: 'missing',
data: { name: 'foo' },
line: 3
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -370,18 +379,18 @@ ruleTester.run('require-emit-validator', rule, {
const emit = defineEmits({foo:null})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
- ecmaVersion: 6,
- sourceType: 'module'
- },
errors: [
{
messageId: 'skipped',
data: { name: 'foo' },
line: 3
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
}
]
})
diff --git a/tests/lib/rules/require-explicit-emits.js b/tests/lib/rules/require-explicit-emits.js
index 89ae47627..83af984ed 100644
--- a/tests/lib/rules/require-explicit-emits.js
+++ b/tests/lib/rules/require-explicit-emits.js
@@ -4,15 +4,15 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/require-explicit-emits')
const {
getTypeScriptFixtureTestOptions
} = require('../../test-utils/typescript')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
@@ -434,7 +434,9 @@ tester.run('require-explicit-emits', rule, {
}>()
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
filename: 'test.vue',
@@ -446,7 +448,9 @@ tester.run('require-explicit-emits', rule, {
defineEmits<(e: 'foo') => void>()
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
filename: 'test.vue',
@@ -459,7 +463,9 @@ tester.run('require-explicit-emits', rule, {
defineEmits<(e: 'foo' | 'bar') => void>()
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
filename: 'test.vue',
@@ -472,7 +478,9 @@ tester.run('require-explicit-emits', rule, {
const emit = defineEmits<(e: 'foo' | 'bar') => void>()
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
// unknown emits definition
@@ -620,7 +628,9 @@ tester.run('require-explicit-emits', rule, {
emit('bar', 42)
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
// new syntax in Vue 3.3
@@ -633,7 +643,9 @@ tester.run('require-explicit-emits', rule, {
emit('bar', 42)
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
code: `
@@ -1847,14 +1859,16 @@ emits: {'foo': null}
}>()
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') },
errors: [
{
message:
'The "bar" event has been triggered but not declared on `defineEmits`.',
line: 3
}
- ]
+ ],
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
filename: 'test.vue',
@@ -1866,14 +1880,16 @@ emits: {'foo': null}
defineEmits<(e: 'foo') => void>()
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') },
errors: [
{
message:
'The "bar" event has been triggered but not declared on `defineEmits`.',
line: 3
}
- ]
+ ],
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
filename: 'test.vue',
@@ -1901,14 +1917,16 @@ emits: {'foo': null}
emit('bar')
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') },
errors: [
{
message:
'The "bar" event has been triggered but not declared on `defineEmits`.',
line: 5
}
- ]
+ ],
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
filename: 'test.vue',
@@ -1949,14 +1967,16 @@ emits: {'foo': null}
emit('bar')
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') },
errors: [
{
message:
'The "bar" event has been triggered but not declared on `defineEmits`.',
line: 5
}
- ]
+ ],
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
// new syntax in Vue 3.3
@@ -1969,14 +1989,16 @@ emits: {'foo': null}
emit('bar')
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') },
errors: [
{
message:
'The "bar" event has been triggered but not declared on `defineEmits`.',
line: 6
}
- ]
+ ],
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
},
{
code: `
@@ -2007,14 +2029,16 @@ emits: {'foo': null}
const emit = defineEmits<(e: 'foo') => void>()
`,
- parserOptions: { parser: require.resolve('@typescript-eslint/parser') },
errors: [
{
message:
'The "bar" event has been triggered but not declared on `defineEmits`.',
line: 3
}
- ]
+ ],
+ languageOptions: {
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
+ }
}
]
})
diff --git a/tests/lib/rules/require-explicit-slots.js b/tests/lib/rules/require-explicit-slots.js
new file mode 100644
index 000000000..91ce0ce0b
--- /dev/null
+++ b/tests/lib/rules/require-explicit-slots.js
@@ -0,0 +1,273 @@
+/**
+ * @author Mussin Benarbia
+ * See LICENSE file in root directory for full license.
+ */
+'use strict'
+
+const RuleTester = require('../../eslint-compat').RuleTester
+const rule = require('../../../lib/rules/require-explicit-slots')
+
+const tester = new RuleTester({
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 2020,
+ sourceType: 'module',
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
+ }
+})
+
+tester.run('require-explicit-slots', rule, {
+ valid: [
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `
+ },
+
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `
+ },
+ // does not report any error if the script is not TS
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `,
+ languageOptions: {
+ parserOptions: {
+ parser: null
+ }
+ }
+ }
+ ],
+ invalid: [
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Slots must be explicitly defined.'
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Slots must be explicitly defined.'
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Slots must be explicitly defined.'
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Slots must be explicitly defined.'
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Slots must be explicitly defined.'
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Slot foo is already defined.'
+ }
+ ]
+ },
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Slot foo is already defined.'
+ }
+ ]
+ }
+ ]
+})
diff --git a/tests/lib/rules/require-expose.js b/tests/lib/rules/require-expose.js
index 76932cd95..4e0d54738 100644
--- a/tests/lib/rules/require-expose.js
+++ b/tests/lib/rules/require-expose.js
@@ -5,11 +5,11 @@
'use strict'
const rule = require('../../../lib/rules/require-expose')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/require-macro-variable-name.js b/tests/lib/rules/require-macro-variable-name.js
index ed99a64e5..3a37d5c1d 100644
--- a/tests/lib/rules/require-macro-variable-name.js
+++ b/tests/lib/rules/require-macro-variable-name.js
@@ -4,12 +4,12 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/require-macro-variable-name')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
diff --git a/tests/lib/rules/require-name-property.js b/tests/lib/rules/require-name-property.js
index 19f5b7c6d..fe0357a30 100644
--- a/tests/lib/rules/require-name-property.js
+++ b/tests/lib/rules/require-name-property.js
@@ -5,9 +5,9 @@
'use strict'
const rule = require('../../../lib/rules/require-name-property')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
-const parserOptions = {
+const languageOptions = {
ecmaVersion: 2018,
sourceType: 'module'
}
@@ -22,7 +22,7 @@ ruleTester.run('require-name-property', rule, {
name: 'IssaName'
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'ValidComponent.vue',
@@ -31,7 +31,7 @@ ruleTester.run('require-name-property', rule, {
name: undefined
}
`,
- parserOptions
+ languageOptions
},
{
filename: 'ValidComponent.vue',
@@ -40,7 +40,7 @@ ruleTester.run('require-name-property', rule, {
name: ''
}
`,
- parserOptions
+ languageOptions
},
{
code: `
@@ -50,7 +50,7 @@ ruleTester.run('require-name-property', rule, {
}
})
`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -62,8 +62,10 @@ ruleTester.run('require-name-property', rule, {
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ...languageOptions
+ }
}
],
@@ -74,7 +76,6 @@ ruleTester.run('require-name-property', rule, {
export default {
}
`,
- parserOptions,
errors: [
{
message: 'Required name property is not set.',
@@ -90,7 +91,8 @@ ruleTester.run('require-name-property', rule, {
}
]
}
- ]
+ ],
+ languageOptions
},
{
filename: 'InvalidComponent.vue',
@@ -98,7 +100,6 @@ ruleTester.run('require-name-property', rule, {
export default defineComponent({
})
`,
- parserOptions,
errors: [
{
message: 'Required name property is not set.',
@@ -114,14 +115,14 @@ ruleTester.run('require-name-property', rule, {
}
]
}
- ]
+ ],
+ languageOptions
},
{
filename: 'InvalidComponent.vue',
code: `
export default defineComponent({ })
`,
- parserOptions,
errors: [
{
message: 'Required name property is not set.',
@@ -137,14 +138,14 @@ ruleTester.run('require-name-property', rule, {
}
]
}
- ]
+ ],
+ languageOptions
},
{
filename: 'InvalidComponent.vue',
code: `
export default { }
`,
- parserOptions,
errors: [
{
message: 'Required name property is not set.',
@@ -160,7 +161,8 @@ ruleTester.run('require-name-property', rule, {
}
]
}
- ]
+ ],
+ languageOptions
},
{
filename: 'InvalidComponent.vue',
@@ -169,7 +171,6 @@ ruleTester.run('require-name-property', rule, {
nameNot: 'IssaNameNot'
}
`,
- parserOptions,
errors: [
{
message: 'Required name property is not set.',
@@ -186,7 +187,8 @@ ruleTester.run('require-name-property', rule, {
}
]
}
- ]
+ ],
+ languageOptions
},
{
filename: 'InvalidComponent.vue',
@@ -195,7 +197,6 @@ ruleTester.run('require-name-property', rule, {
nameNot: 'IssaNameNot'
})
`,
- parserOptions,
errors: [
{
message: 'Required name property is not set.',
@@ -212,7 +213,8 @@ ruleTester.run('require-name-property', rule, {
}
]
}
- ]
+ ],
+ languageOptions
},
{
@@ -224,7 +226,6 @@ ruleTester.run('require-name-property', rule, {
}
}
`,
- parserOptions,
errors: [
{
message: 'Required name property is not set.',
@@ -243,7 +244,8 @@ ruleTester.run('require-name-property', rule, {
}
]
}
- ]
+ ],
+ languageOptions
},
{
filename: 'InvalidComponent.vue',
@@ -252,7 +254,6 @@ ruleTester.run('require-name-property', rule, {
[name]: 'IssaName'
}
`,
- parserOptions,
errors: [
{
message: 'Required name property is not set.',
@@ -269,7 +270,8 @@ ruleTester.run('require-name-property', rule, {
}
]
}
- ]
+ ],
+ languageOptions
}
]
})
diff --git a/tests/lib/rules/require-prop-comment.js b/tests/lib/rules/require-prop-comment.js
index 3863abc3d..f2ee24ee9 100644
--- a/tests/lib/rules/require-prop-comment.js
+++ b/tests/lib/rules/require-prop-comment.js
@@ -4,15 +4,15 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/require-prop-comment')
const {
getTypeScriptFixtureTestOptions
} = require('../../test-utils/typescript')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 2020,
sourceType: 'module'
}
@@ -89,8 +89,10 @@ tester.run('require-prop-comment', rule, {
const props = defineProps()
`,
- parserOptions: {
- parser: require.resolve('@typescript-eslint/parser')
+ languageOptions: {
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
},
{
@@ -261,16 +263,18 @@ tester.run('require-prop-comment', rule, {
const props = defineProps()
`,
- parserOptions: {
- parser: require.resolve('@typescript-eslint/parser')
- },
errors: [
{
line: 4,
column: 9,
message: 'The "a" property should have a JSDoc comment.'
}
- ]
+ ],
+ languageOptions: {
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
+ }
}
]
})
diff --git a/tests/lib/rules/require-prop-type-constructor.js b/tests/lib/rules/require-prop-type-constructor.js
index a4d6766df..acd098634 100644
--- a/tests/lib/rules/require-prop-type-constructor.js
+++ b/tests/lib/rules/require-prop-type-constructor.js
@@ -8,10 +8,10 @@ const rule = require('../../../lib/rules/require-prop-type-constructor')
const {
getTypeScriptFixtureTestOptions
} = require('../../test-utils/typescript')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const ruleTester = new RuleTester({
- parserOptions: {
+ languageOptions: {
ecmaVersion: 2020,
sourceType: 'module'
}
@@ -224,13 +224,13 @@ ruleTester.run('require-prop-type-constructor', rule, {
}
}
`,
- parser: require.resolve('@typescript-eslint/parser'),
errors: [
{
message: 'The "a" property should be a constructor.',
line: 5
}
- ]
+ ],
+ languageOptions: { parser: require('@typescript-eslint/parser') }
},
{
filename: 'ExtraCommas.vue',
@@ -248,13 +248,13 @@ ruleTester.run('require-prop-type-constructor', rule, {
}
}
`,
- parser: require.resolve('@typescript-eslint/parser'),
errors: [
{
message: 'The "name" property should be a constructor.',
line: 4
}
- ]
+ ],
+ languageOptions: { parser: require('@typescript-eslint/parser') }
},
{
filename: 'LiteralsComponent.vue',
@@ -381,13 +381,13 @@ ruleTester.run('require-prop-type-constructor', rule, {
})
`,
- parser: require.resolve('vue-eslint-parser'),
errors: [
{
message: 'The "a" property should be a constructor.',
line: 5
}
- ]
+ ],
+ languageOptions: { parser: require('vue-eslint-parser') }
}
]
})
diff --git a/tests/lib/rules/require-prop-types.js b/tests/lib/rules/require-prop-types.js
index f50b4b116..bf38d9fd7 100644
--- a/tests/lib/rules/require-prop-types.js
+++ b/tests/lib/rules/require-prop-types.js
@@ -9,7 +9,7 @@ const {
getTypeScriptFixtureTestOptions
} = require('../../test-utils/typescript')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const ruleTester = new RuleTester()
ruleTester.run('require-prop-types', rule, {
@@ -25,7 +25,7 @@ ruleTester.run('require-prop-types', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 2018, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 2018, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -36,7 +36,7 @@ ruleTester.run('require-prop-types', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -49,7 +49,7 @@ ruleTester.run('require-prop-types', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -62,7 +62,7 @@ ruleTester.run('require-prop-types', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -75,7 +75,7 @@ ruleTester.run('require-prop-types', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -88,7 +88,7 @@ ruleTester.run('require-prop-types', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -97,7 +97,7 @@ ruleTester.run('require-prop-types', rule, {
props
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -106,7 +106,7 @@ ruleTester.run('require-prop-types', rule, {
props: externalProps
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -115,7 +115,7 @@ ruleTester.run('require-prop-types', rule, {
props: []
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -124,7 +124,7 @@ ruleTester.run('require-prop-types', rule, {
props: {}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -137,8 +137,11 @@ ruleTester.run('require-prop-types', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -151,8 +154,11 @@ ruleTester.run('require-prop-types', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -163,8 +169,11 @@ ruleTester.run('require-prop-types', rule, {
})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -173,11 +182,13 @@ ruleTester.run('require-prop-types', rule, {
defineProps<{foo:string}>()
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
},
{
@@ -196,7 +207,7 @@ ruleTester.run('require-prop-types', rule, {
const foo = defineModel('foo', {type:String})
`,
- parser: require.resolve('vue-eslint-parser')
+ languageOptions: { parser: require('vue-eslint-parser') }
},
{
// defineModel
@@ -206,7 +217,7 @@ ruleTester.run('require-prop-types', rule, {
const foo = defineModel('foo', String)
`,
- parser: require.resolve('vue-eslint-parser')
+ languageOptions: { parser: require('vue-eslint-parser') }
},
{
code: `
@@ -215,11 +226,13 @@ ruleTester.run('require-prop-types', rule, {
const foo = defineModel('foo')
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
}
],
@@ -232,7 +245,6 @@ ruleTester.run('require-prop-types', rule, {
props: ['foo', bar, \`baz\`, foo()]
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
message: 'Prop "foo" should define at least its type.',
@@ -250,7 +262,8 @@ ruleTester.run('require-prop-types', rule, {
message: 'Prop "Unknown prop" should define at least its type.',
line: 3
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.js',
@@ -259,7 +272,6 @@ ruleTester.run('require-prop-types', rule, {
props: ['foo', bar, \`baz\`, foo()]
})
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
message: 'Prop "foo" should define at least its type.',
@@ -277,7 +289,8 @@ ruleTester.run('require-prop-types', rule, {
message: 'Prop "Unknown prop" should define at least its type.',
line: 3
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -289,13 +302,13 @@ ruleTester.run('require-prop-types', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
message: 'Prop "foo" should define at least its type.',
line: 4
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -308,13 +321,13 @@ ruleTester.run('require-prop-types', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
message: 'Prop "foo" should define at least its type.',
line: 4
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -325,13 +338,13 @@ ruleTester.run('require-prop-types', rule, {
}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
message: 'Prop "foo" should define at least its type.',
line: 4
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -342,14 +355,17 @@ ruleTester.run('require-prop-types', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
message: 'Prop "foo" should define at least its type.',
line: 4
}
- ]
+ ],
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -360,14 +376,17 @@ ruleTester.run('require-prop-types', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
message: 'Prop "foo" should define at least its type.',
line: 4
}
- ]
+ ],
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -378,14 +397,17 @@ ruleTester.run('require-prop-types', rule, {
})
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
message: 'Prop "foo" should define at least its type.',
line: 4
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -394,14 +416,17 @@ ruleTester.run('require-prop-types', rule, {
defineProps(['foo'])
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
message: 'Prop "foo" should define at least its type.',
line: 3
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
// defineModel
@@ -411,7 +436,6 @@ ruleTester.run('require-prop-types', rule, {
const foo = defineModel('foo')
`,
- parser: require.resolve('vue-eslint-parser'),
errors: [
{
message: 'Prop "modelValue" should define at least its type.',
@@ -421,7 +445,8 @@ ruleTester.run('require-prop-types', rule, {
message: 'Prop "foo" should define at least its type.',
line: 4
}
- ]
+ ],
+ languageOptions: { parser: require('vue-eslint-parser') }
},
{
// defineModel
@@ -431,7 +456,6 @@ ruleTester.run('require-prop-types', rule, {
const foo = defineModel('foo',{})
`,
- parser: require.resolve('vue-eslint-parser'),
errors: [
{
message: 'Prop "modelValue" should define at least its type.',
@@ -441,7 +465,8 @@ ruleTester.run('require-prop-types', rule, {
message: 'Prop "foo" should define at least its type.',
line: 4
}
- ]
+ ],
+ languageOptions: { parser: require('vue-eslint-parser') }
}
]
})
diff --git a/tests/lib/rules/require-render-return.js b/tests/lib/rules/require-render-return.js
index bae823e5e..44da6b083 100644
--- a/tests/lib/rules/require-render-return.js
+++ b/tests/lib/rules/require-render-return.js
@@ -5,12 +5,14 @@
'use strict'
const rule = require('../../../lib/rules/require-render-return')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
-const parserOptions = {
+const languageOptions = {
ecmaVersion: 2018,
sourceType: 'module',
- ecmaFeatures: { jsx: true }
+ parserOptions: {
+ ecmaFeatures: { jsx: true }
+ }
}
const ruleTester = new RuleTester()
@@ -23,7 +25,7 @@ ruleTester.run('require-render-return', rule, {
return {}
}
})`,
- parserOptions
+ languageOptions
},
{
code: `Vue.component('test', {
@@ -31,19 +33,19 @@ ruleTester.run('require-render-return', rule, {
return {}
}
})`,
- parserOptions
+ languageOptions
},
{
code: `Vue.component('test', {
foo: {}
})`,
- parserOptions
+ languageOptions
},
{
code: `Vue.component('test', {
render: foo
})`,
- parserOptions
+ languageOptions
},
{
code: `Vue.component('test', {
@@ -51,7 +53,7 @@ ruleTester.run('require-render-return', rule, {
return
}
})`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -60,7 +62,7 @@ ruleTester.run('require-render-return', rule, {
return {}
}
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -70,7 +72,7 @@ ruleTester.run('require-render-return', rule, {
return foo
}
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -90,14 +92,14 @@ ruleTester.run('require-render-return', rule, {
}
}
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
code: `export default {
render: () => null
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -110,7 +112,7 @@ ruleTester.run('require-render-return', rule, {
}
}
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -123,7 +125,7 @@ ruleTester.run('require-render-return', rule, {
return h('div', options)
}
}`,
- parserOptions
+ languageOptions
}
],
@@ -134,14 +136,14 @@ ruleTester.run('require-render-return', rule, {
render() {
}
}`,
- parserOptions,
errors: [
{
message: 'Expected to return a value in render function.',
type: 'Identifier',
line: 2
}
- ]
+ ],
+ languageOptions
},
{
filename: 'test.vue',
@@ -152,14 +154,14 @@ ruleTester.run('require-render-return', rule, {
}
}
}`,
- parserOptions,
errors: [
{
message: 'Expected to return a value in render function.',
type: 'Identifier',
line: 2
}
- ]
+ ],
+ languageOptions
},
{
code: `Vue.component('test', {
@@ -169,14 +171,14 @@ ruleTester.run('require-render-return', rule, {
}
}
})`,
- parserOptions,
errors: [
{
message: 'Expected to return a value in render function.',
type: 'Identifier',
line: 2
}
- ]
+ ],
+ languageOptions
},
{
code: `app.component('test', {
@@ -186,14 +188,14 @@ ruleTester.run('require-render-return', rule, {
}
}
})`,
- parserOptions,
errors: [
{
message: 'Expected to return a value in render function.',
type: 'Identifier',
line: 2
}
- ]
+ ],
+ languageOptions
},
{
code: `Vue.component('test2', {
@@ -203,14 +205,14 @@ ruleTester.run('require-render-return', rule, {
}
}
})`,
- parserOptions,
errors: [
{
message: 'Expected to return a value in render function.',
type: 'Identifier',
line: 2
}
- ]
+ ],
+ languageOptions
},
{
code: `Vue.component('test2', {
@@ -222,14 +224,14 @@ ruleTester.run('require-render-return', rule, {
}
}
})`,
- parserOptions,
errors: [
{
message: 'Expected to return a value in render function.',
type: 'Identifier',
line: 2
}
- ]
+ ],
+ languageOptions
}
]
})
diff --git a/tests/lib/rules/require-slots-as-functions.js b/tests/lib/rules/require-slots-as-functions.js
index 0fe18f828..54e86b527 100644
--- a/tests/lib/rules/require-slots-as-functions.js
+++ b/tests/lib/rules/require-slots-as-functions.js
@@ -6,11 +6,14 @@
const rule = require('../../../lib/rules/require-slots-as-functions')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const ruleTester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2020, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 2020,
+ sourceType: 'module'
+ }
})
ruleTester.run('require-slots-as-functions', rule, {
valid: [
diff --git a/tests/lib/rules/require-toggle-inside-transition.js b/tests/lib/rules/require-toggle-inside-transition.js
index 18a33aa3e..815f5de3d 100644
--- a/tests/lib/rules/require-toggle-inside-transition.js
+++ b/tests/lib/rules/require-toggle-inside-transition.js
@@ -4,12 +4,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/require-toggle-inside-transition')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('require-toggle-inside-transition', rule, {
diff --git a/tests/lib/rules/require-typed-object-prop.js b/tests/lib/rules/require-typed-object-prop.js
index f574e82d8..3d8d3e58b 100644
--- a/tests/lib/rules/require-typed-object-prop.js
+++ b/tests/lib/rules/require-typed-object-prop.js
@@ -4,10 +4,14 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/require-typed-object-prop')
-const ruleTester = new RuleTester()
+const ruleTester = new RuleTester({
+ languageOptions: {
+ parser: require('@typescript-eslint/parser')
+ }
+})
ruleTester.run('require-typed-object-prop', rule, {
valid: [
@@ -19,7 +23,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: {}
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -28,7 +32,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: {}
});
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -37,8 +41,11 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps({});
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
// array props
{
@@ -48,7 +55,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: ['foo']
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -57,7 +64,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: ['foo']
});
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -66,8 +73,11 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps(['foo']);
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
// primitive props
{
@@ -77,7 +87,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: String }
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -86,7 +96,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: String }
});
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -95,8 +105,11 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps({ foo: String });
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
// union
{
@@ -106,7 +119,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: [Number, String, Boolean] }
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -115,7 +128,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: [Number, String, Boolean] }
});
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -124,8 +137,11 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps({ foo: [Number, String, Boolean] });
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
// function
{
@@ -135,7 +151,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: someFunction() }
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -144,7 +160,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: someFunction() }
});
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -153,8 +169,11 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps({ foo: someFunction() });
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
// typed object
{
@@ -164,8 +183,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: Object as PropType }
}
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -174,8 +192,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: Array as PropType }
}
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -184,8 +201,7 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: Object as PropType }
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -194,11 +210,13 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps({ foo: Object as PropType });
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
},
@@ -209,11 +227,10 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: Object as () => User }
}
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: {
+ languageOptions: {
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parser: require('@typescript-eslint/parser')
}
},
{
@@ -223,11 +240,10 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: Object as () => User }
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: {
+ languageOptions: {
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parser: require('@typescript-eslint/parser')
}
},
{
@@ -237,11 +253,13 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps({ foo: Object as () => User });
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
},
// any
@@ -252,11 +270,13 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps({ foo: { type: Object as any } });
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
},
{
@@ -270,11 +290,13 @@ ruleTester.run('require-typed-object-prop', rule, {
};
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
},
{
@@ -288,11 +310,11 @@ ruleTester.run('require-typed-object-prop', rule, {
});
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
}
},
// unknown
@@ -303,11 +325,11 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps({ foo: { type: Object as unknown } });
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
}
},
{
@@ -321,11 +343,11 @@ ruleTester.run('require-typed-object-prop', rule, {
};
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
}
},
{
@@ -339,11 +361,11 @@ ruleTester.run('require-typed-object-prop', rule, {
});
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: { parser: require.resolve('@typescript-eslint/parser') }
}
}
],
@@ -355,8 +377,6 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps({ foo: Object });
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'expectedTypeAnnotation',
@@ -385,7 +405,15 @@ ruleTester.run('require-typed-object-prop', rule, {
}
]
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module',
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
+ }
},
{
filename: 'test.vue',
@@ -394,8 +422,6 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps({ foo: Array });
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'expectedTypeAnnotation',
@@ -424,7 +450,15 @@ ruleTester.run('require-typed-object-prop', rule, {
}
]
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module',
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
+ }
},
{
filename: 'test.vue',
@@ -433,7 +467,6 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: Object }
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'expectedTypeAnnotation',
@@ -462,7 +495,8 @@ ruleTester.run('require-typed-object-prop', rule, {
}
]
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -471,7 +505,6 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: Object }
});
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'expectedTypeAnnotation',
@@ -500,7 +533,8 @@ ruleTester.run('require-typed-object-prop', rule, {
}
]
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -509,7 +543,6 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: { type: Object } }
});
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'expectedTypeAnnotation',
@@ -538,7 +571,8 @@ ruleTester.run('require-typed-object-prop', rule, {
}
]
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -547,7 +581,6 @@ ruleTester.run('require-typed-object-prop', rule, {
props: { foo: { type: Object } }
}
`,
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'expectedTypeAnnotation',
@@ -576,7 +609,8 @@ ruleTester.run('require-typed-object-prop', rule, {
}
]
}
- ]
+ ],
+ languageOptions: { ecmaVersion: 6, sourceType: 'module' }
},
{
filename: 'test.vue',
@@ -585,8 +619,6 @@ ruleTester.run('require-typed-object-prop', rule, {
defineProps({ foo: { type: Object } });
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
errors: [
{
messageId: 'expectedTypeAnnotation',
@@ -615,7 +647,15 @@ ruleTester.run('require-typed-object-prop', rule, {
}
]
}
- ]
+ ],
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
+ ecmaVersion: 6,
+ sourceType: 'module',
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
+ }
}
]
})
diff --git a/tests/lib/rules/require-typed-ref.js b/tests/lib/rules/require-typed-ref.js
index 3da293b9a..6e8797943 100644
--- a/tests/lib/rules/require-typed-ref.js
+++ b/tests/lib/rules/require-typed-ref.js
@@ -3,12 +3,15 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/require-typed-ref')
const tester = new RuleTester({
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 2020, sourceType: 'module' }
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 2020,
+ sourceType: 'module'
+ }
})
// Note: Need to specify filename for each test,
@@ -81,7 +84,7 @@ tester.run('require-typed-ref', rule, {
const count = ref()
`,
- parser: require.resolve('vue-eslint-parser')
+ languageOptions: { parser: require('vue-eslint-parser') }
},
{
filename: 'test.js',
@@ -203,7 +206,6 @@ tester.run('require-typed-ref', rule, {
const count = ref()
`,
- parser: require.resolve('vue-eslint-parser'),
errors: [
{
messageId: 'noType',
@@ -212,7 +214,8 @@ tester.run('require-typed-ref', rule, {
endLine: 4,
endColumn: 30
}
- ]
+ ],
+ languageOptions: { parser: require('vue-eslint-parser') }
},
{
filename: 'test.ts',
diff --git a/tests/lib/rules/require-v-for-key.js b/tests/lib/rules/require-v-for-key.js
index 91a83732f..dfcfbd3e9 100644
--- a/tests/lib/rules/require-v-for-key.js
+++ b/tests/lib/rules/require-v-for-key.js
@@ -5,12 +5,11 @@
*/
'use strict'
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/require-v-for-key')
const tester = new RuleTester({
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: { ecmaVersion: 2015 }
+ languageOptions: { parser: require('vue-eslint-parser'), ecmaVersion: 2015 }
})
tester.run('require-v-for-key', rule, {
diff --git a/tests/lib/rules/require-valid-default-prop.js b/tests/lib/rules/require-valid-default-prop.js
index 1e6f7cd7a..a8e5cfbef 100644
--- a/tests/lib/rules/require-valid-default-prop.js
+++ b/tests/lib/rules/require-valid-default-prop.js
@@ -8,12 +8,14 @@ const rule = require('../../../lib/rules/require-valid-default-prop')
const {
getTypeScriptFixtureTestOptions
} = require('../../test-utils/typescript')
-const RuleTester = require('eslint').RuleTester
+const RuleTester = require('../../eslint-compat').RuleTester
-const parserOptions = {
+const languageOptions = {
ecmaVersion: 2020,
sourceType: 'module',
- ecmaFeatures: { jsx: true }
+ parserOptions: {
+ ecmaFeatures: { jsx: true }
+ }
}
function errorMessage(type) {
@@ -43,21 +45,21 @@ ruleTester.run('require-valid-default-prop', rule, {
...foo,
props: { ...foo }
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
code: `export default {
props: { foo: null }
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
code: `export default {
props: ['foo']
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -69,7 +71,7 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -108,7 +110,7 @@ ruleTester.run('require-valid-default-prop', rule, {
foo: { type: Object, default () { return Foo } },
}
})`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -122,8 +124,11 @@ ruleTester.run('require-valid-default-prop', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' }
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -137,7 +142,7 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -151,7 +156,7 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -163,7 +168,7 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -175,7 +180,7 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions
+ languageOptions
},
// sparse array
@@ -189,7 +194,7 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -201,7 +206,7 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions
+ languageOptions
},
{
filename: 'test.vue',
@@ -214,9 +219,12 @@ ruleTester.run('require-valid-default-prop', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -229,9 +237,12 @@ ruleTester.run('require-valid-default-prop', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
filename: 'test.vue',
@@ -244,9 +255,12 @@ ruleTester.run('require-valid-default-prop', rule, {
}
});
`,
- parser: require.resolve('@typescript-eslint/parser'),
- parserOptions: { ecmaVersion: 6, sourceType: 'module' },
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions: {
+ parser: require('@typescript-eslint/parser'),
+ ecmaVersion: 6,
+ sourceType: 'module'
+ }
},
{
// https://github.com/vuejs/eslint-plugin-vue/issues/1853
@@ -264,11 +278,13 @@ ruleTester.run('require-valid-default-prop', rule, {
num: 1
});
`,
- parser: require.resolve('vue-eslint-parser'),
- parserOptions: {
+ languageOptions: {
+ parser: require('vue-eslint-parser'),
ecmaVersion: 6,
sourceType: 'module',
- parser: require.resolve('@typescript-eslint/parser')
+ parserOptions: {
+ parser: require.resolve('@typescript-eslint/parser')
+ }
}
},
{
@@ -302,8 +318,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('number or string')
+ errors: errorMessage('number or string'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -315,8 +331,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('number or function')
+ errors: errorMessage('number or function'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -328,8 +344,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('number')
+ errors: errorMessage('number'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -341,8 +357,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('number')
+ errors: errorMessage('number'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -354,8 +370,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('number')
+ errors: errorMessage('number'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -367,8 +383,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('number')
+ errors: errorMessage('number'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -380,8 +396,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('string')
+ errors: errorMessage('string'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -393,8 +409,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('string')
+ errors: errorMessage('string'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -406,8 +422,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('string')
+ errors: errorMessage('string'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -419,8 +435,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('boolean')
+ errors: errorMessage('boolean'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -432,8 +448,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('boolean')
+ errors: errorMessage('boolean'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -445,8 +461,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('boolean')
+ errors: errorMessage('boolean'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -458,8 +474,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('boolean')
+ errors: errorMessage('boolean'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -471,8 +487,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -484,8 +500,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -497,8 +513,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -510,8 +526,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -523,8 +539,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -536,8 +552,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -549,8 +565,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -562,8 +578,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -575,8 +591,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -588,8 +604,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('function')
+ errors: errorMessage('function'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -601,8 +617,8 @@ ruleTester.run('require-valid-default-prop', rule, {
}
}
}`,
- parserOptions,
- errors: errorMessage('function or number')
+ errors: errorMessage('function or number'),
+ languageOptions
},
{
filename: 'test.vue',
@@ -614,9 +630,13 @@ ruleTester.run('require-valid-default-prop', rule, {
} as PropOptions `,
errors: [{ message, type }],
options
- },
+ }
// We cannot use `.` in dynamic arguments because the right of the `.` becomes a modifier.
// {
@@ -190,22 +159,6 @@ function createInvalidTests(prefix, options, message, type) {
// errors: [{ message, type }],
// options
// }
- ...(options[0] === 'always'
- ? []
- : [
- {
- code: `