vectorcraft/crates/ui-egui/src/tests_widthtool.rs

30 lines
1.1 KiB
Rust

//! The Width tool in the UI: its cursors and hint.
use serde_json::json;
use vectorcraft_engine::Session;
use vectorcraft_tools::Cursor;
use crate::{VectorcraftApp, chrome, tests_labels::painted_text};
#[test]
fn the_width_tool_has_its_own_cursors() {
let ctx = egui::Context::default();
let mut out = ctx.run_ui(egui::RawInput::default(), |ui| {
let painter = ui.painter().clone();
for c in [Cursor::Width, Cursor::WidthAdd, Cursor::WidthPoint] {
assert!(crate::cursors::paint(&painter, c, egui::pos2(50.0, 50.0)), "{c:?} is drawn");
}
});
out.textures_delta.clear();
assert!(out.shapes.len() > 3, "{} shapes", out.shapes.len());
}
#[test]
fn the_hint_bar_explains_the_width_tool() {
let mut app = VectorcraftApp::new(Session::new(), Default::default());
app.run("file.new", json!({"width": 300, "height": 300})).unwrap();
app.run("tool.select", json!({"tool": "width"})).unwrap();
let text = painted_text(&mut app, chrome::hint_bar).replace('\n', "");
assert!(text.contains("add a width point") && text.contains("one side") && text.contains("remove points"), "{text}");
}