Skip to content

Commit 60a92dd

Browse files
committed
test: use toEqualTypeOf for stricter testing
1 parent 033ee5c commit 60a92dd

File tree

2 files changed

+42
-42
lines changed

2 files changed

+42
-42
lines changed

test/index.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ describe('inputs', () => {
7373
`)
7474

7575
const regexp = createRegExp(pattern)
76-
expectTypeOf('fobazzer'.match(regexp)).toMatchTypeOf<MagicRegExpMatchArray<
76+
expectTypeOf('fobazzer'.match(regexp)).toEqualTypeOf<MagicRegExpMatchArray<
7777
typeof regexp
7878
> | null>()
79-
expectTypeOf('fobazzer'.match(createRegExp(pattern))?.groups).toMatchTypeOf<
79+
expectTypeOf('fobazzer'.match(createRegExp(pattern))?.groups).toEqualTypeOf<
8080
Record<'test' | 'test2', string | undefined> | undefined
8181
>()
8282

@@ -90,7 +90,7 @@ describe('inputs', () => {
9090
"test2": "baz",
9191
}
9292
`)
93-
expectTypeOf(match.groups).toMatchTypeOf<Record<'test' | 'test2', string | undefined>>()
93+
expectTypeOf(match.groups).toEqualTypeOf<Record<'test' | 'test2', string | undefined>>()
9494
}
9595

