@@ -167,14 +167,18 @@ export class FlatRuleTester<F extends string> extends TestFramework {
167
167
FlatRuleTester . describe ( 'valid' , ( ) =>
168
168
data . valid . forEach ( validCase =>
169
169
FlatRuleTester . it ( validCase . name , ( ) => {
170
- if ( validCase . extension ) {
171
- assert . ok ( validCase . extension in this . #config. extensions ) ;
172
- }
170
+ const extension : F = ( validCase . extension ??
171
+ this . #config. defaultExtension ??
172
+ 'ts' ) as F ;
173
+ assert . ok (
174
+ Object . hasOwn ( this . #config. extensions , extension ) ,
175
+ `Undefined format: ${ sanitize ( extension ) } , should be in ${ sanitize ( Object . keys ( this . #config. extensions ) . join ( ', ' ) ) } ` ,
176
+ ) ;
173
177
174
- const name = `/file.${ validCase . extension ?? 'ts' } ` ;
178
+ const name = `/file.${ extension } ` ;
175
179
assert . ok (
176
180
existsSync ( join ( this . #fixtureDir, name ) ) ,
177
- `Fixtures must exist for format: ${ name } ` ,
181
+ `Fixtures must exist for format: ${ sanitize ( name ) } ` ,
178
182
) ;
179
183
180
184
const fullConfig : FlatConfig . ConfigArray = [
@@ -184,14 +188,15 @@ export class FlatRuleTester<F extends string> extends TestFramework {
184
188
files : [ '**/*.*' ] ,
185
189
} ,
186
190
] ;
187
- if ( validCase . extension ) {
188
- const formatConfig =
189
- this . #config. extensions [ validCase . extension as F ] ;
190
- fullConfig . splice ( 1 , 0 , {
191
- ...formatConfig ,
192
- files : [ `**/*.${ validCase . extension } ` ] ,
193
- } ) ;
194
- }
191
+
192
+ const formatConfig = this . #config. extensions [ extension ] ;
193
+
194
+ assert . notStrictEqual ( formatConfig , undefined ) ;
195
+
196
+ fullConfig . splice ( 1 , 0 , {
197
+ ...formatConfig ,
198
+ files : [ `**/*.${ extension } ` ] ,
199
+ } ) ;
195
200
196
201
const results = this . #linter. verify (
197
202
validCase . code ,
@@ -201,7 +206,7 @@ export class FlatRuleTester<F extends string> extends TestFramework {
201
206
202
207
results . forEach ( msg => {
203
208
throw new Error (
204
- `Got error ${ msg . message } (${ msg . messageId } ), expected nothing` ,
209
+ `Got error ${ sanitize ( msg . message ) } (${ msg . messageId ? sanitize ( msg . messageId ) : '(unknown message ID)' } ), expected nothing` ,
205
210
) ;
206
211
} ) ;
207
212
} ) ,
@@ -210,14 +215,15 @@ export class FlatRuleTester<F extends string> extends TestFramework {
210
215
FlatRuleTester . describe ( 'invalid' , ( ) =>
211
216
data . invalid . forEach ( invalidCase =>
212
217
FlatRuleTester . it ( sanitize ( invalidCase . name ) , ( ) => {
213
- if ( invalidCase . extension ) {
214
- assert . ok (
215
- invalidCase . extension in this . #config. extensions ,
216
- `Undefined format: ${ sanitize ( invalidCase . extension ) } , should be in ${ sanitize ( Object . keys ( this . #config. extensions ) . join ( ', ' ) ) } ` ,
217
- ) ;
218
- }
218
+ const extension : F = ( invalidCase . extension ??
219
+ this . #config. defaultExtension ??
220
+ 'ts' ) as F ;
221
+ assert . ok (
222
+ Object . hasOwn ( this . #config. extensions , extension ) ,
223
+ `Undefined format: ${ sanitize ( extension ) } , should be in ${ sanitize ( Object . keys ( this . #config. extensions ) . join ( ', ' ) ) } ` ,
224
+ ) ;
219
225
220
- const name = `/file.${ invalidCase . extension ?? 'ts' } ` ;
226
+ const name = `/file.${ extension } ` ;
221
227
assert . ok (
222
228
existsSync ( join ( this . #fixtureDir, name ) ) ,
223
229
'Fixtures must exist' ,
@@ -230,14 +236,11 @@ export class FlatRuleTester<F extends string> extends TestFramework {
230
236
files : [ '**/*.*' ] ,
231
237
} ,
232
238
] ;
233
- if ( invalidCase . extension ) {
234
- const formatConfig =
235
- this . #config. extensions [ invalidCase . extension as F ] ;
236
- fullConfig . splice ( 1 , 0 , {
237
- ...formatConfig ,
238
- files : [ `**/*.${ invalidCase . extension } ` ] ,
239
- } ) ;
240
- }
239
+ const formatConfig = this . #config. extensions [ extension ] ;
240
+ fullConfig . splice ( 1 , 0 , {
241
+ ...formatConfig ,
242
+ files : [ `**/*.${ invalidCase . extension } ` ] ,
243
+ } ) ;
241
244
242
245
const allMessages : Linter . LintMessage [ ] = [ ] ;
243
246
const results = this . #linter. verifyAndFix (
@@ -281,12 +284,12 @@ export class FlatRuleTester<F extends string> extends TestFramework {
281
284
results . messages . forEach ( ( message , idx ) => {
282
285
assert . ok (
283
286
message . ruleId != null ,
284
- `Parser/linter error occured: ${ message . message } ` ,
287
+ `Parser/linter error occured: ${ sanitize ( message . message ) } ` ,
285
288
) ;
286
289
287
290
assert . ok (
288
291
message . ruleId === 'rule/rule' ,
289
- `Errors must be from the defined rule, as opposed to typescript-eslint or eslint: ${ message . ruleId } ` ,
292
+ `Errors must be from the defined rule, as opposed to typescript-eslint or eslint: ${ sanitize ( message . ruleId ) } ` ,
290
293
) ;
291
294
292
295
const expectedMessage = invalidCase . errors [ idx ] ;
0 commit comments