Skip to content

rstacruz/mocha-eventually

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mocha-eventually

Retries a test until it eventually works.

Status

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.

Examples

var eventually = require('mocha-eventually')

it('eventually works', function () {
  return eventually(function () {
    assert(Math.random() > 0.9)
  }, 2000)
})

Async via callback example

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)
})

Browser support

This extension only works in Node.js environment and can not be used when running Mocha in a browser.


Thanks

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

About

Retries a test until it eventually works.

Resources

Stars

Watchers

Forks

Packages

No packages published