@novo-learning/novo-sdk
Version:
SDK for the Novolanguage Speech Analysis API
30 lines (25 loc) • 1.09 kB
text/typescript
import { Deferred } from '../../../src/clients/speech-api/utils/deferred.promise';
import { promiseTimeout } from '../../../src/clients/speech-api/utils/timeout.promise';
jest.spyOn(global, 'setTimeout');
describe('Time-out promise', () => {
it('should resolve true when the promise resolves within time', () => {
const deferred = new Deferred();
const toPromise = promiseTimeout(1000, deferred.promise);
deferred.resolve(true);
return expect(toPromise).resolves.toBeTruthy();
});
it('should resolve false when the promise rejects within time', () => {
const deferred = new Deferred();
const toPromise = promiseTimeout(1000, deferred.promise);
deferred.reject(true);
return expect(toPromise).resolves.toBeFalsy();
});
it('should resolve false when the promise does not resolve or reject within time', () => {
jest.useFakeTimers();
const deferred = new Deferred();
const toPromise = promiseTimeout(1000, deferred.promise);
jest.runAllTimers();
jest.useRealTimers();
return expect(toPromise).resolves.toBeFalsy();
});
});