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

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

[nongnu] elpa/buttercup 9b30c75 252/340: Make buttercup-x?it and butterc


From: ELPA Syncer
Subject: [nongnu] elpa/buttercup 9b30c75 252/340: Make buttercup-x?it and buttercup-suite-add-child return spec
Date: Thu, 16 Dec 2021 14:59:44 -0500 (EST)

branch: elpa/buttercup
commit 9b30c755e43df7045c36e596ce31e0af597b594e
Author: Ola Nilsson <ola.nilsson@gmail.com>
Commit: Ola Nilsson <ola.nilsson@gmail.com>

    Make buttercup-x?it and buttercup-suite-add-child return spec
    
    Returning the buttercup-spec object from these function makes it
    possible to write simpler code elsewhere, especially tests.
---
 buttercup.el            | 22 +++++++++++++---------
 tests/test-buttercup.el | 19 +++++++++++--------
 2 files changed, 24 insertions(+), 17 deletions(-)

diff --git a/buttercup.el b/buttercup.el
index e28cb01..14c8b35 100644
--- a/buttercup.el
+++ b/buttercup.el
@@ -691,11 +691,13 @@ See also `buttercup-define-matcher'."
   function)
 
 (defun buttercup-suite-add-child (parent child)
-  "Add a CHILD suite to a PARENT suite."
+  "Add a CHILD suite to a PARENT suite.
+Return CHILD."
   (setf (buttercup-suite-children parent)
         (append (buttercup-suite-children parent)
                 (list child)))
-  (setf (buttercup-suite-or-spec-parent child) parent))
+  (setf (buttercup-suite-or-spec-parent child) parent)
+  child)
 
 (defun buttercup-suite-or-spec-parents (suite-or-spec)
   "Return a list of parents of SUITE-OR-SPEC."
@@ -868,7 +870,8 @@ most probably including one or more calls to `expect'."
   "Function to handle an `it' form.
 
 DESCRIPTION has the same meaning as in `it'. BODY-FUNCTION is a
-function containing the body instructions passed to `it'."
+function containing the body instructions passed to `it'. Return
+the created spec object."
   (declare (indent 1))
   (when (not buttercup--current-suite)
     (error "`it' has to be called from within a `describe' form"))
@@ -1006,17 +1009,18 @@ DESCRIPTION is a string. BODY is ignored."
   "Like `buttercup-it', but mark the spec as disabled.
 A disabled spec is not run.
 
-DESCRIPTION has the same meaning as in `xit'. FUNCTION is ignored."
+DESCRIPTION has the same meaning as in `xit'. FUNCTION is
+ignored. Return the created spec object."
   (declare (indent 1))
   (ignore function)
-  (buttercup-it description (lambda ()
-                              (signal 'buttercup-pending "PENDING")))
-  (let ((spec (car (last (buttercup-suite-children
-                          buttercup--current-suite)))))
+  (let ((spec (buttercup-it description
+                (lambda ()
+                  (signal 'buttercup-pending "PENDING")))))
     (setf (buttercup-spec-status spec)
           'pending
           (buttercup-spec-failure-description spec)
-          "")))
+          "")
+    spec))
 
 ;;;;;;;;;
 ;;; Spies
diff --git a/tests/test-buttercup.el b/tests/test-buttercup.el
index a73f2ee..aa3cd95 100644
--- a/tests/test-buttercup.el
+++ b/tests/test-buttercup.el
@@ -179,24 +179,26 @@
 ;;; Suite and spec data structures
 
 (describe "The `buttercup-suite-add-child' function"
-  (it "should add an element at the end of the list"
+  (it "should add an element at the end of the list and return it"
     (let* ((specs (list (make-buttercup-spec)
                         (make-buttercup-spec)
                         (make-buttercup-spec)))
            (suite (make-buttercup-suite :children specs))
            (spec (make-buttercup-spec)))
 
-      (buttercup-suite-add-child suite spec)
+      (expect (buttercup-suite-add-child suite spec)
+              :to-be spec)
 
       (expect (buttercup-suite-children suite)
               :to-equal
               (append specs (list spec)))))
 
-  (it "should add an element even if the list is empty"
+  (it "should add an element even if the list is empty and return it"
     (let ((suite (make-buttercup-suite :children nil))
           (spec (make-buttercup-spec)))
 
-      (buttercup-suite-add-child suite spec)
+      (expect (buttercup-suite-add-child suite spec)
+              :to-be spec)
 
       (expect (buttercup-suite-children suite)
               :to-equal
@@ -444,11 +446,12 @@
               (buttercup-it "" (lambda ())))
             :to-throw))
 
-  (it "should add a spec to the current suite"
+  (it "should add a spec to the current suite and return the spec"
     (let ((buttercup--current-suite (make-buttercup-suite)))
-      (buttercup-it "the test spec"
-        (lambda () 23))
-      (let ((spec (car (buttercup-suite-children buttercup--current-suite))))
+      (let* ((created (buttercup-it "the test spec"
+                        (lambda () 23)))
+             (spec (car (buttercup-suite-children buttercup--current-suite))))
+        (expect created :to-be spec)
         (expect (buttercup-spec-description spec)
                 :to-equal
                 "the test spec")



reply via email to

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