diff --git a/tests/lib/rules/no-reserved-component-names.js b/tests/lib/rules/no-reserved-component-names.js
index 14ab1334f..41cddcfd5 100644
--- a/tests/lib/rules/no-reserved-component-names.js
+++ b/tests/lib/rules/no-reserved-component-names.js
@@ -245,7 +245,6 @@ const invalidElements = [
   'menu',
   'Menu',
   'menuitem',
-  'menuitem',
   'summary',
   'Summary',
   'content',
diff --git a/tests/lib/rules/this-in-template.js b/tests/lib/rules/this-in-template.js
index 6750f2cb3..53896794e 100644
--- a/tests/lib/rules/this-in-template.js
+++ b/tests/lib/rules/this-in-template.js
@@ -43,10 +43,6 @@ function createValidTests(prefix, options) {
       code: `<template><div v-if="${prefix}foo()">{{ ${prefix}bar }}</div></template><!-- ${comment} -->`,
       options
     },
-    {
-      code: `<template><div :parent="this"></div></template><!-- ${comment} -->`,
-      options
-    },
     {
       code: `<template><div v-for="x of ${prefix}xs">{{this.x}}</div></template><!-- ${comment} -->`,
       options
@@ -67,26 +63,6 @@ function createValidTests(prefix, options) {
       code: `<template><div v-for="x of ${prefix}xs">{{this['x']}}</div></template><!-- ${comment} -->`,
       options
     },
-    {
-      code: `<template><div>{{ this.class }}</div></template><!-- ${comment} -->`,
-      options
-    },
-    {
-      code: `<template><div>{{ this['0'] }}</div></template><!-- ${comment} -->`,
-      options
-    },
-    {
-      code: `<template><div>{{ this['this'] }}</div></template><!-- ${comment} -->`,
-      options
-    },
-    {
-      code: `<template><div>{{ this['foo bar'] }}</div></template><!-- ${comment} -->`,
-      options
-    },
-    {
-      code: `<template><div>{{ }}</div></template><!-- ${comment} -->`,
-      options
-    },
     {
       code: `<template>
         <div>
@@ -97,12 +73,6 @@ function createValidTests(prefix, options) {
         </div>
       </template><!-- ${comment} -->`,
       options
-    },
-
-    // We cannot use `.` in dynamic arguments because the right of the `.` becomes a modifier.
-    {
-      code: `<template><div v-on:[x]="1"></div></template><!-- ${comment} -->`,
-      options
     }
   ]
 }
@@ -181,7 +151,7 @@ function createInvalidTests(prefix, options, message, type) {
       )}bar"></div></template><!-- ${comment} -->`,
       errors: [{ message, type }],
       options
-    },
+    }
 
     // We cannot use `.` in dynamic arguments because the right of the `.` becomes a modifier.
     // {
@@ -189,22 +159,6 @@ function createInvalidTests(prefix, options, message, type) {
     //   errors: [{ message, type }],
     //   options
     // }
-    ...(options[0] === 'always'
-      ? []
-      : [
-          {
-            code: `<template><div>{{ this['xs'] }}</div></template><!-- ${comment} -->`,
-            output: `<template><div>{{ xs }}</div></template><!-- ${comment} -->`,
-            errors: [{ message, type }],
-            options
-          },
-          {
-            code: `<template><div>{{ this['xs0AZ_foo'] }}</div></template><!-- ${comment} -->`,
-            output: `<template><div>{{ xs0AZ_foo }}</div></template><!-- ${comment} -->`,
-            errors: [{ message, type }],
-            options
-          }
-        ])
   ]
 }
 
@@ -216,7 +170,41 @@ ruleTester.run('this-in-template', rule, {
     ...createValidTests('', []),
     ...createValidTests('', ['never']),
     ...createValidTests('this.', ['always']),
-    ...createValidTests('this?.', ['always'])
+    ...createValidTests('this?.', ['always']),
+    ...[[], ['never'], ['always']].flatMap((options) => {
+      const comment = options.join('')
+      return [
+        {
+          code: `<template><div :parent="this"></div></template><!-- ${comment} -->`,
+          options
+        },
+        {
+          code: `<template><div>{{ this.class }}</div></template><!-- ${comment} -->`,
+          options
+        },
+        {
+          code: `<template><div>{{ this['0'] }}</div></template><!-- ${comment} -->`,
+          options
+        },
+        {
+          code: `<template><div>{{ this['this'] }}</div></template><!-- ${comment} -->`,
+          options
+        },
+        {
+          code: `<template><div>{{ this['foo bar'] }}</div></template><!-- ${comment} -->`,
+          options
+        },
+        {
+          code: `<template><div>{{ }}</div></template><!-- ${comment} -->`,
+          options
+        },
+        // We cannot use `.` in dynamic arguments because the right of the `.` becomes a modifier.
+        {
+          code: `<template><div v-on:[x]="1"></div></template><!-- ${comment} -->`,
+          options
+        }
+      ]
+    })
   ],
   invalid: [
     ...createInvalidTests(
@@ -244,6 +232,25 @@ ruleTester.run('this-in-template', rule, {
       'ThisExpression'
     ),
     ...createInvalidTests('', ['always'], "Expected 'this'.", 'Identifier'),
+    ...[[], ['never']].flatMap((options) => {
+      const comment = options.join('')
+      const message = "Unexpected usage of 'this'."
+      const type = 'ThisExpression'
+      return [
+        {
+          code: `<template><div>{{ this['xs'] }}</div></template><!-- ${comment} -->`,
+          output: `<template><div>{{ xs }}</div></template><!-- ${comment} -->`,
+          errors: [{ message, type }],
+          options
+        },
+        {
+          code: `<template><div>{{ this['xs0AZ_foo'] }}</div></template><!-- ${comment} -->`,
+          output: `<template><div>{{ xs0AZ_foo }}</div></template><!-- ${comment} -->`,
+          errors: [{ message, type }],
+          options
+        }
+      ]
+    }),
     {
       code: `<template><div v-if="fn(this.$foo)"></div></template><!-- never -->`,
       output: `<template><div v-if="fn($foo)"></div></template><!-- never -->`,