about summary refs log tree commit diff
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")