From 862d296212c2977c0bfb9272cbe29da0a3ad9e58 Mon Sep 17 00:00:00 2001 From: juergba Date: Mon, 18 Feb 2019 15:22:33 +0100 Subject: [PATCH] runner.js: this.skip() in beforeEach hooks --- lib/runner.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/runner.js b/lib/runner.js index fc69a687cf..bcc1f0e13a 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -386,8 +386,13 @@ Runner.prototype.hook = function(name, fn) { } if (err) { if (err instanceof Pending) { - if (name === HOOK_TYPE_BEFORE_EACH || name === HOOK_TYPE_AFTER_EACH) { + if (name === HOOK_TYPE_AFTER_EACH) { self.test.pending = true; + } else if (name === HOOK_TYPE_BEFORE_EACH) { + self.test.pending = true; + if (err.message === 'sync skip') { + return fn(err); + } } else { suite.tests.forEach(function(test) { test.pending = true; @@ -634,7 +639,9 @@ Runner.prototype.runTests = function(suite, fn) { self.emit(constants.EVENT_TEST_PENDING, test); } self.emit(constants.EVENT_TEST_END, test); - return next(); + self.suite = errSuite; + return self.hookUp(HOOK_TYPE_AFTER_EACH, next); + // return next(); } if (err) { return hookErr(err, errSuite, false);