Skip to content

Commit d432961

Browse files
authored
feat: port webidl tests to node test runner (#2554)
1 parent 2646bc7 commit d432961

File tree

4 files changed

+83
-110
lines changed

4 files changed

+83
-110
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
"test": "node scripts/generate-pem && npm run test:tap && npm run test:node-fetch && npm run test:fetch && npm run test:cookies && npm run test:wpt && npm run test:websocket && npm run test:jest && npm run test:typescript",
7979
"test:cookies": "borp --coverage -p \"test/cookie/*.js\"",
8080
"test:node-fetch": "mocha --exit test/node-fetch",
81-
"test:fetch": "npm run build:node && tap --expose-gc test/fetch/*.js && tap test/webidl/*.js",
81+
"test:fetch": "npm run build:node && tap --expose-gc test/fetch/*.js && borp --coverage -p \"test/webidl/*.js\"",
8282
"test:jest": "jest",
8383
"test:tap": "tap test/*.js test/diagnostics-channel/*.js",
8484
"test:tdd": "tap test/*.js test/diagnostics-channel/*.js -w",

test/webidl/converters.js

Lines changed: 38 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,39 @@
11
'use strict'
22

3-
const { test } = require('tap')
3+
const { describe, test } = require('node:test')
4+
const assert = require('node:assert')
45
const { webidl } = require('../../lib/fetch/webidl')
56

6-
test('sequence', (t) => {
7+
test('sequence', () => {
78
const converter = webidl.sequenceConverter(
89
webidl.converters.DOMString
910
)
1011

11-
t.same(converter([1, 2, 3]), ['1', '2', '3'])
12+
assert.deepStrictEqual(converter([1, 2, 3]), ['1', '2', '3'])
1213

13-
t.throws(() => {
14+
assert.throws(() => {
1415
converter(3)
1516
}, TypeError, 'disallows non-objects')
1617

17-
t.throws(() => {
18+
assert.throws(() => {
1819
converter(null)
1920
}, TypeError)
2021

21-
t.throws(() => {
22+
assert.throws(() => {
2223
converter(undefined)
2324
}, TypeError)
2425

25-
t.throws(() => {
26+
assert.throws(() => {
2627
converter({})
2728
}, TypeError, 'no Symbol.iterator')
2829

29-
t.throws(() => {
30+
assert.throws(() => {
3031
converter({
3132
[Symbol.iterator]: 42
3233
})
3334
}, TypeError, 'invalid Symbol.iterator')
3435

35-
t.throws(() => {
36+
assert.throws(() => {
3637
converter(webidl.converters.sequence({
3738
[Symbol.iterator] () {
3839
return {
@@ -41,28 +42,24 @@ test('sequence', (t) => {
4142
}
4243
}))
4344
}, TypeError, 'invalid generator')
44-
45-
t.end()
4645
})
4746

48-
test('webidl.dictionaryConverter', (t) => {
49-
t.test('arguments', (t) => {
47+
describe('webidl.dictionaryConverter', () => {
48+
test('arguments', () => {
5049
const converter = webidl.dictionaryConverter([])
5150

52-
t.throws(() => {
51+
assert.throws(() => {
5352
converter(true)
5453
}, TypeError)
5554

5655
for (const value of [{}, undefined, null]) {
57-
t.doesNotThrow(() => {
56+
assert.doesNotThrow(() => {
5857
converter(value)
5958
})
6059
}
61-
62-
t.end()
6360
})
6461

65-
t.test('required key', (t) => {
62+
test('required key', () => {
6663
const converter = webidl.dictionaryConverter([
6764
{
6865
converter: () => true,
@@ -71,57 +68,51 @@ test('webidl.dictionaryConverter', (t) => {
7168
}
7269
])
7370

74-
t.throws(() => {
71+
assert.throws(() => {
7572
converter({ wrongKey: 'key' })
7673
}, TypeError)
7774

78-
t.doesNotThrow(() => {
75+
assert.doesNotThrow(() => {
7976
converter({ Key: 'this key was required!' })
8077
})
81-
82-
t.end()
8378
})
84-
85-
t.end()
8679
})
8780

88-
test('ArrayBuffer', (t) => {
89-
t.throws(() => {
81+
test('ArrayBuffer', () => {
82+
assert.throws(() => {
9083
webidl.converters.ArrayBuffer(true)
9184
}, TypeError)
9285

93-
t.throws(() => {
86+
assert.throws(() => {
9487
webidl.converters.ArrayBuffer({})
9588
}, TypeError)
9689

97-
t.throws(() => {
90+
assert.throws(() => {
9891
const sab = new SharedArrayBuffer(1024)
9992
webidl.converters.ArrayBuffer(sab, { allowShared: false })
10093
}, TypeError)
10194

102-
t.doesNotThrow(() => {
95+
assert.doesNotThrow(() => {
10396
const sab = new SharedArrayBuffer(1024)
10497
webidl.converters.ArrayBuffer(sab)
10598
})
10699

107-
t.doesNotThrow(() => {
100+
assert.doesNotThrow(() => {
108101
const ab = new ArrayBuffer(8)
109102
webidl.converters.ArrayBuffer(ab)
110103
})
111-
112-
t.end()
113104
})
114105

115-
test('TypedArray', (t) => {
116-
t.throws(() => {
106+
test('TypedArray', () => {
107+
assert.throws(() => {
117108
webidl.converters.TypedArray(3)
118109
}, TypeError)
119110

120-
t.throws(() => {
111+
assert.throws(() => {
121112
webidl.converters.TypedArray({})
122113
}, TypeError)
123114

124-
t.throws(() => {
115+
assert.throws(() => {
125116
const uint8 = new Uint8Array([1, 2, 3])
126117
Object.defineProperty(uint8, 'buffer', {
127118
get () {
@@ -133,20 +124,18 @@ test('TypedArray', (t) => {
133124
allowShared: false
134125
})
135126
}, TypeError)
136-
137-
t.end()
138127
})
139128

140-
test('DataView', (t) => {
141-
t.throws(() => {
129+
test('DataView', () => {
130+
assert.throws(() => {
142131
webidl.converters.DataView(3)
143132
}, TypeError)
144133

145-
t.throws(() => {
134+
assert.throws(() => {
146135
webidl.converters.DataView({})
147136
}, TypeError)
148137

149-
t.throws(() => {
138+
assert.throws(() => {
150139
const buffer = new ArrayBuffer(16)
151140
const view = new DataView(buffer, 0)
152141

@@ -164,39 +153,33 @@ test('DataView', (t) => {
164153
const buffer = new ArrayBuffer(16)
165154
const view = new DataView(buffer, 0)
166155

167-
t.equal(webidl.converters.DataView(view), view)
168-
169-
t.end()
156+
assert.equal(webidl.converters.DataView(view), view)
170157
})
171158

172-
test('BufferSource', (t) => {
173-
t.doesNotThrow(() => {
159+
test('BufferSource', () => {
160+
assert.doesNotThrow(() => {
174161
const buffer = new ArrayBuffer(16)
175162
const view = new DataView(buffer, 0)
176163

177164
webidl.converters.BufferSource(view)
178165
})
179166

180-
t.throws(() => {
167+
assert.throws(() => {
181168
webidl.converters.BufferSource(3)
182169
}, TypeError)
183-
184-
t.end()
185170
})
186171

187-
test('ByteString', (t) => {
188-
t.doesNotThrow(() => {
172+
test('ByteString', () => {
173+
assert.doesNotThrow(() => {
189174
webidl.converters.ByteString('')
190175
})
191176

192177
// https://github.com/nodejs/undici/issues/1590
193-
t.throws(() => {
178+
assert.throws(() => {
194179
const char = String.fromCharCode(256)
195180
webidl.converters.ByteString(`invalid${char}char`)
196181
}, {
197182
message: 'Cannot convert argument to a ByteString because the character at ' +
198183
'index 7 has a value of 256 which is greater than 255.'
199184
})
200-
201-
t.end()
202185
})

test/webidl/helpers.js

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,26 @@
11
'use strict'
22

3-
const { test } = require('tap')
3+
const { describe, test } = require('node:test')
4+
const assert = require('node:assert')
45
const { webidl } = require('../../lib/fetch/webidl')
56

6-
test('webidl.interfaceConverter', (t) => {
7+
test('webidl.interfaceConverter', () => {
78
class A {}
89
class B {}
910

1011
const converter = webidl.interfaceConverter(A)
1112

12-
t.throws(() => {
13+
assert.throws(() => {
1314
converter(new B())
1415
}, TypeError)
1516

16-
t.doesNotThrow(() => {
17+
assert.doesNotThrow(() => {
1718
converter(new A())
1819
})
19-
20-
t.end()
2120
})
2221

23-
test('webidl.dictionaryConverter', (t) => {
24-
t.test('extraneous keys are provided', (t) => {
22+
describe('webidl.dictionaryConverter', () => {
23+
test('extraneous keys are provided', () => {
2524
const converter = webidl.dictionaryConverter([
2625
{
2726
key: 'key',
@@ -31,7 +30,7 @@ test('webidl.dictionaryConverter', (t) => {
3130
}
3231
])
3332

34-
t.same(
33+
assert.deepStrictEqual(
3534
converter({
3635
a: 'b',
3736
key: 'string',
@@ -42,11 +41,9 @@ test('webidl.dictionaryConverter', (t) => {
4241
}),
4342
{ key: 'string' }
4443
)
45-
46-
t.end()
4744
})
4845

49-
t.test('defaultValue with key = null', (t) => {
46+
test('defaultValue with key = null', () => {
5047
const converter = webidl.dictionaryConverter([
5148
{
5249
key: 'key',
@@ -55,21 +52,17 @@ test('webidl.dictionaryConverter', (t) => {
5552
}
5653
])
5754

58-
t.same(converter({ key: null }), { key: 0 })
59-
t.end()
55+
assert.deepStrictEqual(converter({ key: null }), { key: 0 })
6056
})
6157

62-
t.test('no defaultValue and optional', (t) => {
58+
test('no defaultValue and optional', () => {
6359
const converter = webidl.dictionaryConverter([
6460
{
6561
key: 'key',
6662
converter: webidl.converters.ByteString
6763
}
6864
])
6965

70-
t.same(converter({ a: 'b', c: 'd' }), {})
71-
t.end()
66+
assert.deepStrictEqual(converter({ a: 'b', c: 'd' }), {})
7267
})
73-
74-
t.end()
7568
})

0 commit comments

Comments
 (0)