1use jrsonnet_evaluator::{2 bail,3 trace::{CompactFormat, TraceFormat},4 Result, State, Val,5};6use jrsonnet_stdlib::StateExt;78mod common;910#[test]11fn assert_positive() -> Result<()> {12 let s = State::default();13 s.with_stdlib();1415 let v = s.evaluate_snippet("snip".to_owned(), "assert 1 == 1: 'fail'; null")?;16 ensure_val_eq!(v, Val::Null);17 let v = s.evaluate_snippet("snip".to_owned(), "std.assertEqual(1, 1)")?;18 ensure_val_eq!(v, Val::Bool(true));1920 Ok(())21}2223#[test]24fn assert_negative() -> Result<()> {25 let s = State::default();26 s.with_stdlib();27 let trace_format = CompactFormat::default();2829 {30 let Err(e) = s.evaluate_snippet("snip".to_owned(), "assert 1 == 2: 'fail'; null") else {31 bail!("assertion should fail");32 };33 let e = trace_format.format(&e).unwrap();34 ensure!(e.starts_with("assert failed: fail\n"));35 }36 {37 let Err(e) = s.evaluate_snippet("snip".to_owned(), "std.assertEqual(1, 2)") else {38 bail!("assertion should fail")39 };40 let e = trace_format.format(&e).unwrap();41 ensure!(e.starts_with("runtime error: Assertion failed. 1 != 2"))42 }4344 Ok(())45}