git.delta.rocks / jrsonnet / refs/commits / 3421cac4341a

difftreelog

test use insta for jrsonnet own golden testsuite

mlulykymYaroslav Bolyukin2026-02-12parent: #144cb74.patch.diff
in: master

39 files changed

modifiedCargo.lockdiffbeforeafterboth
1413name = "tests"1413name = "tests"
1414version = "0.1.0"1414version = "0.1.0"
1415dependencies = [1415dependencies = [
1416 "insta",
1416 "jrsonnet-evaluator",1417 "jrsonnet-evaluator",
1417 "jrsonnet-gcmodule",1418 "jrsonnet-gcmodule",
1418 "jrsonnet-stdlib",1419 "jrsonnet-stdlib",
modifiedtests/Cargo.tomldiffbeforeafterboth
15json-structural-diff.workspace = true15json-structural-diff.workspace = true
16serde_json.workspace = true16serde_json.workspace = true
17
18[dev-dependencies]
19insta.workspace = true
1720
deletedtests/golden/array_comp.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/builtin_json.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/builtin_json_minified.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/builtin_parseJson.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/builtin_strings.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/builtin_strings_string.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/issue126.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/issue153.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/issue172.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/issue187.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/issue187.rev.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/issue188.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/issue195.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/issue23.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/issue40.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/missing_binding.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/object_comp.jsonnet.goldendiffbeforeafterboth

no changes

deletedtests/golden/test_assertThrow.jsonnet.goldendiffbeforeafterboth

no changes

modifiedtests/tests/golden.rsdiffbeforeafterboth
1use std::{1use std::path::Path;
2 fs, io,2
3 path::{Path, PathBuf},3use insta::{assert_snapshot, glob};
4};
5
6use jrsonnet_evaluator::{4use jrsonnet_evaluator::{
7 FileImportResolver, State,5 FileImportResolver, State,
40}38}
4139
42#[test]40#[test]
43fn test() -> io::Result<()> {41fn golden() {
44 use json_structural_diff::JsonDiff;
45
46 let mut root = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
47 root.push("golden");
48
49 for entry in fs::read_dir(&root)? {
50 let entry = entry?;
51 if !entry.path().extension().map_or(false, |e| e == "jsonnet") {
52 continue;
53 }
54
55 let result = run(&entry.path());
56
57 let mut golden_path = entry.path();
58 golden_path.set_extension("jsonnet.golden");
59
60 if !golden_path.exists() {
61 fs::write(golden_path, &result)?;
62 continue;
63 }
64
65 let golden = fs::read_to_string(golden_path)?;
66
67 match (serde_json::from_str(&result), serde_json::from_str(&golden)) {
68 (Err(_), Ok(_)) => assert_eq!(
69 result,
70 golden,
71 "unexpected error for golden {}",
72 entry.path().display()
73 ),
74 (Ok(_), Err(_)) => assert_eq!(42 glob!("../", "golden/*.jsonnet", |path| {
75 result,
76 golden,
77 "expected error for golden {}",
78 entry.path().display()
79 ),
80 (Ok(result), Ok(golden)) => {
81 // Show diff relative to golden`.
82 let diff = JsonDiff::diff_string(&golden, &result, false);43 let result = run(&path);
83 if let Some(diff) = diff {44
84 panic!(45 assert_snapshot!(result)
85 "Result \n{result:#}\n\
86 and golden \n{golden:#}\n\
87 did not match structurally:\n{diff:#}\n\
88 for golden {}",
89 entry.path().display()
90 );
91 }
92 }46 });
93 (Err(_), Err(_)) => {}
94 };47}
95
96 assert_eq!(
97 result,
98 golden,
99 "golden didn't match for {}",
100 entry.path().display()
101 );
102 }
103
104 Ok(())
105}
10648
addedtests/tests/snapshots/golden__golden@array_comp.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@builtin_json.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@builtin_json_minified.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@builtin_parseJson.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@builtin_strings.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@builtin_strings_string.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@issue126.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@issue153.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@issue172.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@issue187.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@issue187.rev.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@issue188.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@issue195.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@issue23.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@issue40.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@missing_binding.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@object_comp.jsonnet.snapdiffbeforeafterboth

no changes

addedtests/tests/snapshots/golden__golden@test_assertThrow.jsonnet.snapdiffbeforeafterboth

no changes