From f2ab2860f2e02b4ddc080242154c8f44dec9081e Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Fri, 4 Oct 2024 16:58:07 +0100 Subject: javascript: Unify simple parameter reference and node fallback. * ravanan/command-line-tool.scm: Do not import (ravanan config), and node from (gnu packages node). (%worker-node): Move to (ravanan javascript). (interpolate-parameter-references): Delete function. (coerce-expression): Always call evaluate-parameter-reference from (ravanan javascript). * ravanan/work/command-line-tool.scm (evaluate-parameter-reference): Delete function. * ravanan/javascript.scm: Mention fallback to node in module commentary. Import (ravanan config), (ravanan work command-line-tool), and node from (gnu packages node). (evaluate-simple-parameter-reference): Rename to evaluate-parameter-reference. (evaluate-parameter-reference-1, evaluate-parameter-reference): Add expression-lib argument. Return regular values, not maybe-monadic values. (evaluate-using-node): New function. * tests/javascript.scm ("evaluate parameter reference", "evaluate parameter reference with string interpolation", "evaluate parameter reference with string interpolation of JSON trees"): Update tests. ("evaluate parameter reference with node", "evaluate parameter reference with string interpolation using node", "evaluate parameter reference with string interpolation of JSON trees using node"): New tests. --- tests/javascript.scm | 54 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 19 deletions(-) (limited to 'tests/javascript.scm') diff --git a/tests/javascript.scm b/tests/javascript.scm index 5f23153..b6c4753 100644 --- a/tests/javascript.scm +++ b/tests/javascript.scm @@ -24,30 +24,46 @@ (test-equal "evaluate parameter reference" "c" - (from-maybe - (evaluate-simple-parameter-reference "$(inputs.message['bar'][\"foo\"][2])" - '(("inputs" ("message" ("bar" ("foo" . #("a" "b" "c" "d"))))))) - #f)) + (evaluate-parameter-reference "$(inputs.message['bar'][\"foo\"][2])" + '(("inputs" ("message" ("bar" ("foo" . #("a" "b" "c" "d")))))))) (test-equal "evaluate parameter reference with string interpolation" "24foo12foobar" - (from-maybe - (evaluate-simple-parameter-reference "$(runtime.cores)foo$(inputs.threads)$(inputs.output_filename)" - '(("inputs" - ("threads" . 12) - ("output_filename" . "foobar")) - ("runtime" ("cores" . 24)))) - #f)) + (evaluate-parameter-reference "$(runtime.cores)foo$(inputs.threads)$(inputs.output_filename)" + '(("inputs" + ("threads" . 12) + ("output_filename" . "foobar")) + ("runtime" ("cores" . 24))))) (test-equal "evaluate parameter reference with string interpolation of JSON trees" "foo[0,1,2,3]{\"bar\":2,\"foo\":1}" - (from-maybe - (evaluate-simple-parameter-reference "foo$(inputs.vector)$(inputs.object)" - '(("inputs" - ("object" - ("foo" . 1) - ("bar" . 2)) - ("vector" . #(0 1 2 3))))) - #f)) + (evaluate-parameter-reference "foo$(inputs.vector)$(inputs.object)" + '(("inputs" + ("object" + ("foo" . 1) + ("bar" . 2)) + ("vector" . #(0 1 2 3)))))) + +(test-equal "evaluate parameter reference with node" + "3" + (evaluate-parameter-reference "$(inputs.n + 1)" + '(("inputs" ("n" . 2))))) + +(test-equal "evaluate parameter reference with string interpolation using node" + "24foo24foobar" + (evaluate-parameter-reference "$(runtime.cores)foo$(inputs.threads*2)$(inputs.output_filename)" + '(("inputs" + ("threads" . 12) + ("output_filename" . "foobar")) + ("runtime" ("cores" . 24))))) + +(test-equal "evaluate parameter reference with string interpolation of JSON trees using node" + "foo[0,1,2,3]{\"bar\":2,\"foo\":1}20" + (evaluate-parameter-reference "foo$(inputs.vector)$(inputs.object)$(inputs.object.foo*20)" + '(("inputs" + ("object" + ("foo" . 1) + ("bar" . 2)) + ("vector" . #(0 1 2 3)))))) (test-end "javascript") -- cgit v1.2.3