+
+ {{ m }} {{ modelValue }}
+ {{ a }} {{ A }}
+ {{withModifiers}} {{modifiers}}
+
+
+ {{ undef }}
+
+ `,
+ errors: [
+ {
+ message: "'undef' is not defined.",
+ line: 14
+ }
+ ]
}
]
})
diff --git a/tests/lib/rules/no-unsupported-features/define-model.js b/tests/lib/rules/no-unsupported-features/define-model.js
new file mode 100644
index 000000000..0307d1f9f
--- /dev/null
+++ b/tests/lib/rules/no-unsupported-features/define-model.js
@@ -0,0 +1,59 @@
+/**
+ * @author Yosuke Ota
+ * See LICENSE file in root directory for full license.
+ */
+'use strict'
+
+const RuleTester = require('eslint').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
+ }
+})
+
+tester.run('no-unsupported-features/define-model', rule, {
+ valid: [
+ {
+ code: `
+ `,
+ options: buildOptions({ version: '^3.4.0' })
+ },
+ {
+ code: `
+ `,
+ options: buildOptions()
+ },
+ {
+ code: `
+ `,
+ options: buildOptions({ version: '^3.3.0', ignores: ['define-model'] })
+ }
+ ],
+ invalid: [
+ {
+ code: `
+ `,
+ options: buildOptions(),
+ errors: [
+ {
+ message:
+ '`defineModel()` macros are not supported until Vue.js "3.4.0".',
+ line: 3
+ }
+ ]
+ }
+ ]
+})
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
new file mode 100644
index 000000000..088ba7cbc
--- /dev/null
+++ b/tests/lib/rules/no-unsupported-features/v-bind-same-name-shorthand.js
@@ -0,0 +1,95 @@
+/**
+ * @author Yosuke Ota
+ * See LICENSE file in root directory for full license.
+ */
+'use strict'
+
+const RuleTester = require('eslint').RuleTester
+const rule = require('../../../../lib/rules/no-unsupported-features')
+const utils = require('./utils')
+
+const buildOptions = utils.optionsBuilder(
+ 'v-bind-same-name-shorthand',
+ '^3.3.0'
+)
+const tester = new RuleTester({
+ parser: require.resolve('vue-eslint-parser'),
+ parserOptions: {
+ ecmaVersion: 2019
+ }
+})
+
+tester.run('no-unsupported-features/v-bind-same-name-shorthand', rule, {
+ valid: [
+ {
+ code: `
+