Skip to content

Commit 5731977

Browse files
aduh95danielleadams
authored andcommitted
test,crypto: ensure promises resolve in webcrypto tests
PR-URL: #37653 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent 341ee31 commit 5731977

4 files changed

Lines changed: 85 additions & 81 deletions

File tree

‎test/parallel/test-webcrypto-digest.js‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -66,25 +66,25 @@ const kData = (new TextEncoder()).encode('hello');
6666
}));
6767
})().then(common.mustCall());
6868

69-
[1,[],{},null,undefined].forEach((i)=>{
70-
assert.rejects(subtle.digest(i),{message: /Unrecognizedname/});
71-
});
69+
Promise.all([1,[],{},null,undefined].map((i)=>
70+
assert.rejects(subtle.digest(i),{message: /Unrecognizedname/})
71+
)).then(common.mustCall());
7272

73-
assert.rejects(subtle.digest(''),{message: /Unrecognizedname/});
73+
assert.rejects(subtle.digest(''),{message: /Unrecognizedname/}).then(common.mustCall());
7474

75-
[1,[],{},null,undefined].forEach((i)=>{
75+
Promise.all([1,[],{},null,undefined].map((i)=>
7676
assert.rejects(subtle.digest('SHA-256',i),{
7777
code: 'ERR_INVALID_ARG_TYPE'
78-
});
79-
});
78+
})
79+
)).then(common.mustCall());
8080

8181
// If there is a mismatch between length and the expected digest size for
8282
// the selected algorithm, we fail. The length is a Node.js specific
8383
// addition to the API, and is added as a support for future additional
8484
// hash algorithms that support variable digest output lengths.
8585
assert.rejects(subtle.digest({name: 'SHA-512',length: 510},kData),{
8686
message: /Digestmethodnotsupported/
87-
});
87+
}).then(common.mustCall());
8888

8989
constkSourceData={
9090
empty: '',

‎test/parallel/test-webcrypto-ed25519-ed448.js‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ assert.rejects(
6565
['sign']),
6666
{
6767
message: /NODE-ED25519rawkeysmustbeexactly32-bytes/
68-
});
68+
}).then(common.mustCall());
6969

7070
assert.rejects(
7171
subtle.importKey(
@@ -79,7 +79,7 @@ assert.rejects(
7979
['sign']),
8080
{
8181
message: /NODE-ED448rawkeysmustbeexactly57-bytes/
82-
});
82+
}).then(common.mustCall());
8383

8484
consttestVectors={
8585
'NODE-ED25519': [
@@ -331,7 +331,7 @@ assert.rejects(
331331
['sign','verify']),
332332
{
333333
message: /UnsupportednamedcurvesforECDSA/
334-
});
334+
}).then(common.mustCall());
335335

336336
assert.rejects(
337337
subtle.generateKey(
@@ -343,7 +343,7 @@ assert.rejects(
343343
['sign','verify']),
344344
{
345345
message: /UnsupportednamedcurvesforECDSA/
346-
});
346+
}).then(common.mustCall());
347347

348348
assert.rejects(
349349
subtle.generateKey(
@@ -355,7 +355,7 @@ assert.rejects(
355355
['sign','verify']),
356356
{
357357
message: /UnsupportednamedcurvesforECDSA/
358-
});
358+
}).then(common.mustCall());
359359

360360
assert.rejects(
361361
subtle.generateKey(
@@ -367,7 +367,7 @@ assert.rejects(
367367
['sign','verify']),
368368
{
369369
message: /UnsupportednamedcurvesforECDSA/
370-
});
370+
}).then(common.mustCall());
371371

372372
{
373373
for(constasymmetricKeyTypeof['ed25519','ed448']){
@@ -398,7 +398,7 @@ assert.rejects(
398398
),
399399
{
400400
message: /Invalidalgorithmname/
401-
});
401+
}).then(common.mustCall());
402402

403403
assert.rejects(
404404
subtle.importKey(
@@ -413,7 +413,7 @@ assert.rejects(
413413
),
414414
{
415415
message: /Invalidalgorithmname/
416-
});
416+
}).then(common.mustCall());
417417
}
418418
}
419419
}

‎test/parallel/test-webcrypto-export-import.js‎

Lines changed: 65 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -9,70 +9,74 @@ const assert = require('assert');
99
const{ subtle, getRandomValues }=require('crypto').webcrypto;
1010

