Files
jasmine/src/core/matchers/async/toBeResolved.js
Steve Gravrock f12f4395f0 Redesigned moudule system
* Top level private APIs (e.g. jasmine.private.whatever) are no longer
  exposed
* jasmineRequire is no longer exposed
* core is self-booting
* Globals are automatically created in browsers. (They can subsequently
  be removed by user code if desired.)
* Globals are *not* automatically created in Node. An installGlobals
  function is exported instead. The jasmine package calls installGlobals
  unless configured not to do so.
* In Node, the same instance is returned each time jasmine-core is
  imported. A reset function is exported. It effectively resets all state
  by discarding the env and creating a new one. This allows mulitple
  sequential runs within the same process to be independent of each
  other, but does not allow multiple concurrent runs. (That probably never
  worked anyway.)

Fixes #2094
2026-02-15 20:16:45 -08:00

43 lines
1.0 KiB
JavaScript

getJasmineRequireObj().toBeResolved = function(j$, private$) {
'use strict';
/**
* Expect a promise to be resolved.
* @function
* @async
* @name async-matchers#toBeResolved
* @since 3.1.0
* @example
* await expectAsync(aPromise).toBeResolved();
* @example
* return expectAsync(aPromise).toBeResolved();
*/
return function toBeResolved(matchersUtil) {
return {
compare: function(actual) {
if (!private$.isPromiseLike(actual)) {
throw new Error(
`Expected toBeResolved to be called on a promise but was on a ${typeof actual}.`
);
}
return actual.then(
function() {
return { pass: true };
},
function(e) {
return {
pass: false,
message:
'Expected a promise to be resolved but it was ' +
'rejected with ' +
matchersUtil.pp(e) +
'.'
};
}
);
}
};
};
};