@@ -240,7 +240,12 @@ test('createPattern-no-transform', async (t) => {
240
240
const { ctx } = t . context
241
241
const imageSrc = await promises . readFile ( join ( __dirname , 'canvas_createpattern.png' ) )
242
242
const image = new Image ( )
243
+ const { promise, resolve } = Promise . withResolvers < void > ( )
244
+ image . onload = ( ) => {
245
+ resolve ( )
246
+ }
243
247
image . src = imageSrc
248
+ await promise
244
249
const pattern = ctx . createPattern ( image , 'repeat' )
245
250
ctx . fillStyle = pattern
246
251
ctx . fillRect ( 0 , 0 , 300 , 300 )
@@ -262,7 +267,12 @@ test('createPattern-with-transform', async (t) => {
262
267
const { ctx } = t . context
263
268
const imageSrc = await promises . readFile ( join ( __dirname , 'canvas_createpattern.png' ) )
264
269
const image = new Image ( )
270
+ const { promise, resolve } = Promise . withResolvers < void > ( )
271
+ image . onload = ( ) => {
272
+ resolve ( )
273
+ }
265
274
image . src = imageSrc
275
+ await promise
266
276
const pattern = ctx . createPattern ( image , 'repeat' )
267
277
const matrix = new DOMMatrix ( )
268
278
pattern . setTransform ( matrix . rotate ( - 45 ) . scale ( 1.5 ) )
@@ -308,7 +318,12 @@ test('drawImage', async (t) => {
308
318
const filePath = './javascript.png'
309
319
const file = await promises . readFile ( join ( __dirname , filePath ) )
310
320
const image = new Image ( )
321
+ const { promise, resolve } = Promise . withResolvers < void > ( )
322
+ image . onload = ( ) => {
323
+ resolve ( )
324
+ }
311
325
image . src = file
326
+ await promise
312
327
ctx . drawImage ( image , 0 , 0 )
313
328
await snapshotImage ( t )
314
329
} )
@@ -318,7 +333,12 @@ test('drawImage-svg', async (t) => {
318
333
const filePath = './mountain.svg'
319
334
const file = await promises . readFile ( join ( __dirname , filePath ) )
320
335
const image = new Image ( )
336
+ const { promise, resolve } = Promise . withResolvers < void > ( )
337
+ image . onload = ( ) => {
338
+ resolve ( )
339
+ }
321
340
image . src = file
341
+ await promise
322
342
ctx . drawImage ( image , 0 , 0 )
323
343
await snapshotImage ( t )
324
344
} )
@@ -328,7 +348,12 @@ test('drawImage-svg-with-only-viewBox', async (t) => {
328
348
const filePath = './only-viewbox.svg'
329
349
const file = await promises . readFile ( join ( __dirname , filePath ) )
330
350
const image = new Image ( )
351
+ const { promise, resolve } = Promise . withResolvers < void > ( )
352
+ image . onload = ( ) => {
353
+ resolve ( )
354
+ }
331
355
image . src = file
356
+ await promise
332
357
ctx . drawImage ( image , 0 , 0 )
333
358
await snapshotImage ( t )
334
359
} )
@@ -338,7 +363,12 @@ test('drawImage-svg-resize', async (t) => {
338
363
const filePath = './resize.svg'
339
364
const file = await promises . readFile ( join ( __dirname , filePath ) )
340
365
const image = new Image ( )
366
+ const { promise, resolve } = Promise . withResolvers < void > ( )
367
+ image . onload = ( ) => {
368
+ resolve ( )
369
+ }
341
370
image . src = file
371
+ await promise
342
372
image . width = 100
343
373
image . height = 100
344
374
ctx . drawImage ( image , 0 , 0 )
@@ -360,7 +390,15 @@ test('drawImage-svg without width height should be empty image', async (t) => {
360
390
const filePath = './mountain.svg'
361
391
const svgContent = ( await promises . readFile ( join ( __dirname , filePath ) ) ) . toString ( 'utf-8' )
362
392
const image = new Image ( )
393
+ const { promise, resolve, reject } = Promise . withResolvers < void > ( )
394
+ image . onload = ( ) => {
395
+ resolve ( )
396
+ }
397
+ image . onerror = ( err ) => {
398
+ reject ( err )
399
+ }
363
400
image . src = Buffer . from ( svgContent . replace ( 'width="128"' , '' ) . replace ( 'height="128"' , '' ) )
401
+ await promise
364
402
ctx . drawImage ( image , 0 , 0 )
365
403
const output = await canvas . encode ( 'png' )
366
404
const outputData = png . decoders [ 'image/png' ] ( output )
@@ -372,7 +410,12 @@ test('draw-image-svg-noto-emoji', async (t) => {
372
410
const filePath = './notoemoji-person.svg'
373
411
const file = await promises . readFile ( join ( __dirname , filePath ) )
374
412
const image = new Image ( )
413
+ const { promise, resolve } = Promise . withResolvers < void > ( )
414
+ image . onload = ( ) => {
415
+ resolve ( )
416
+ }
375
417
image . src = file
418
+ await promise
376
419
ctx . drawImage ( image , 0 , 0 )
377
420
await snapshotImage ( t )
378
421
} )
0 commit comments