From e045af5d9c9106594bc2a5f609b14dbc603f7253 Mon Sep 17 00:00:00 2001 From: Andreas Hochsteger Date: Thu, 29 Dec 2022 23:01:05 +0100 Subject: Add coll.JQ using gojq library (#1585) * feat: add coll.JQ using gojq library * fix: jq function naming (gojq -> jq) * test: add tests (take from jsonpath_test.go) * chore: add TODO for nil values (are they allowed?) * refactor: use fmt.Errorf instead of errors.Wrapf Co-authored-by: Dave Henderson * fix: wrong alias for coll.JQ Co-authored-by: Dave Henderson * docs: add links to JQ Co-authored-by: Dave Henderson * test: add assertions after json marshal/unmarshal Co-authored-by: Dave Henderson * refactor: use fmt.Errorf instead of errors.Wrapf Co-authored-by: Dave Henderson * fix: test syntax and null handling * docs: improve documentation * docs: add blank line * Support cancellation Signed-off-by: Dave Henderson * Support (almost) all types, not just map[string]interface{} and []interface{} Signed-off-by: Dave Henderson * add an integration test for coll.JQ Signed-off-by: Dave Henderson Signed-off-by: Dave Henderson Co-authored-by: Andreas Hochsteger Co-authored-by: Dave Henderson --- internal/tests/integration/collection_test.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'internal') diff --git a/internal/tests/integration/collection_test.go b/internal/tests/integration/collection_test.go index cc83e14d..5175ef64 100644 --- a/internal/tests/integration/collection_test.go +++ b/internal/tests/integration/collection_test.go @@ -98,3 +98,8 @@ func TestColl_Pick(t *testing.T) { func TestColl_Omit(t *testing.T) { inOutTest(t, `{{ $data := dict "foo" 1 "bar" 2 "baz" 3 }}{{ coll.Omit "foo" "baz" $data }}`, "map[bar:2]") } + +func TestColl_JQ(t *testing.T) { + inOutTest(t, `{{ coll.JQ ".foo" (dict "foo" 1 "bar" 2 "baz" 3) }}`, "1") + inOutTest(t, `{{ coll.Slice "one" 2 "three" 4.0 | jq ".[2]" }}`, `three`) +} -- cgit v1.2.3