nmodule/js/rc/jasmine/promiseUtils

API Status: Private

Module with utility functions for running async Jasmine specs.

Description:
  • API Status: Private

    Module with utility functions for running async Jasmine specs.

Source:

Methods

(static) addCustomMatchers(specopt)

Description:
  • Adds custom matchers to the Jasmine instance
    (what is bound to this in a beforeEach function, for instance).

Source:
See:
Example
beforeEach(function () {
    promiseUtils.addCustomMatchers(this);
  });
  //or
  beforeEach(promiseUtils.addCustomMatchers);
Parameters:
Name Type Attributes Description
spec <optional>

The current Jasmine spec; if not given,
jasmine.getEnv().currentSpec will be used

(static) doPromise(promise, timeoutMessageopt, timeoutopt) → {Promise}

Description:
  • Runs a promise, using the Jasmine runs/waitsFor functions to ensure its
    completion. This function will verify that the promise is resolved -
    failing the promise will fail the test.

Source:
Example
promiseUtils.doPromise(editor.read()
    .then(function (result) {
      expect(result).toBe('my expected read value');
    }, function (err) {
      //not necessary to assert anything here - failing the promise will
      //automatically fail the test.
      //if you want to verify fail behavior, use toBeRejected() or
      //toBeRejectedWith() custom matchers.
    }));
Parameters:
Name Type Attributes Default Description
promise Promise
timeoutMessage String <optional>

optional message to present if timeout occurs

timeout Number <optional>
5000

optional timeout in milliseconds

Returns:

promise that is verified to have been resolved
(if the input promise rejects, the test will fail).

Type
Promise

(static) enforcePromiseAPI()

Description:
  • Ensure that the following contract is followed when using doPromise and
    executePromise:

    • You may not call doPromise() or executePromise() more than once
      during a single call to it(), beforeEach(), or afterEach().
    • You may not call .then() on the result of doPromise().
    • You may not nest one call to doPromise() inside of another.

    This ensures that doPromise() works correctly with the runs/waits async
    API presented by Jasmine 1.3.

Source:

(static) executePromise(promise, timeoutMessageopt, timeoutopt) → {Promise}

Description:
  • Runs a promise, using the Jasmine runs/waitsFor functions to ensure its
    completion. This method only cares that the promise is settled (resolved
    or rejected) - if you wish to assert that the promise resolves
    successfully, use doPromise instead.

Source:
Parameters:
Name Type Attributes Default Description
promise Promise
timeoutMessage String <optional>

optional message to present if timeout occurs

timeout Number <optional>
5000

optional timeout in milliseconds

Returns:

promise that may be resolved or rejected

Type
Promise

(static) noConflict()

Description:
  • By default, promiseUtils augments Jasmine block execution to support
    returning promises from blocks and validating manual calls to
    doPromise, executePromise, and promise matchers.

    Call this to restore original Jasmine block execution. There will not
    typically be a reason to call this in practice, but it is provided just in
    case.

Source:

(static) waitForCalled(func, timesopt, timeoutopt) → {Promise}

Description:
  • Return a promise that resolves after the given Jasmine spy has been called
    the specified number of times.

Source:
Parameters:
Name Type Attributes Default Description
func function

a Jasmine spy

times Number <optional>
1

the number of times to expect the function to
have been called. Defaults to 1.

timeout Number <optional>
5000

the time, in milliseconds, after which to give
up waiting and reject.

Returns:
Type
Promise

(static) waitForReturnedPromises()

Description:
  • Alters the default behavior of it(). If a Promise is returned from an
    it() call, Jasmine will wait for that promise to resolve (up to the
    default timeout) before completing the spec.

Source:
Example
promiseUtils.waitForReturnedPromises();

it('waits for a returned promise to resolve', function () {
  return promiseUtils.waitInterval(1000)
    .then(function () {
      expect('a').toBe('b'); //correctly fails, because Jasmine waited
    });
});

(static) waitForTrue(func, msgopt, timeoutopt) → {Promise}

Description:
  • Run a promise, using setTimeout to check for the truthiness of the
    condition function. This will not use waitsFor/runs and as such can be
    used in conjunction with doPromise/executePromise.

Source:
Parameters:
Name Type Attributes Description
func function

resolve the promise when this function returns a
truthy value, or a promise that resolves to a truthy value

msg String <optional>

the message to reject with upon timeout

timeout Number <optional>

the time, in milliseconds, after which to give
up waiting and reject

Returns:
Type
Promise

(static) waitInterval(intervalopt) → {Promise}

Description:
  • Return a promise that waits a certain number of milliseconds before
    resolving. This will not use waitsFor/runs and as such can be
    used in conjunction with doPromise/executePromise.

Source:
Parameters:
Name Type Attributes Default Description
interval Number <optional>
0
Returns:
Type
Promise