diff options
author | Arun Isaac | 2024-10-04 16:58:07 +0100 |
---|---|---|
committer | Arun Isaac | 2024-10-04 17:00:27 +0100 |
commit | f2ab2860f2e02b4ddc080242154c8f44dec9081e (patch) | |
tree | 701c3fa37adb96412f794343f553ff7e4402551e /tests | |
parent | c88a98e93832d2b8d4ba89c953e606e05e9321d6 (diff) | |
download | ravanan-f2ab2860f2e02b4ddc080242154c8f44dec9081e.tar.gz ravanan-f2ab2860f2e02b4ddc080242154c8f44dec9081e.tar.lz ravanan-f2ab2860f2e02b4ddc080242154c8f44dec9081e.zip |
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.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/javascript.scm | 54 |
1 files changed, 35 insertions, 19 deletions
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") |