@@ -354,7 +354,15 @@ func TestFindPrecedingToken(t *testing.T) {
354
354
355
355
func TestUnitFindPrecedingToken (t * testing.T ) {
356
356
t .Parallel ()
357
- fileContent := `import {
357
+ testCases := []struct {
358
+ name string
359
+ fileContent string
360
+ position int
361
+ expectedKind ast.Kind
362
+ }{
363
+ {
364
+ name : "after dot in jsdoc" ,
365
+ fileContent : `import {
358
366
CharacterCodes,
359
367
compareStringsCaseInsensitive,
360
368
compareStringsCaseSensitive,
@@ -399,11 +407,25 @@ backslashRegExp.
399
407
*/
400
408
export function isAnyDirectorySeparator(charCode: number): boolean {
401
409
return charCode === CharacterCodes.slash || charCode === CharacterCodes.backslash;
402
- }`
403
- file := parser .ParseSourceFile ("/file.ts" , "/file.ts" , fileContent , core .ScriptTargetLatest , scanner .JSDocParsingModeParseAll )
404
- position := 839
405
- token := astnav .FindPrecedingToken (file , position )
406
- assert .Equal (t , token .Kind , ast .KindDotToken )
410
+ }` ,
411
+ position : 839 ,
412
+ expectedKind : ast .KindDotToken ,
413
+ },
414
+ {
415
+ name : "after comma in parameter list" ,
416
+ fileContent : `takesCb((n, s, ))` ,
417
+ position : 15 ,
418
+ expectedKind : ast .KindCommaToken ,
419
+ },
420
+ }
421
+ for _ , testCase := range testCases {
422
+ t .Run (testCase .name , func (t * testing.T ) {
423
+ t .Parallel ()
424
+ file := parser .ParseSourceFile ("/file.ts" , "/file.ts" , testCase .fileContent , core .ScriptTargetLatest , scanner .JSDocParsingModeParseAll )
425
+ token := astnav .FindPrecedingToken (file , testCase .position )
426
+ assert .Equal (t , token .Kind , testCase .expectedKind )
427
+ })
428
+ }
407
429
}
408
430
409
431
func tsFindPrecedingTokens (t * testing.T , fileText string , positions []int ) []* tokenInfo {
0 commit comments