git.delta.rocks / jrsonnet / refs/commits / 3a378934588e

difftreelog

source

tests/tests/sanity.rs1.4 KiBsourcehistory
1use jrsonnet_evaluator::{2	FileImportResolver, Result, State, Val, bail,3	trace::{CompactFormat, PathResolver, TraceFormat},4};5use jrsonnet_stdlib::ContextInitializer;67mod common;89#[test]10fn assert_positive() -> Result<()> {11	let mut s = State::builder();12	s.context_initializer(ContextInitializer::new(PathResolver::new_cwd_fallback()))13		.import_resolver(FileImportResolver::default());14	let s = s.build();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 mut s = State::builder();27	s.context_initializer(ContextInitializer::new(PathResolver::new_cwd_fallback()))28		.import_resolver(FileImportResolver::default());29	let s = s.build();3031	let trace_format = CompactFormat::default();3233	{34		let Err(e) = s.evaluate_snippet("snip".to_owned(), "assert 1 == 2: 'fail'; null") else {35			bail!("assertion should fail");36		};37		let e = trace_format.format(&e).unwrap();38		ensure!(e.starts_with("assert failed: fail\n"));39	}40	{41		let Err(e) = s.evaluate_snippet("snip".to_owned(), "std.assertEqual(1, 2)") else {42			bail!("assertion should fail")43		};44		let e = trace_format.format(&e).unwrap();45		ensure!(e.starts_with("runtime error: assertion failed: A != B\nA: 1\nB: 2\n"));46	}4748	Ok(())49}