From 8ec258afa11d0ceb569b8a150114f42d52920759 Mon Sep 17 00:00:00 2001 From: Yuki Hattori Date: Wed, 15 Jan 2025 22:54:02 +0900 Subject: [PATCH 1/4] Wait for next HTML rendering frame In parallel rendering, it may be needed to wait for the first rendering. --- src/converter.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/converter.ts b/src/converter.ts index 8436692b..17457542 100644 --- a/src/converter.ts +++ b/src/converter.ts @@ -668,6 +668,13 @@ export class Converter { await page.goto('data:text/html,', waitForOptions) await page.setContent(baseFile.buffer!.toString(), waitForOptions) } + + // Wait for next frame (In parallel rendering, it may be needed to wait for the first rendering) + await page.evaluate(async () => { + await new Promise((resolve) => + window.requestAnimationFrame(() => resolve()) + ) + }) } try { From 8b028338763ca8ae224b2854b3a5d0c0aa3243e8 Mon Sep 17 00:00:00 2001 From: Yuki Hattori Date: Wed, 15 Jan 2025 23:05:52 +0900 Subject: [PATCH 2/4] Update timeout values in some Converter tests --- test/converter.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/converter.ts b/test/converter.ts index ef909cff..18cc2d3d 100644 --- a/test/converter.ts +++ b/test/converter.ts @@ -1271,7 +1271,7 @@ describe('Converter', () => { expect(secondCall[1]).toBeInstanceOf(Buffer) expect((secondCall[1] as Buffer).length).toBeLessThan(jpeg.length) }, - timeout + timeoutLarge ) }) @@ -1315,7 +1315,7 @@ describe('Converter', () => { expect(secondCall[1]).toBeInstanceOf(Buffer) expect((secondCall[1] as Buffer).length).toBeLessThan(jpeg.length) }, - timeout + timeoutLarge ) }) }) From 1fb859566d49dbfdfce02cb6b1b781e5b9510146 Mon Sep 17 00:00:00 2001 From: Yuki Hattori Date: Wed, 15 Jan 2025 23:10:57 +0900 Subject: [PATCH 3/4] Ignore collecting coverage within the function for the browser --- src/converter.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/converter.ts b/src/converter.ts index 17457542..89d5ac3d 100644 --- a/src/converter.ts +++ b/src/converter.ts @@ -671,9 +671,11 @@ export class Converter { // Wait for next frame (In parallel rendering, it may be needed to wait for the first rendering) await page.evaluate(async () => { + /* c8 ignore start */ await new Promise((resolve) => window.requestAnimationFrame(() => resolve()) ) + /* c8 ignore end */ }) } From 2e30e3420f36d8ecff425b0b736c3b78842548cf Mon Sep 17 00:00:00 2001 From: Yuki Hattori Date: Thu, 16 Jan 2025 00:09:18 +0900 Subject: [PATCH 4/4] [ci skip] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e9b37a0..492d7d71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### Added -- Introduce parallelism for batch conversion: `--parallel` / `-P` ([#509](https://github.com/marp-team/marp-cli/issues/509), [#628](https://github.com/marp-team/marp-cli/pull/628)) +- Introduce parallelism for batch conversion: `--parallel` / `-P` ([#509](https://github.com/marp-team/marp-cli/issues/509), [#628](https://github.com/marp-team/marp-cli/pull/628), [#629](https://github.com/marp-team/marp-cli/pull/629)) ### Fixed