aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRuben Beltran del Rio <jj@r.bdr.sh>2025-12-16 10:40:44 +0100
committerRuben Beltran del Rio <jj@r.bdr.sh>2025-12-16 10:55:34 +0100
commitf08648e4b5a9f7855a2ed9068a386e2f3c596322 (patch)
tree1f1567ea609a1f74aaeab3cbbfdb249c5c47d723 /tests
Initial implementation
Diffstat (limited to 'tests')
-rw-r--r--tests/fixtures/simple.wmap13
-rw-r--r--tests/integration_test.rs63
2 files changed, 76 insertions, 0 deletions
diff --git a/tests/fixtures/simple.wmap b/tests/fixtures/simple.wmap
new file mode 100644
index 0000000..6c83047
--- /dev/null
+++ b/tests/fixtures/simple.wmap
@@ -0,0 +1,13 @@
+Tea (90, 50)
+Cup (80, 40)
+Kettle (70, 30) [square]
+Water (60, 20) [triangle]
+
+Tea -> Cup
+Cup -> Kettle
+Kettle -> Water
+
+[Note] (50, 50) This is a simple tea supply chain
+[Group] Tea, Cup, Kettle
+[Inertia] Kettle
+[Evolution] Tea + 10
diff --git a/tests/integration_test.rs b/tests/integration_test.rs
new file mode 100644
index 0000000..6814429
--- /dev/null
+++ b/tests/integration_test.rs
@@ -0,0 +1,63 @@
+use wmap_renderer::{render_to_png, render_to_svg, Configuration, StageType};
+
+#[test]
+fn test_render_simple_map_to_png() {
+ let source = include_str!("fixtures/simple.wmap");
+ let map = wmap_parser::parse(source);
+ let config = Configuration::default();
+
+ let result = render_to_png(&map, StageType::default(), &config);
+ assert!(result.is_ok());
+
+ let png_data = result.unwrap();
+ assert!(!png_data.is_empty());
+
+ // Verify it's a valid PNG (starts with PNG signature)
+ assert_eq!(&png_data[0..8], &[137, 80, 78, 71, 13, 10, 26, 10]);
+}
+
+#[test]
+fn test_render_simple_map_to_svg() {
+ let source = include_str!("fixtures/simple.wmap");
+ let map = wmap_parser::parse(source);
+ let config = Configuration::default();
+
+ let result = render_to_svg(&map, StageType::default(), &config);
+ assert!(result.is_ok());
+
+ let svg_data = result.unwrap();
+ assert!(!svg_data.is_empty());
+ assert!(svg_data.contains("<svg"));
+}
+
+#[test]
+fn test_render_with_all_shapes() {
+ let source = "Circle (50, 50) [circle]\nSquare (60, 60) [square]\nTriangle (70, 70) [triangle]\nX (80, 80) [x]";
+ let map = wmap_parser::parse(source);
+ let config = Configuration::default();
+
+ let result = render_to_png(&map, StageType::default(), &config);
+ assert!(result.is_ok());
+}
+
+#[test]
+fn test_render_with_different_stage_types() {
+ let source = "Component (50, 50)";
+ let map = wmap_parser::parse(source);
+ let config = Configuration::default();
+
+ // Test a few different stage types
+ assert!(render_to_png(&map, StageType::Activities, &config).is_ok());
+ assert!(render_to_png(&map, StageType::Cynefin, &config).is_ok());
+ assert!(render_to_png(&map, StageType::Practice, &config).is_ok());
+}
+
+#[test]
+fn test_render_empty_map() {
+ let source = "";
+ let map = wmap_parser::parse(source);
+ let config = Configuration::default();
+
+ let result = render_to_png(&map, StageType::default(), &config);
+ assert!(result.is_ok());
+}