1use std::path::PathBuf;23use jrsonnet_evaluator::{error::Result, throw_runtime, State, Val};45mod common;67#[test]8fn assert_positive() -> Result<()> {9 let s = State::default();10 s.with_stdlib();1112 let v = s.evaluate_snippet_raw(PathBuf::new().into(), "assert 1 == 1: 'fail'; null".into())?;13 ensure_val_eq!(s.clone(), v, Val::Null);14 let v = s.evaluate_snippet_raw(PathBuf::new().into(), "std.assertEqual(1, 1)".into())?;15 ensure_val_eq!(s.clone(), v, Val::Bool(true));1617 Ok(())18}1920#[test]21fn assert_negative() -> Result<()> {22 let s = State::default();23 s.with_stdlib();2425 {26 let e = match s27 .evaluate_snippet_raw(PathBuf::new().into(), "assert 1 == 2: 'fail'; null".into())28 {29 Ok(_) => throw_runtime!("assertion should fail"),30 Err(e) => e,31 };32 let e = s.stringify_err(&e);33 ensure!(e.starts_with("assert failed: fail\n"));34 }35 {36 let e = match s.evaluate_snippet_raw(PathBuf::new().into(), "std.assertEqual(1, 2)".into())37 {38 Ok(_) => throw_runtime!("assertion should fail"),39 Err(e) => e,40 };41 let e = s.stringify_err(&e);42 ensure!(e.starts_with("runtime error: Assertion failed. 1 != 2"))43 }4445 Ok(())46}