aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorArun Isaac2024-10-04 16:58:07 +0100
committerArun Isaac2024-10-04 17:00:27 +0100
commitf2ab2860f2e02b4ddc080242154c8f44dec9081e (patch)
tree701c3fa37adb96412f794343f553ff7e4402551e /tests
parentc88a98e93832d2b8d4ba89c953e606e05e9321d6 (diff)
downloadravanan-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.scm54
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")