[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/buttercup 764d6aa 020/340: Tests for the it macro and butt
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/buttercup 764d6aa 020/340: Tests for the it macro and buttercup-it function. |
Date: |
Thu, 16 Dec 2021 14:58:57 -0500 (EST) |
branch: elpa/buttercup
commit 764d6aab96ea3a267d34e36360a4827db157225a
Author: Jorgen Schaefer <contact@jorgenschaefer.de>
Commit: Jorgen Schaefer <contact@jorgenschaefer.de>
Tests for the it macro and buttercup-it function.
---
buttercup-test.el | 25 +++++++++++++++++++++++++
buttercup.el | 6 +++---
2 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/buttercup-test.el b/buttercup-test.el
index d6e43b2..933c770 100644
--- a/buttercup-test.el
+++ b/buttercup-test.el
@@ -186,3 +186,28 @@
(expect (buttercup-suite-description child-suite)
:to-equal
desc2)))))
+
+(describe "The `it' macro"
+ (it "should expand to a call to the `buttercup-it' function"
+ (expect (macroexpand '(it "description" body))
+ :to-equal
+ '(buttercup-it "description" (lambda () body)))))
+
+(describe "The `buttercup-it' function"
+ (it "should fail if not called from within a describe form"
+ (expect (lambda ()
+ (let ((buttercup--current-suite nil))
+ (buttercup-it "" (lambda ()))))
+ :to-throw))
+
+ (it "should add a spec to the current suite"
+ (let ((buttercup--current-suite (make-buttercup-suite)))
+ (buttercup-it "the test spec"
+ (lambda () 23))
+ (let ((spec (car (buttercup-suite-children buttercup--current-suite))))
+ (expect (buttercup-spec-description spec)
+ :to-equal
+ "the test spec")
+ (expect (funcall (buttercup-spec-function spec))
+ :to-equal
+ 23)))))
diff --git a/buttercup.el b/buttercup.el
index ec852e6..6b73a3d 100644
--- a/buttercup.el
+++ b/buttercup.el
@@ -276,11 +276,11 @@ form.")
(defmacro it (description &rest body)
"Define a spec."
(declare (indent 1))
- `(buttercup--it-internal ,description (lambda () ,@body)))
+ `(buttercup-it ,description (lambda () ,@body)))
-(defun buttercup--it-internal (description body-function)
+(defun buttercup-it (description body-function)
"Function to handle an `it' form."
- (when (not description)
+ (when (not buttercup--current-suite)
(error "`it' has to be called from within a `describe' form."))
(buttercup-suite-add-child buttercup--current-suite
(make-buttercup-spec
- [nongnu] branch elpa/buttercup created (now 108d229), ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup e10955c 001/340: Initial commit., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 67df4b1 012/340: Remove Cask file. It's unused., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 548df0d 030/340: Spies: Other tracking properties., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup b1bcedc 032/340: Add docstrings where missing., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 821cfa6 005/340: Comment separating built-in matchers from the rest., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 8e30284 024/340: Disabled suites, pending specs., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 89c00aa 009/340: Makefile: Make the emacs command configurable, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 7e20ff1 021/340: ROADMAP.md: New file., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 764d6aa 020/340: Tests for the it macro and buttercup-it function.,
ELPA Syncer <=
- [nongnu] elpa/buttercup d5572a6 034/340: Refactoring of the cleanup code., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup b75b3e9 036/340: Add a discovery test runner., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 7eecb96 038/340: Remove commented-out backtrace code from buttercup.el., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 3483449 045/340: Typo fix., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 84002e9 054/340: Add parent relations to specs and suites., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup a7d9813 010/340: Add cl-defstruct compatibility alias., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup fd70ccf 002/340: Specs are now structs., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup ba40ff8 027/340: Spies: :and-return-value, ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup 20b87dd 031/340: Refactoring of spy-on to be more concise and DRY., ELPA Syncer, 2021/12/16
- [nongnu] elpa/buttercup bb31c85 043/340: Edebugable., ELPA Syncer, 2021/12/16