From fa283af1deac01c965d8548467775c33d113dcad Mon Sep 17 00:00:00 2001 From: Alexey <4681325+qqrm@users.noreply.github.com> Date: Sat, 23 Aug 2025 09:50:06 +0300 Subject: [PATCH] Add canvas render snapshot test --- Cargo.toml | 2 +- tests/render_snapshot.rs | 30 +++++++++++++++++++ .../render_snapshot__red_canvas_snapshot.snap | 5 ++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 tests/render_snapshot.rs create mode 100644 tests/snapshots/render_snapshot__red_canvas_snapshot.snap diff --git a/Cargo.toml b/Cargo.toml index 5e90ef8..b5c1e90 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ wgpu = "25.0.2" wasm-bindgen = "0.2.92" wasm-bindgen-futures = "0.4" js-sys = "0.3.69" -web-sys = { version = "0.3.69", features = ["HtmlCanvasElement", "Window", "Document", "Navigator", "Performance", "console"] } +web-sys = { version = "0.3.69", features = ["HtmlCanvasElement", "Window", "Document", "Navigator", "Performance", "console", "CanvasRenderingContext2d"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" bytemuck = { version = "1.14.0", features = ["derive"] } diff --git a/tests/render_snapshot.rs b/tests/render_snapshot.rs new file mode 100644 index 0000000..16a376e --- /dev/null +++ b/tests/render_snapshot.rs @@ -0,0 +1,30 @@ +use wasm_bindgen::JsCast; +use wasm_bindgen_test::*; + +wasm_bindgen_test_configure!(run_in_browser); + +#[wasm_bindgen_test] +fn red_canvas_snapshot() { + let window = web_sys::window().unwrap(); + let document = window.document().unwrap(); + let canvas = document + .create_element("canvas") + .unwrap() + .dyn_into::() + .unwrap(); + canvas.set_width(10); + canvas.set_height(10); + document.body().unwrap().append_child(&canvas).unwrap(); + + let ctx = canvas + .get_context("2d") + .unwrap() + .unwrap() + .dyn_into::() + .unwrap(); + ctx.set_fill_style_str("#ff0000"); + ctx.fill_rect(0.0, 0.0, 10.0, 10.0); + + let data_url = canvas.to_data_url().unwrap(); + insta::assert_snapshot!(data_url); +} diff --git a/tests/snapshots/render_snapshot__red_canvas_snapshot.snap b/tests/snapshots/render_snapshot__red_canvas_snapshot.snap new file mode 100644 index 0000000..f48907b --- /dev/null +++ b/tests/snapshots/render_snapshot__red_canvas_snapshot.snap @@ -0,0 +1,5 @@ +--- +source: tests/render_snapshot.rs +expression: data_url +--- +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAGElEQVR4nGP8z8Dwn4EIwESMolGF1FMIAD2cAhK2AyPVAAAAAElFTkSuQmCC