Skip to content

Commit 88f6680

Browse files
committed
Support the done callback in Mocha's BDD interface.
Fixes issue 7277.
1 parent f1d59a0 commit 88f6680

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

Diff for: javascript/node/selenium-webdriver/CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
## v2.43.0-dev
22

3+
* FIXED: 7277: Support `done` callback in Mocha's BDD interface
34
* FIXED: 7156: `Promise#thenFinally` should not suppress original error
45

56
## v2.42.0

Diff for: javascript/node/selenium-webdriver/testing/index.js

+10-4
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
* <li>xit
2828
* </ul>
2929
*
30-
* <p>The provided wrappers leverage the webdriver.promise.ControlFlow to
31-
* simplify writing asynchronous tests:
30+
* <p>The provided wrappers leverage the {@link webdriver.promise.ControlFlow}
31+
* to simplify writing asynchronous tests:
3232
* <pre><code>
3333
* var webdriver = require('selenium-webdriver'),
3434
* portprober = require('selenium-webdriver/net/portprober'),
@@ -80,7 +80,8 @@
8080
* </code></pre>
8181
*/
8282

83-
var flow = require('..').promise.controlFlow();
83+
var promise = require('..').promise;
84+
var flow = promise.controlFlow();
8485

8586

8687
/**
@@ -124,7 +125,12 @@ function wrapped(globalFn) {
124125
var timeout = this.timeout;
125126
this.timeout = undefined; // Do not let tests change the timeout.
126127
try {
127-
flow.execute(fn.bind(this)).then(seal(done), done);
128+
var testFn = fn.bind(this);
129+
flow.execute(function() {
130+
var done = promise.defer();
131+
promise.asap(testFn(done.reject), done.fulfill, done.reject);
132+
return done.promise;
133+
}).then(seal(done), done);
128134
} finally {
129135
this.timeout = timeout;
130136
}

0 commit comments

Comments
 (0)