diff --git a/frontend/playwright/ui/render-wasm-specs/shapes.spec.js b/frontend/playwright/ui/render-wasm-specs/shapes.spec.js index 5cabe96c27..4440eb08f1 100644 --- a/frontend/playwright/ui/render-wasm-specs/shapes.spec.js +++ b/frontend/playwright/ui/render-wasm-specs/shapes.spec.js @@ -138,3 +138,26 @@ test("Renders shapes with exif rotated images fills and strokes", async ({ await expect(workspace.canvas).toHaveScreenshot(); }); + +test("Updates canvas background", async ({ + page, +}) => { + const workspace = new WasmWorkspacePage(page); + await workspace.setupEmptyFile(); + await workspace.mockGetFile("render-wasm/get-file-text.json"); + + await workspace.goToWorkspace({ + id: "3b0d758a-8c9d-8013-8006-52c8337e5c72", + pageId: "3b0d758a-8c9d-8013-8006-52c8337e5c73", + }); + await workspace.waitForFirstRender({ hideUI: false }); + + const canvasBackgroundInput = workspace.page.getByRole("textbox", { name: 'Color' }); + await canvasBackgroundInput.fill("FABADA"); + await workspace.page.keyboard.press("Enter"); + + // can't hide UI cause this will trigger a re-render + // await workspace.hideUI(); + + await expect(workspace.canvas).toHaveScreenshot(); +}); diff --git a/frontend/playwright/ui/render-wasm-specs/shapes.spec.js-snapshots/Updates-canvas-background-1.png b/frontend/playwright/ui/render-wasm-specs/shapes.spec.js-snapshots/Updates-canvas-background-1.png new file mode 100644 index 0000000000..01aa3ccd93 Binary files /dev/null and b/frontend/playwright/ui/render-wasm-specs/shapes.spec.js-snapshots/Updates-canvas-background-1.png differ diff --git a/render-wasm/src/main.rs b/render-wasm/src/main.rs index 522f71966c..0cde3d5681 100644 --- a/render-wasm/src/main.rs +++ b/render-wasm/src/main.rs @@ -115,6 +115,7 @@ pub extern "C" fn set_canvas_background(raw_color: u32) { with_state_mut!(state, { let color = skia::Color::new(raw_color); state.set_background_color(color); + state.rebuild_tiles(); }); }