UNPKG

@exadel/esl

Version:

Exadel Smart Library (ESL) is the lightweight custom elements library that provide a set of super-flexible components

78 lines (77 loc) 3.39 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { createDeferred } from '../../promise/defered'; import { promisifyTimeout } from '../../promise/timeout'; describe('async/promise/deferred', () => { test('Resolve of Deferred produces resolved promise', () => { const def$$ = createDeferred(); def$$.resolve(1); return def$$.promise.then((n) => expect(n).toBe(1)); }); test('Rejected Deferred produces rejected promise', () => { const def$$ = createDeferred(); def$$.reject(1); return def$$.promise.catch((n) => expect(n).toBe(1)); }); test('Deferred resolves initially requested promise when resolved', () => { const def$$ = createDeferred(); def$$.promise; def$$.resolve(1); return def$$.promise.then((n) => expect(n).toBe(1)); }); test('Deferred rejects initially requested promise when rejected', () => { const def$$ = createDeferred(); def$$.promise; def$$.reject(1); return def$$.promise.catch((n) => expect(n).toBe(1)); }); describe('Rejected Deferred doesn`t lead to uncaught in promise', () => { const throwFn = jest.fn((reason) => { throw reason; }); beforeAll(() => { process.env.LISTENING_TO_UNHANDLED_REJECTION = String(true); process.on('unhandledRejection', throwFn); }); afterAll(() => { process.off('unhandledRejection', throwFn); }); test('Deferred doesn`t lead to uncaught', () => __awaiter(void 0, void 0, void 0, function* () { const def$$ = createDeferred(); def$$.reject(1); yield promisifyTimeout(0); expect(throwFn).not.toBeCalled(); })); }); describe('Resolved/rejected Deferred is finalized', () => { test('Resolved Deferred can not be re-resolved', () => { const def$$ = createDeferred(); def$$.resolve(1); def$$.resolve(2); expect(def$$.promise).resolves.toBe(1); }); test('Resolved Deferred can not be rejected', () => { const def$$ = createDeferred(); def$$.resolve(1); def$$.reject(); expect(def$$.promise).resolves.toBe(1); }); test('Rejected Deferred can not be re-resolved', () => { const def$$ = createDeferred(); def$$.reject(1); def$$.reject(2); expect(def$$.promise).rejects.toBe(1); }); test('Rejected Deferred can not be rejected', () => { const def$$ = createDeferred(); def$$.reject(1); def$$.resolve(2); expect(def$$.promise).rejects.toBe(1); }); }); });