diff options
Diffstat (limited to 'test/fn.fnl')
| -rw-r--r-- | test/fn.fnl | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/test/fn.fnl b/test/fn.fnl new file mode 100644 index 0000000..b9876ca --- /dev/null +++ b/test/fn.fnl @@ -0,0 +1,49 @@ +(import-macros {: assert-eq : assert-ne : assert* : testing : deftest} :test.test) +(import-macros {: meta} :macros.core) +(local {: eq} (require :core)) ;; required for testing + +(import-macros {: fn* : fn&} :macros.fn) + +(deftest fn* + (testing fn*-meta + (fn* f + "docstring" + [x] x) + (assert-eq (meta f) {:fnl/docstring "docstring" + :fnl/arglist ["x"]}) + + (fn* f + "docstring" + ([x] x)) + (assert-eq (meta f) {:fnl/docstring "docstring" + :fnl/arglist ["x"]}) + + (fn* f + "docstring" + ([x] x) + ([x y] (+ x y))) + (assert-eq (meta f) {:fnl/docstring "docstring" + :fnl/arglist ["\n [x]" + "\n [x y]"]}) + + (fn* f + "docstring" + ([x] x) + ([x y] (+ x y)) + ([x y & z] (+ x y))) + (assert-eq (meta f) {:fnl/docstring "docstring" + :fnl/arglist ["\n [x]" + "\n [x y]" + "\n [x y & z]"]}))) + +(deftest fn& + (testing fn&-meta + (fn& f "docstring" [x] x) + (assert-eq (meta f) {:fnl/docstring "docstring" + ;; :fnl/arglist ["x"] ;; TODO: why this works only in REPL? + }) + + (fn& f "docstring" [...] [...]) + (assert-eq (meta f) {:fnl/docstring "docstring" + ;; :fnl/arglist ["..."] ;; TODO: same as above + }))) |