1
1
/**
2
- * @author *****your name*****
2
+ * @author Przemysław Jan Beigert
3
3
* See LICENSE file in root directory for full license.
4
4
*/
5
5
'use strict'
@@ -18,7 +18,8 @@ export default {
18
18
}
19
19
}
20
20
</script>
21
- `
21
+ ` ;
22
+
22
23
23
24
const ruleTester = new RuleTester ( {
24
25
parser : require . resolve ( 'vue-eslint-parser' ) ,
@@ -27,7 +28,11 @@ const ruleTester = new RuleTester({
27
28
sourceType : 'module' ,
28
29
parser : '@typescript-eslint/parser'
29
30
}
30
- } )
31
+ } ) ;
32
+
33
+ const expectedError = {
34
+ message : 'Expected type annotation on object prop.'
35
+ } ;
31
36
32
37
ruleTester . run ( 'force-types-on-object-props' , rule , {
33
38
valid : [
@@ -43,6 +48,18 @@ ruleTester.run('force-types-on-object-props', rule, {
43
48
props: {}
44
49
}
45
50
</script>
51
+ ` ,
52
+ `
53
+ <script setup>
54
+ const props = defineProps(['foo']);
55
+ </script>
56
+ ` ,
57
+ `
58
+ <script setup>
59
+ const props = defineProps({
60
+ foo: String
61
+ });
62
+ </script>
46
63
` ,
47
64
template ( 'type: String' ) ,
48
65
template ( 'foo: String,' ) ,
@@ -58,42 +75,69 @@ ruleTester.run('force-types-on-object-props', rule, {
58
75
{
59
76
code : template ( 'type: Object' ) ,
60
77
errors : [
61
- {
62
- message : 'Expected type annotation on object prop.'
63
- }
78
+ expectedError
79
+ ]
80
+ } ,
81
+ {
82
+ code : template ( 'type: Object,' ) ,
83
+ errors : [
84
+ expectedError
64
85
]
65
86
} ,
66
87
{
67
88
code : template ( 'type: Object as any' ) ,
68
89
errors : [
69
- {
70
- message : 'Expected type annotation on object prop.'
71
- }
90
+ expectedError
91
+ ]
92
+ } ,
93
+ {
94
+ code : template ( 'type: Object as any,' ) ,
95
+ errors : [
96
+ expectedError
72
97
]
73
98
} ,
99
+
74
100
{
75
101
code : template ( 'type: Object as {}' ) ,
76
102
errors : [
77
- {
78
- message : 'Expected type annotation on object prop.'
79
- }
103
+ expectedError
104
+ ]
105
+ } ,
106
+ {
107
+ code : template ( 'type: Object as {},' ) ,
108
+ errors : [
109
+ expectedError
80
110
]
81
111
} ,
82
112
{
83
113
code : template ( 'type: Object as unknown' ) ,
84
114
errors : [
85
- {
86
- message : 'Expected type annotation on object prop.'
87
- }
115
+ expectedError
88
116
]
89
117
} ,
90
118
{
91
- code : template ( 'type: Object as string ' ) ,
119
+ code : template ( 'type: Object as () => any ' ) ,
92
120
errors : [
93
- {
94
- message : 'Expected type annotation on object prop.'
95
- }
121
+ expectedError
96
122
]
97
- }
123
+ } ,
124
+ {
125
+ code : template ( 'type: Object as () => any,' ) ,
126
+ errors : [
127
+ expectedError
128
+ ]
129
+ } ,
130
+ {
131
+ code : template ( 'type: Object as () => unknown' ) ,
132
+ errors : [
133
+ expectedError
134
+ ]
135
+ } ,
136
+ {
137
+ code : template ( 'type: Object as () => unknown,' ) ,
138
+ errors : [
139
+ expectedError
140
+ ]
141
+ } ,
98
142
]
99
143
} )
0 commit comments