9696
''.match(

test/inputs.test.ts

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,19 @@ describe('inputs', () => {
2626
it('charIn', () => {
2727
const input = charIn('fo]^')
2828
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\[fo\\\\\\]\\\\\\^\\]/')
29-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'[fo\\]\\^]'>()
29+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'[fo\\]\\^]'>()
3030
})
3131
it('charNotIn', () => {
3232
const input = charNotIn('fo^-')
3333
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\[\\^fo\\\\\\^\\\\-\\]/')
34-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'[^fo\\^\\-]'>()
34+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'[^fo\\^\\-]'>()
3535
})
3636
it('anyOf', () => {
3737
const values = ['fo/o', 'bar', 'baz', oneOrMore('this')] as const
3838
const input = anyOf(...values)
3939
const regexp = new RegExp(input as any)
4040
expect(regexp).toMatchInlineSnapshot('/\\(fo\\\\/o\\|bar\\|baz\\|\\(this\\)\\+\\)/')
41-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'(fo\\/o|bar|baz|(this)+)'>()
41+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'(fo\\/o|bar|baz|(this)+)'>()
4242
for (const value of values.slice(0, -1) as string[]) {
4343
expect(regexp.test(value)).toBeTruthy()
4444
}
@@ -47,89 +47,89 @@ describe('inputs', () => {
4747
it('char', () => {
4848
const input = char
4949
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\./')
50-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'.'>()
50+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'.'>()
5151
})
5252
it('maybe', () => {
5353
const input = maybe('foo')
5454
const regexp = new RegExp(input as any)
5555
expect(regexp).toMatchInlineSnapshot('/\\(foo\\)\\?/')
56-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'(foo)?'>()
56+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'(foo)?'>()
5757
})
5858
it('oneOrMore', () => {
5959
const input = oneOrMore('foo')
6060
const regexp = new RegExp(input as any)
6161
expect(regexp).toMatchInlineSnapshot('/\\(foo\\)\\+/')
62-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'(foo)+'>()
62+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'(foo)+'>()
6363
})
6464
it('exactly', () => {
6565
const input = exactly('fo?[a-z]{2}/o?')
6666
expect(new RegExp(input as any)).toMatchInlineSnapshot(
6767
'/fo\\\\\\?\\\\\\[a-z\\\\\\]\\\\\\{2\\\\\\}\\\\/o\\\\\\?/'
6868
)
69-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'fo\\?\\[a-z\\]\\{2\\}\\/o\\?'>()
69+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'fo\\?\\[a-z\\]\\{2\\}\\/o\\?'>()
7070
})
7171
it('word', () => {
7272
const input = word
7373
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\\\b\\\\w\\+\\\\b/')
74-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'\\b\\w+\\b'>()
74+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'\\b\\w+\\b'>()
7575
})
7676
it('wordChar', () => {
7777
const input = wordChar
7878
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\\\w/')
79-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'\\w'>()
79+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'\\w'>()
8080
})
8181
it('digit', () => {
8282
const input = digit
8383
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\\\d/')
84-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'\\d'>()
84+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'\\d'>()
8585
})
8686
it('wordBoundary', () => {
8787
const input = wordBoundary
8888
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\\\b/')
89-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'\\b'>()
89+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'\\b'>()
9090
})
9191
it('whitespace', () => {
9292
const input = whitespace
9393
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\\\s/')
94-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'\\s'>()
94+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'\\s'>()
9595
})
9696
it('letter', () => {
9797
const input = letter
9898
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\[a-zA-Z\\]/')
99-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'[a-zA-Z]'>()
99+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'[a-zA-Z]'>()
100100
})
101101
it('tab', () => {
102102
const input = tab
103103
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\\\t/')
104-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'\\t'>()
104+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'\\t'>()
105105
})
106106
it('linefeed', () => {
107107
const input = linefeed
108108
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\\\n/')
109-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'\\n'>()
109+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'\\n'>()
110110
})
111111
it('carriageReturn', () => {
112112
const input = carriageReturn
113113
expect(new RegExp(input as any)).toMatchInlineSnapshot('/\\\\r/')
114-
expectTypeOf(extractRegExp(input)).toMatchTypeOf<'\\r'>()
114+
expectTypeOf(extractRegExp(input)).toEqualTypeOf<'\\r'>()
115115
})
116116
it('not', () => {
117117
expect(not.wordChar.toString()).toMatchInlineSnapshot('"\\\\W"')
118-
expectTypeOf(extractRegExp(not.wordChar)).toMatchTypeOf<'\\W'>()
118+
expectTypeOf(extractRegExp(not.wordChar)).toEqualTypeOf<'\\W'>()
119119
expect(not.wordBoundary.toString()).toMatchInlineSnapshot('"\\\\B"')
120-
expectTypeOf(extractRegExp(not.wordBoundary)).toMatchTypeOf<'\\B'>()
120+
expectTypeOf(extractRegExp(not.wordBoundary)).toEqualTypeOf<'\\B'>()
121121
expect(not.digit.toString()).toMatchInlineSnapshot('"\\\\D"')
122-
expectTypeOf(extractRegExp(not.digit)).toMatchTypeOf<'\\D'>()
122+
expectTypeOf(extractRegExp(not.digit)).toEqualTypeOf<'\\D'>()
123123
expect(not.whitespace.toString()).toMatchInlineSnapshot('"\\\\S"')
124-
expectTypeOf(extractRegExp(not.whitespace)).toMatchTypeOf<'\\S'>()
124+
expectTypeOf(extractRegExp(not.whitespace)).toEqualTypeOf<'\\S'>()
125125
expect(not.letter.toString()).toMatchInlineSnapshot('"[^a-zA-Z]"')
126-
expectTypeOf(extractRegExp(not.letter)).toMatchTypeOf<'[^a-zA-Z]'>()
126+
expectTypeOf(extractRegExp(not.letter)).toEqualTypeOf<'[^a-zA-Z]'>()
127127
expect(not.tab.toString()).toMatchInlineSnapshot('"[^\\\\t]"')
128-
expectTypeOf(extractRegExp(not.tab)).toMatchTypeOf<'[^\\t]'>()
128+
expectTypeOf(extractRegExp(not.tab)).toEqualTypeOf<'[^\\t]'>()
129129
expect(not.linefeed.toString()).toMatchInlineSnapshot('"[^\\\\n]"')
130-
expectTypeOf(extractRegExp(not.linefeed)).toMatchTypeOf<'[^\\n]'>()
130+
expectTypeOf(extractRegExp(not.linefeed)).toEqualTypeOf<'[^\\n]'>()
131131
expect(not.carriageReturn.toString()).toMatchInlineSnapshot('"[^\\\\r]"')
132-
expectTypeOf(extractRegExp(not.carriageReturn)).toMatchTypeOf<'[^\\r]'>()
132+
expectTypeOf(extractRegExp(not.carriageReturn)).toEqualTypeOf<'[^\\r]'>()
133133
})
134134
})
135135

@@ -139,90 +139,90 @@ describe('chained inputs', () => {
139139
const val = input.and('test.js')
140140
const regexp = new RegExp(val as any)
141141
expect(regexp).toMatchInlineSnapshot('/\\\\\\?test\\\\\\.js/')
142-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'\\?test\\.js'>()
142+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'\\?test\\.js'>()
143143
})
144144
it('and.referenceTo', () => {
145145
const val = input.as('namedGroup').and(exactly('any')).and.referenceTo('namedGroup')
146146
const regexp = new RegExp(val as any)
147147
expect(regexp).toMatchInlineSnapshot('/\\(\\?<namedGroup>\\\\\\?\\)any\\\\k<namedGroup>/')
148-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'(?<namedGroup>\\?)any\\k<namedGroup>'>()
148+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'(?<namedGroup>\\?)any\\k<namedGroup>'>()
149149
})
150150
it('or', () => {
151151
const val = input.or('test.js')
152152
const regexp = new RegExp(val as any)
153153
expect(regexp).toMatchInlineSnapshot('/\\(\\\\\\?\\|test\\\\\\.js\\)/')
154-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'(\\?|test\\.js)'>()
154+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'(\\?|test\\.js)'>()
155155
})
156156
it('after', () => {
157157
const val = input.after('test.js')
158158
const regexp = new RegExp(val as any)
159159
expect(regexp).toMatchInlineSnapshot('/\\(\\?<=test\\\\\\.js\\)\\\\\\?/')
160-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'(?<=test\\.js)\\?'>()
160+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'(?<=test\\.js)\\?'>()
161161
})
162162
it('before', () => {
163163
const val = input.before('test.js')
164164
const regexp = new RegExp(val as any)
165165
expect(regexp).toMatchInlineSnapshot('/\\\\\\?\\(\\?=test\\\\\\.js\\)/')
166-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'\\?(?=test\\.js)'>()
166+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'\\?(?=test\\.js)'>()
167167
})
168168
it('notAfter', () => {
169169
const val = input.notAfter('test.js')
170170
const regexp = new RegExp(val as any)
171171
expect(regexp).toMatchInlineSnapshot('/\\(\\?<!test\\\\\\.js\\)\\\\\\?/')
172-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'(?<!test\\.js)\\?'>()
172+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'(?<!test\\.js)\\?'>()
173173
})
174174
it('notBefore', () => {
175175
const val = input.notBefore('test.js')
176176
const regexp = new RegExp(val as any)
177177
expect(regexp).toMatchInlineSnapshot('/\\\\\\?\\(\\?!test\\\\\\.js\\)/')
178-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'\\?(?!test\\.js)'>()
178+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'\\?(?!test\\.js)'>()
179179
})
180180
it('times', () => {
181181
const val = input.times(500)
182182
const regexp = new RegExp(val as any)
183183
expect(regexp).toMatchInlineSnapshot('/\\(\\\\\\?\\)\\{500\\}/')
184-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'(\\?){500}'>()
184+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'(\\?){500}'>()
185185
})
186186
it('times.any', () => {
187187
const val = input.times.any()
188188
const regexp = new RegExp(val as any)
189189
expect(regexp).toMatchInlineSnapshot('/\\(\\\\\\?\\)\\*/')
190-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'(\\?)*'>()
190+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'(\\?)*'>()
191191
})
192192
it('times.atLeast', () => {
193193
const val = input.times.atLeast(2)
194194
const regexp = new RegExp(val as any)
195195
expect(regexp).toMatchInlineSnapshot('/\\(\\\\\\?\\)\\{2,\\}/')
196-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'(\\?){2,}'>()
196+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'(\\?){2,}'>()
197197
})
198198
it('times.between', () => {
199199
const val = input.times.between(3, 5)
200200
const regexp = new RegExp(val as any)
201201
expect(regexp).toMatchInlineSnapshot('/\\(\\\\\\?\\)\\{3,5\\}/')
202-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'(\\?){3,5}'>()
202+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'(\\?){3,5}'>()
203203
})
204204
it('optionally', () => {
205205
const val = input.optionally()
206206
const regexp = new RegExp(val as any)
207207
expect(regexp).toMatchInlineSnapshot('/\\(\\\\\\?\\)\\?/')
208-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'(\\?)?'>()
208+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'(\\?)?'>()
209209
})
210210
it('as', () => {
211211
const val = input.as('test')
212212
const regexp = new RegExp(val as any)
213213
expect(regexp).toMatchInlineSnapshot('/\\(\\?<test>\\\\\\?\\)/')
214-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'(?<test>\\?)'>()
214+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'(?<test>\\?)'>()
215215
})
216216
it('at.lineStart', () => {
217217
const val = input.at.lineStart()
218218
const regexp = new RegExp(val as any)
219219
expect(regexp).toMatchInlineSnapshot('/\\^\\\\\\?/')
220-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'^\\?'>()
220+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'^\\?'>()
221221
})
222222
it('at.lineEnd', () => {
223223
const val = input.at.lineEnd()
224224
const regexp = new RegExp(val as any)
225225
expect(regexp).toMatchInlineSnapshot('/\\\\\\?\\$/')
226-
expectTypeOf(extractRegExp(val)).toMatchTypeOf<'\\?$'>()
226+
expectTypeOf(extractRegExp(val)).toEqualTypeOf<'\\?$'>()
227227
})
228228
})

0 commit comments

Comments
 (0)