difftreelog
test golden destruct
in: master
11 files changed
tests/golden_destruct/mutual_recursive_cross.jsonnetdiffbeforeafterboth--- /dev/null
+++ b/tests/golden_destruct/mutual_recursive_cross.jsonnet
@@ -0,0 +1,4 @@
+local
+ {a, b, c} = {a: y, b: c, c: x},
+ {x, y, z} = {x: a, y: 2, z: b};
+z == 2
tests/golden_destruct/mutual_recursive_fields.jsonnetdiffbeforeafterboth--- /dev/null
+++ b/tests/golden_destruct/mutual_recursive_fields.jsonnet
@@ -0,0 +1 @@
+local {a, b, c} = {a: b+1, b:c+1,c:3}; a
tests/golden_destruct/mutual_recursive_locals.jsonnetdiffbeforeafterboth--- /dev/null
+++ b/tests/golden_destruct/mutual_recursive_locals.jsonnet
@@ -0,0 +1 @@
+local {a= b+1, b = c+1, c = 3} = {}; a
tests/golden_destruct/omit.jsonnetdiffbeforeafterboth--- /dev/null
+++ b/tests/golden_destruct/omit.jsonnet
@@ -0,0 +1,2 @@
+// ...rest works like removeField, but freezes the object core so it still can access the fields
+local {a, b, ...c} = {a: 1, b: 2, c: self.a, d: self.b}; c
tests/golden_destruct/params.jsonnetdiffbeforeafterboth--- /dev/null
+++ b/tests/golden_destruct/params.jsonnet
@@ -0,0 +1,3 @@
+local myFun({a, b, c}) = a + b + c;
+
+myFun({a: 1, b: 2, c: 3})
tests/tests/golden.rsdiffbeforeafterboth1use std::path::Path;23use insta::{assert_snapshot, glob};4use jrsonnet_evaluator::{5 FileImportResolver, State,6 manifest::JsonFormat,7 trace::{CompactFormat, PathResolver, TraceFormat},8};9use jrsonnet_stdlib::ContextInitializer;10mod common;11use common::ContextInitializer as TestContextInitializer;1213fn run(file: &Path) -> String {14 let mut s = State::builder();15 s.context_initializer((16 ContextInitializer::new(PathResolver::new_cwd_fallback()),17 TestContextInitializer,18 ))19 .import_resolver(FileImportResolver::default());20 let s = s.build();2122 let _entered = s.enter();2324 let trace_format = CompactFormat {25 resolver: PathResolver::FileName,26 max_trace: 20,27 padding: 4,28 };2930 let v = match s.import(file) {31 Ok(v) => v,32 Err(e) => return trace_format.format(&e).unwrap(),33 };34 match v.manifest(JsonFormat::default()) {35 Ok(v) => v,36 Err(e) => trace_format.format(&e).unwrap(),37 }38}3940#[test]41fn golden() {42 glob!("../", "golden/*.jsonnet", |path| {43 let result = run(path);4445 assert_snapshot!(result);46 });47}4849#[test]50#[cfg(feature = "exp-null-coaelse")]51fn golden_null_coalesce() {52 glob!("../", "golden_null_coalesce/*.jsonnet", |path| {53 let result = run(path);5455 assert_snapshot!(result);56 });57}1use std::path::Path;23use insta::{assert_snapshot, glob};4use jrsonnet_evaluator::{5 FileImportResolver, State,6 manifest::JsonFormat,7 trace::{CompactFormat, PathResolver, TraceFormat},8};9use jrsonnet_stdlib::ContextInitializer;10mod common;11use common::ContextInitializer as TestContextInitializer;1213fn run(file: &Path) -> String {14 let mut s = State::builder();15 s.context_initializer((16 ContextInitializer::new(PathResolver::new_cwd_fallback()),17 TestContextInitializer,18 ))19 .import_resolver(FileImportResolver::default());20 let s = s.build();2122 let _entered = s.enter();2324 let trace_format = CompactFormat {25 resolver: PathResolver::FileName,26 max_trace: 20,27 padding: 4,28 };2930 let v = match s.import(file) {31 Ok(v) => v,32 Err(e) => return trace_format.format(&e).unwrap(),33 };34 match v.manifest(JsonFormat::default()) {35 Ok(v) => v,36 Err(e) => trace_format.format(&e).unwrap(),37 }38}3940#[test]41fn golden() {42 glob!("../", "golden/*.jsonnet", |path| {43 let result = run(path);4445 assert_snapshot!(result);46 });47}4849#[test]50#[cfg(feature = "exp-null-coaelse")]51fn golden_null_coalesce() {52 glob!("../", "golden_null_coalesce/*.jsonnet", |path| {53 let result = run(path);5455 assert_snapshot!(result);56 });57}5859#[test]60#[cfg(feature = "exp-destruct")]61fn golden_destruct() {62 glob!("../", "golden_destruct/*.jsonnet", |path| {63 let result = run(path);6465 assert_snapshot!(result);66 });67}tests/tests/snapshots/golden__golden_destruct@mutual_recursive_cross.jsonnet.snapdiffbeforeafterboth--- /dev/null
+++ b/tests/tests/snapshots/golden__golden_destruct@mutual_recursive_cross.jsonnet.snap
@@ -0,0 +1,6 @@
+---
+source: tests/tests/golden.rs
+expression: result
+input_file: tests/golden_destruct/mutual_recursive_cross.jsonnet
+---
+true
tests/tests/snapshots/golden__golden_destruct@mutual_recursive_fields.jsonnet.snapdiffbeforeafterboth--- /dev/null
+++ b/tests/tests/snapshots/golden__golden_destruct@mutual_recursive_fields.jsonnet.snap
@@ -0,0 +1,6 @@
+---
+source: tests/tests/golden.rs
+expression: result
+input_file: tests/golden_destruct/mutual_recursive_fields.jsonnet
+---
+5
tests/tests/snapshots/golden__golden_destruct@mutual_recursive_locals.jsonnet.snapdiffbeforeafterboth--- /dev/null
+++ b/tests/tests/snapshots/golden__golden_destruct@mutual_recursive_locals.jsonnet.snap
@@ -0,0 +1,6 @@
+---
+source: tests/tests/golden.rs
+expression: result
+input_file: tests/golden_destruct/mutual_recursive_locals.jsonnet
+---
+5
tests/tests/snapshots/golden__golden_destruct@omit.jsonnet.snapdiffbeforeafterboth--- /dev/null
+++ b/tests/tests/snapshots/golden__golden_destruct@omit.jsonnet.snap
@@ -0,0 +1,9 @@
+---
+source: tests/tests/golden.rs
+expression: result
+input_file: tests/golden_destruct/omit.jsonnet
+---
+{
+ "c": 1,
+ "d": 2
+}
tests/tests/snapshots/golden__golden_destruct@params.jsonnet.snapdiffbeforeafterboth--- /dev/null
+++ b/tests/tests/snapshots/golden__golden_destruct@params.jsonnet.snap
@@ -0,0 +1,6 @@
+---
+source: tests/tests/golden.rs
+expression: result
+input_file: tests/golden_destruct/params.jsonnet
+---
+6