1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// =============================================================================
// #######
// ### ### F: debug_tests.rs
// ## ## ## ## P: AppCore-Runtime
// ## ##
// C: 2026/08/30 05:00:00 by dnettoRaw
// ## ## ## ## U: 2026/08/30 05:00:00 by dnettoRaw
// ########### S: 1.0.2-rc
// =============================================================================
use crate::{
DebugOverlay, DebugOverlayOptions, MaskView, ResolvedPage, ResolvedScene, Size, Unit,
ENGINE_VERSION,
};
#[test]
fn empty_overlay_does_not_mutate_scene() {
let scene = ResolvedScene {
template_id: "x".to_owned(),
pages: vec![ResolvedPage {
index: 0,
role: crate::PageRole::First,
size: Size::new(Unit::points(10).unwrap(), Unit::points(10).unwrap()).unwrap(),
page_template: None,
exclusions: Vec::new(),
regions: Vec::new(),
elements: Vec::new(),
}],
engine_version: ENGINE_VERSION.to_owned(),
};
let before = scene.clone();
let overlay = DebugOverlay::build(
&scene,
0,
&DebugOverlayOptions {
grid: Some(Unit::points(5).unwrap()),
ruler: true,
ids: true,
coordinates: true,
bounds: true,
anchors: true,
regions: true,
safe_area: true,
collision: true,
crosshair: true,
view: MaskView::Combined,
},
)
.unwrap();
assert!(!overlay.primitives.is_empty());
assert_eq!(scene, before);
}