1use jrsonnet_evaluator::{2 error::Result,3 throw,4 trace::{CompactFormat, TraceFormat},5 State, Val,6};7use jrsonnet_stdlib::StateExt;89mod common;1011#[test]12fn assert_positive() -> Result<()> {13 let s = State::default();14 s.with_stdlib();1516 let v = s.evaluate_snippet("snip".to_owned(), "assert 1 == 1: 'fail'; null")?;17 ensure_val_eq!(v, Val::Null);18 let v = s.evaluate_snippet("snip".to_owned(), "std.assertEqual(1, 1)")?;19 ensure_val_eq!(v, Val::Bool(true));2021 Ok(())22}2324#[test]25fn assert_negative() -> Result<()> {26 let s = State::default();27 s.with_stdlib();28 let trace_format = CompactFormat::default();2930 {31 let Err(e) = s.evaluate_snippet("snip".to_owned(), "assert 1 == 2: 'fail'; null") else {32 throw!("assertion should fail");33 };34 let e = trace_format.format(&e).unwrap();35 ensure!(e.starts_with("assert failed: fail\n"));36 }37 {38 let Err(e) = s.evaluate_snippet("snip".to_owned(), "std.assertEqual(1, 2)") else {39 throw!("assertion should fail")40 };41 let e = trace_format.format(&e).unwrap();42 ensure!(e.starts_with("runtime error: Assertion failed. 1 != 2"))43 }4445 Ok(())46}