emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/buttercup f44e65d 004/340: Unit tests for define-matcher a


From: ELPA Syncer
Subject: [nongnu] elpa/buttercup f44e65d 004/340: Unit tests for define-matcher and apply-matcher.
Date: Thu, 16 Dec 2021 14:58:54 -0500 (EST)

branch: elpa/buttercup
commit f44e65d6c7e0fa7482308cf69f7b309f68899d83
Author: Jorgen Schaefer <contact@jorgenschaefer.de>
Commit: Jorgen Schaefer <contact@jorgenschaefer.de>

    Unit tests for define-matcher and apply-matcher.
---
 buttercup-test.el | 27 +++++++++++++++++++++------
 buttercup.el      |  3 +++
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/buttercup-test.el b/buttercup-test.el
index 0b123b9..abc6daf 100644
--- a/buttercup-test.el
+++ b/buttercup-test.el
@@ -82,11 +82,26 @@
             'buttercup-failed "Explanation")))
 
 (describe "The `buttercup-define-matcher' macro"
-  (it "should add a buttercup-matcher property"
-    (buttercup-define-matcher :test-matcher (a b)
-      (+ a b))
+  (buttercup-define-matcher :test-matcher (a b)
+    (+ a b))
 
-    (expect (funcall (get :test-matcher 'buttercup-matcher)
-                     1 2)
+  (it "should create a matcher usable by apply-matcher"
+    (expect (buttercup--apply-matcher :test-matcher '(1 2))
             :to-equal
-            3)))
+            3))
+
+  (describe "The `buttercup--apply-matcher'"
+    (it "should work with functions"
+      (expect (buttercup--apply-matcher #'+ '(1 2))
+              :to-equal
+              3))
+
+    (it "should work with matchers"
+      (expect (buttercup--apply-matcher :test-matcher '(1 2))
+              :to-equal
+              3))
+
+    (it "should fail if the matcher is not defined"
+      (expect (lambda ()
+                (buttercup--apply-matcher :not-defined '(1 2)))
+              :to-throw))))
diff --git a/buttercup.el b/buttercup.el
index 4997e6d..baff39e 100644
--- a/buttercup.el
+++ b/buttercup.el
@@ -104,7 +104,10 @@ should describe why a negated matcher failed."
           ,@body)))
 
 (defun buttercup--apply-matcher (matcher args)
+  "Apply MATCHER to ARGS.
 
+MATCHER is either a matcher defined with
+`buttercup-define-matcher', or a function."
   (let ((function (or (get matcher 'buttercup-matcher)
                       matcher)))
     (when (not (functionp function))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]