typed-utilities
Version:
Strongly typed general purpose utilities
26 lines (21 loc) • 1.13 kB
JavaScript
;
var _ = require("..");
test(`Deferred`, async () => {
const deferredNull = _.Deferred.defer();
expect(_.AsyncResult.is.pending(deferredNull.state())).toEqual(true);
(0, _.sleep)(1000).then(() => deferredNull.resolve(null));
expect(_.AsyncResult.is.pending(deferredNull.state())).toEqual(true);
expect(await deferredNull.await()).toEqual(null);
expect(_.AsyncResult.is.resolved(deferredNull.state())).toEqual(true);
expect(() => deferredNull.resolve(null)).toThrow();
expect(() => deferredNull.reject(new Error())).toThrow();
const deferredError = _.Deferred.defer();
expect(_.AsyncResult.is.pending(deferredError.state())).toEqual(true);
(0, _.sleep)(1000).then(() => deferredError.reject(new Error()));
expect(_.AsyncResult.is.pending(deferredError.state())).toEqual(true);
await expect(async () => await deferredError.await()).rejects.toBeTruthy();
expect(_.AsyncResult.is.rejected(deferredError.state())).toEqual(true);
expect(() => deferredError.resolve(null)).toThrow();
expect(() => deferredError.reject(new Error())).toThrow();
});
//# sourceMappingURL=Deferred.test.js.map