about summary refs log tree commit diff
path: root/tests/javascript.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/javascript.scm')
-rw-r--r--tests/javascript.scm36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/javascript.scm b/tests/javascript.scm
index 9f86e7f..eb70373 100644
--- a/tests/javascript.scm
+++ b/tests/javascript.scm
@@ -46,6 +46,16 @@
   (evaluate-javascript-expression "$(null)"
                                   '()))
 
+(test-equal "evaluate true javascript expression"
+  #t
+  (evaluate-javascript-expression "$(true)"
+                                  '()))
+
+(test-equal "evaluate false javascript expression"
+  #f
+  (evaluate-javascript-expression "$(false)"
+                                  '()))
+
 (test-equal "evaluate parameter reference to JSON object"
   (canonicalize-json '(("class" . "File")
                        ("path" . "/foo/bar")))
@@ -81,6 +91,14 @@
   ''null
   (gexp->sexp-rec (evaluate-javascript-expression "$(null)")))
 
+(test-equal "evaluate true javascript expression with node"
+  '#t
+  (gexp->sexp-rec (evaluate-javascript-expression "$(true)")))
+
+(test-equal "evaluate false javascript expression with node"
+  '#f
+  (gexp->sexp-rec (evaluate-javascript-expression "$(false)")))
+
 (test-equal "evaluate parameter reference to JSON object using node"
   '(json-ref inputs "fasta")
   (gexp->sexp-rec
@@ -178,4 +196,22 @@
   (evaluate-javascript-expression "$(1 - (2 - 1))"
                                   '()))
 
+(test-equal "evaluate javascript function body"
+  2
+  (evaluate-javascript-expression "${switch (inputs.message) { case \"foo\": return 1; case \"bar\": return 2; default: return 3}}"
+                                  '(("inputs" . (("message" . "bar")
+                                                 ("threads" . 48)))
+                                    ("self" . #f)
+                                    ("runtime" . #f))))
+
+(test-error "missing key in parameter reference must raise an error" #t
+            (evaluate-javascript-expression "$(inputs.fbar)"
+                                            '(("inputs" . ()))
+                                            '()))
+
+(test-equal "trim whitespace characters in javascript expressions"
+  2
+  (evaluate-javascript-expression " $(1 + 1)\n"
+                                  '()))
+
 (test-end "javascript")