Skip to content
This repository has been archived by the owner on May 18, 2021. It is now read-only.

Commit

Permalink
test(PromisePrototype.timeout): add tests for timeout()
Browse files Browse the repository at this point in the history
  • Loading branch information
urish committed Apr 23, 2014
1 parent 4f9ab80 commit 3395b7a
Showing 1 changed file with 48 additions and 1 deletion.
49 changes: 48 additions & 1 deletion tests.js
Expand Up @@ -139,6 +139,54 @@ describe('module urish.promisesToolkit', function () {
expect($q.when('harzit').assignTo($rootScope, 'flower')).toBePromise();
});
});

describe('#timeout', function () {
beforeEach(function () {
jasmine.clock().install();
});

it('should resolve if the original promise was resolved before the timeout expired', function () {
var deferred = $q.defer();
var timeoutPromise = deferred.promise.timeout(500);
deferred.resolve('asfeset');
expect(timeoutPromise).toBeResolvedWith('asfeset');
});

it('should reject if the original promise was rejected before the timeout expired', function () {
var deferred = $q.defer();
var timeoutPromise = deferred.promise.timeout(500);
deferred.reject('hardal');
expect(timeoutPromise).toBeRejectedWith('hardal');
});

it('should reject if the timeout expired before the promise was fulfilled', function () {
var deferred = $q.defer();
var timeoutPromise = deferred.promise.timeout(500);
jasmine.clock().tick(1000);
deferred.resolve('vered');
expect(timeoutPromise).toBeRejectedWith(new Error('Timed out after 500 ms'));
});

it('should set the rejection reason to the string given in the second parameter of timeout() wrapped as an Error object', function () {
var deferred = $q.defer();
var timeoutPromise = deferred.promise.timeout(500, 'Request timed out');
jasmine.clock().tick(1000);
deferred.reject('vered');
expect(timeoutPromise).toBeRejectedWith(new Error('Request timed out'));
});

it('should set the rejection reason to the non-string value given in the second parameter of timeout()', function () {
var deferred = $q.defer();
var timeoutPromise = deferred.promise.timeout(500, {
reason: 'TIMEOUT'
});
jasmine.clock().tick(1000);
deferred.resolve('vered');
expect(timeoutPromise).toBeRejectedWith({
reason: 'TIMEOUT'
});
});
});
});

describe('extended $q service', function () {
Expand Down Expand Up @@ -172,7 +220,6 @@ describe('module urish.promisesToolkit', function () {
});
});


describe('#when', function () {
it('should return a wrapped promise', function () {
expect($q.when('kalanit').$$promise).toBeDefined();
Expand Down

0 comments on commit 3395b7a

Please sign in to comment.