@@ -12,7 +12,6 @@ suite('extractRangeFromFilter', () => {
12
12
assert . ok ( ! extractRangeFromFilter ( '' ) ) ;
13
13
assert . ok ( ! extractRangeFromFilter ( '/some/path' ) ) ;
14
14
assert . ok ( ! extractRangeFromFilter ( '/some/path/file.txt' ) ) ;
15
- assert . ok ( ! extractRangeFromFilter ( '/some/@path' ) , 'paths like as /node_modules/@types/ should be supported' ) ;
16
15
17
16
for ( const lineSep of [ ':' , '#' , '(' , ':line ' ] ) {
18
17
for ( const colSep of [ ':' , '#' , ',' ] ) {
@@ -44,9 +43,56 @@ suite('extractRangeFromFilter', () => {
44
43
assert . strictEqual ( res ?. range . startColumn , 20 ) ;
45
44
} ) ;
46
45
47
- test ( 'unless' , async function ( ) {
48
- const res = extractRangeFromFilter ( '@/some/path/file.txt (19,20)' , [ '@' ] ) ;
49
-
50
- assert . ok ( ! res ) ;
46
+ suite ( 'unless' , async function ( ) {
47
+ const testSpecs = [
48
+ // alpha-only symbol after unless
49
+ { filter : '/some/path/file.txt@alphasymbol' , unless : [ '@' ] , result : undefined } ,
50
+ // unless as first char
51
+ { filter : '@/some/path/file.txt (19,20)' , unless : [ '@' ] , result : undefined } ,
52
+ // unless as last char
53
+ { filter : '/some/path/file.txt (19,20)@' , unless : [ '@' ] , result : undefined } ,
54
+ // unless before ,
55
+ {
56
+ filter : '/some/@path/file.txt (19,20)' , unless : [ '@' ] , result : {
57
+ filter : '/some/@path/file.txt' ,
58
+ range : {
59
+ endColumn : 20 ,
60
+ endLineNumber : 19 ,
61
+ startColumn : 20 ,
62
+ startLineNumber : 19
63
+ }
64
+ }
65
+ } ,
66
+ // unless before :
67
+ {
68
+ filter : '/some/@path/file.txt:19:20' , unless : [ '@' ] , result : {
69
+ filter : '/some/@path/file.txt' ,
70
+ range : {
71
+ endColumn : 20 ,
72
+ endLineNumber : 19 ,
73
+ startColumn : 20 ,
74
+ startLineNumber : 19
75
+ }
76
+ }
77
+ } ,
78
+ // unless before #
79
+ {
80
+ filter : '/some/@path/file.txt#19' , unless : [ '@' ] , result : {
81
+ filter : '/some/@path/file.txt' ,
82
+ range : {
83
+ endColumn : 1 ,
84
+ endLineNumber : 19 ,
85
+ startColumn : 1 ,
86
+ startLineNumber : 19
87
+ }
88
+ }
89
+ } ,
90
+ ] ;
91
+ for ( const { filter, unless, result } of testSpecs ) {
92
+ test ( `${ filter } - ${ JSON . stringify ( unless ) } ` , ( ) => {
93
+ assert . deepStrictEqual ( extractRangeFromFilter ( filter , unless ) , result ) ;
94
+ } ) ;
95
+ }
51
96
} ) ;
52
97
} ) ;
98
+
0 commit comments