Retries a test until it eventually works.
eventually(callback(next()), [timeout], [interval]) -> Promise
callback
is a function. If it's async, it should either consume the next()
parameter, or return a promise.
If it doesn't work within timeout
milliseconds, it's considered a failure.
If a test fails and timeout
has not elapsed yet, it will wait interval
milliseconds and try again.
Returns a promise, which Mocha will happily consume.
var eventually = require('mocha-eventually')
it('eventually works', function () {
return eventually(function () {
assert(Math.random() > 0.9)
}, 2000)
})
var eventually = require('mocha-eventually')
var myAsyncAction // function that accepts callback
it('eventually works for asynchronous action', function () {
return eventually(function (next) {
myAsyncAction(function(err, result) {
assert(err === null)
next()
})
}, 2000)
})
var eventually = require('mocha-eventually')
var myPromised // function that returns promise
it('eventually works for asynchronous action', function () {
return eventually(function () {
return myAsyncAction("someparam")
}, 2000)
})
This extension only works in Node.js environment and can not be used when running Mocha in a browser.
mocha-eventually © 2015+, Rico Sta. Cruz. Released under the MIT License.
Authored and maintained by Rico Sta. Cruz with help from contributors (list).
ricostacruz.com · GitHub @rstacruz · Twitter @rstacruz