diff options
| author | Ruben Beltran del Rio <jj@r.bdr.sh> | 2025-12-16 10:40:44 +0100 |
|---|---|---|
| committer | Ruben Beltran del Rio <jj@r.bdr.sh> | 2025-12-16 10:55:34 +0100 |
| commit | f08648e4b5a9f7855a2ed9068a386e2f3c596322 (patch) | |
| tree | 1f1567ea609a1f74aaeab3cbbfdb249c5c47d723 /tests | |
Initial implementation
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/fixtures/simple.wmap | 13 | ||||
| -rw-r--r-- | tests/integration_test.rs | 63 |
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()); +} |