1111
{
12-
constkeyData=getRandomValues(newUint8Array(32));
13-
[1,null,undefined,{},[]].forEach((format)=>{
14-
assert.rejects(
15-
subtle.importKey(format,keyData,{},false,['wrapKey']),{
16-
code: 'ERR_INVALID_ARG_TYPE'
12+
asyncfunctiontest(){
13+
constkeyData=getRandomValues(newUint8Array(32));
14+
awaitPromise.all([1,null,undefined,{},[]].map((format)=>
15+
assert.rejects(
16+
subtle.importKey(format,keyData,{},false,['wrapKey']),{
17+
code: 'ERR_INVALID_ARG_TYPE'
18+
})
19+
));
20+
awaitassert.rejects(
21+
subtle.importKey('not valid',keyData,{},false,['wrapKey']),{
22+
code: 'ERR_INVALID_ARG_VALUE'
1723
});
18-
});
19-
assert.rejects(
20-
subtle.importKey('not valid',keyData,{},false,['wrapKey']),{
21-
code: 'ERR_INVALID_ARG_VALUE'
22-
});
23-
[1,null,undefined,{},[]].forEach((keyData)=>{
24-
assert.rejects(
25-
subtle.importKey('raw',keyData,{},false,['deriveBits']),{
24+
awaitPromise.all([1,null,undefined,{},[]].map((keyData)=>
25+
assert.rejects(
26+
subtle.importKey('raw',keyData,{},false,['deriveBits']),{
27+
code: 'ERR_INVALID_ARG_TYPE'
28+
})
29+
));
30+
awaitassert.rejects(
31+
subtle.importKey('raw',keyData,{
32+
name: 'HMAC'
33+
},false,['sign','verify']),{
34+
code: 'ERR_MISSING_OPTION'
35+
});
36+
awaitassert.rejects(
37+
subtle.importKey('raw',keyData,{
38+
name: 'HMAC',
39+
hash: 'SHA-256'
40+
},false,['deriveBits']),{
41+
name: 'SyntaxError',
42+
message: 'Unsupported key usage for an HMAC key'
43+
});
44+
awaitassert.rejects(
45+
subtle.importKey('node.keyObject','',{
46+
name: 'HMAC',
47+
hash: 'SHA-256'
48+
},false,['sign','verify']),{
2649
code: 'ERR_INVALID_ARG_TYPE'
2750
});
28-
});
29-
assert.rejects(
30-
subtle.importKey('raw',keyData,{
31-
name: 'HMAC'
32-
},false,['sign','verify']),{
33-
code: 'ERR_MISSING_OPTION'
34-
}).then(common.mustCall());
35-
assert.rejects(
36-
subtle.importKey('raw',keyData,{
37-
name: 'HMAC',
38-
hash: 'SHA-256'
39-
},false,['deriveBits']),{
40-
name: 'SyntaxError',
41-
message: 'Unsupported key usage for an HMAC key'
42-
}).then(common.mustCall());
43-
assert.rejects(
44-
subtle.importKey('node.keyObject','',{
45-
name: 'HMAC',
46-
hash: 'SHA-256'
47-
},false,['sign','verify']),{
48-
code: 'ERR_INVALID_ARG_TYPE'
49-
}).then(common.mustCall());
50-
assert.rejects(
51-
subtle.importKey('raw',keyData,{
52-
name: 'HMAC',
53-
hash: 'SHA-256',
54-
length: 0
55-
},false,['sign','verify']),{
56-
name: 'DataError',
57-
message: 'Zero-length key is not supported'
58-
}).then(common.mustCall());
59-
assert.rejects(
60-
subtle.importKey('raw',keyData,{
61-
name: 'HMAC',
62-
hash: 'SHA-256',
63-
length: 1
64-
},false,['sign','verify']),{
65-
name: 'DataError',
66-
message: 'Invalid key length'
67-
}).then(common.mustCall());
68-
assert.rejects(
69-
subtle.importKey('jwk',null,{
70-
name: 'HMAC',
71-
hash: 'SHA-256',
72-
},false,['sign','verify']),{
73-
name: 'DataError',
74-
message: 'Invalid JWK keyData'
75-
}).then(common.mustCall());
51+
awaitassert.rejects(
52+
subtle.importKey('raw',keyData,{
53+
name: 'HMAC',
54+
hash: 'SHA-256',
55+
length: 0
56+
},false,['sign','verify']),{
57+
name: 'DataError',
58+
message: 'Zero-length key is not supported'
59+
});
60+
awaitassert.rejects(
61+
subtle.importKey('raw',keyData,{
62+
name: 'HMAC',
63+
hash: 'SHA-256',
64+
length: 1
65+
},false,['sign','verify']),{
66+
name: 'DataError',
67+
message: 'Invalid key length'
68+
});
69+
awaitassert.rejects(
70+
subtle.importKey('jwk',null,{
71+
name: 'HMAC',
72+
hash: 'SHA-256',
73+
},false,['sign','verify']),{
74+
name: 'DataError',
75+
message: 'Invalid JWK keyData'
76+
});
77+
}
78+
79+
test().then(common.mustCall());
7680
}
7781

7882
// Import/Export HMAC Secret Key

‎test/parallel/test-webcrypto-x25519-x448.js‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@ async function importKey(namedCurve, keyData, isPublic = false) {
5959

6060
assert.rejects(importKey('NODE-X25519',Buffer.alloc(10),true),{
6161
message: /NODE-X25519rawkeysmustbeexactly32-bytes/
62-
});
62+
}).then(common.mustCall());
6363
assert.rejects(importKey('NODE-X448',Buffer.alloc(10),true),{
6464
message: /NODE-X448rawkeysmustbeexactly56-bytes/
65-
});
65+
}).then(common.mustCall());
6666

6767
asyncfunctiontest1(namedCurve){
6868
const{
@@ -235,7 +235,7 @@ assert.rejects(
235235
['deriveBits']),
236236
{
237237
message: /UnsupportednamedcurvesforECDH/
238-
});
238+
}).then(common.mustCall());
239239

240240
assert.rejects(
241241
subtle.generateKey(
@@ -247,7 +247,7 @@ assert.rejects(
247247
['deriveBits']),
248248
{
249249
message: /UnsupportednamedcurvesforECDH/
250-
});
250+
}).then(common.mustCall());
251251

252252
{
253253
// Private JWK import

0 commit comments

Comments
 (0)