diff --git a/web-common/src/features/canvas/CanvasDashboardWrapper.svelte b/web-common/src/features/canvas/CanvasDashboardWrapper.svelte
index cab84a40e07..e3538fed692 100644
--- a/web-common/src/features/canvas/CanvasDashboardWrapper.svelte
+++ b/web-common/src/features/canvas/CanvasDashboardWrapper.svelte
@@ -66,11 +66,12 @@
class="pointer-events-none absolute"
style="left: -99999px; top: 0;"
>
-
+
+
{/if}
diff --git a/web-common/src/features/exports/pdf/capture.spec.ts b/web-common/src/features/exports/pdf/capture.spec.ts
index 47b74d5da4f..83de25218a3 100644
--- a/web-common/src/features/exports/pdf/capture.spec.ts
+++ b/web-common/src/features/exports/pdf/capture.spec.ts
@@ -1,6 +1,62 @@
// @vitest-environment jsdom
-import { describe, expect, it } from "vitest";
-import { captureTargetsIn, inlineSvgStyles, rowIndexFor } from "./capture";
+import { toJpeg } from "html-to-image";
+import { beforeEach, describe, expect, it, vi } from "vitest";
+import {
+ captureTargetsIn,
+ inlineSvgStyles,
+ rasterizeNode,
+ rowIndexFor,
+} from "./capture";
+
+vi.mock("html-to-image", () => ({
+ toJpeg: vi.fn(() => Promise.resolve("data:image/jpeg;base64,")),
+}));
+
+describe("rasterizeNode", () => {
+ beforeEach(() => vi.mocked(toJpeg).mockClear());
+
+ function cardWith(inner: string): HTMLElement {
+ const card = document.createElement("div");
+ card.innerHTML = inner;
+ return card;
+ }
+
+ // WebKit hands back a blank raster the first time it captures a