import { $q } from './PromiseUtils'; import { expect } from 'chai'; import { Mock, IMock, It, Times } from 'typemoq'; describe('PromiseUtils', () => { describe('$q', () => { describe('when', () => { it('can resolve with a value', () => expect($q.when('test')).to.eventually.deep.equal('test') ); }); describe('reject', () => { it('can reject a promise with a reason', () => expect($q.reject('error')).to.be.rejectedWith('error') ); it('can reject a promise without a reason', () => expect($q.reject()).to.have.been.rejected ); }); describe('all', () => { it('can resolve multiple promises into one promise', () => { const promises = { a: Promise.resolve('test'), b: Promise.resolve(7) }; return expect($q.all(promises)).to.eventually.deep.equal({ a: 'test', b: 7 }); }); it('can handle promise rejections', () => { const promises = { a: Promise.resolve('test'), b: Promise.reject('error') }; return expect($q.all(promises)).to.be.rejectedWith('error'); }); }); }); });