diff --git a/tests/fixtures/typescript/src/test01.ts b/tests/fixtures/typescript/src/test01.ts
index d14550843..917643c67 100644
--- a/tests/fixtures/typescript/src/test01.ts
+++ b/tests/fixtures/typescript/src/test01.ts
@@ -18,3 +18,8 @@ export type Props2 = {
h?: string[]
i?: readonly string[]
}
+
+export type Slots1 = {
+ default(props: { msg: string }): any
+ foo(props: { msg: string }): any
+}
diff --git a/tests/lib/rules/require-explicit-slots.js b/tests/lib/rules/require-explicit-slots.js
index f99614119..afee739a6 100644
--- a/tests/lib/rules/require-explicit-slots.js
+++ b/tests/lib/rules/require-explicit-slots.js
@@ -6,6 +6,9 @@
const RuleTester = require('../../eslint-compat').RuleTester
const rule = require('../../../lib/rules/require-explicit-slots')
+const {
+ getTypeScriptFixtureTestOptions
+} = require('../../test-utils/typescript')
const tester = new RuleTester({
languageOptions: {
@@ -276,6 +279,21 @@ tester.run('require-explicit-slots', rule, {
})
`
},
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+
+ `,
+ ...getTypeScriptFixtureTestOptions()
+ },
{
filename: 'test.vue',
code: `
@@ -656,6 +674,28 @@ tester.run('require-explicit-slots', rule, {
}
]
},
+ {
+ filename: 'test.vue',
+ code: `
+
+
+
+
+
+
+ `,
+ errors: [
+ {
+ message: 'Slots must be explicitly defined.',
+ line: 5,
+ column: 11
+ }
+ ],
+ ...getTypeScriptFixtureTestOptions()
+ },
{
// ignore attribute binding except string literal
filename: 'test.vue',