jorgenschaefer / emacs-buttercup

Behavior-Driven Emacs Lisp Testing
GNU General Public License v3.0
364 stars 44 forks source link

Don't overwrite pending status with passed status #153

Closed DarwinAwardWinner closed 4 years ago

DarwinAwardWinner commented 4 years ago

Previously, if a pending spec was afftected by an after-all form, Buttercup would evaluate the after-all form after not running the pending test, and the status of the after-all form would be used as the result of the test, marking it as passed instead of pending. The logic in buttercup--update-with-funcall has been updated so that a pending status will never be overwritten by a passed status.

I don't think there's an easy way to add an automated test for this fix, since it is a fix in the core code itself. However, you can manually test this by adding an after-all form in the "Pending Specs" section of docs/writing-tests.md and verifying in the test output that these tests are still marked as pending. (With the old code, they get marked as passed instead.)

Fixes #149.

snogge commented 4 years ago

I already had the fix done when you posted yours, and unless you have objections I think I will merge #156 instead of this PR. It's a less invasive fix with fewer special cases.

The test may be a bit specific, but I'm not sure how I could make it more general.

snogge commented 4 years ago

Another fix for #149 has been merged, closing this PR.