diff options
Diffstat (limited to 'tests/javascript.scm')
| -rw-r--r-- | tests/javascript.scm | 36 |
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") |
