1use jrsonnet_evaluator::{error::Result, throw_runtime, State, Val};2use jrsonnet_stdlib::StateExt;34mod common;56#[test]7fn assert_positive() -> Result<()> {8 let s = State::default();9 s.with_stdlib();1011 let v = s.evaluate_snippet("snip".to_owned(), "assert 1 == 1: 'fail'; null")?;12 ensure_val_eq!(s, v, Val::Null);13 let v = s.evaluate_snippet("snip".to_owned(), "std.assertEqual(1, 1)")?;14 ensure_val_eq!(s, v, Val::Bool(true));1516 Ok(())17}1819#[test]20fn assert_negative() -> Result<()> {21 let s = State::default();22 s.with_stdlib();2324 {25 let e = match s.evaluate_snippet("snip".to_owned(), "assert 1 == 2: 'fail'; null") {26 Ok(_) => throw_runtime!("assertion should fail"),27 Err(e) => e,28 };29 let e = s.stringify_err(&e);30 ensure!(e.starts_with("assert failed: fail\n"));31 }32 {33 let e = match s.evaluate_snippet("snip".to_owned(), "std.assertEqual(1, 2)") {34 Ok(_) => throw_runtime!("assertion should fail"),35 Err(e) => e,36 };37 let e = s.stringify_err(&e);38 ensure!(e.starts_with("runtime error: Assertion failed. 1 != 2"))39 }4041 Ok(())42}