summaryrefslogtreecommitdiff
path: root/tests/fn.fnl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/fn.fnl')
-rw-r--r--tests/fn.fnl44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/fn.fnl b/tests/fn.fnl
new file mode 100644
index 0000000..e508541
--- /dev/null
+++ b/tests/fn.fnl
@@ -0,0 +1,44 @@
+(require-macros :tests.test)
+(require-macros :cljlib-macros)
+
+(deftest fn*
+ (testing "fn* meta"
+ (fn* f
+ "docstring"
+ [x] x)
+ (assert-eq (meta f) (when-meta {:fnl/docstring "docstring"
+ :fnl/arglist ["x"]}))
+
+ (fn* f
+ "docstring"
+ ([x] x))
+ (assert-eq (meta f) (when-meta {:fnl/docstring "docstring"
+ :fnl/arglist ["x"]}))
+
+ (fn* f
+ "docstring"
+ ([x] x)
+ ([x y] (+ x y)))
+ (assert-eq (meta f) (when-meta {: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) (when-meta {: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) (when-meta {:fnl/docstring "docstring"
+ :fnl/arglist ["x"]}))
+
+ (fn& f "docstring" [...] [...])
+ (assert-eq (meta f) (when-meta {:fnl/docstring "docstring"
+ :fnl/arglist ["..."]}))))