/// /// import tsd = require('../typescript_deferred'); import assert = require('assert'); suite('Extra promise utils', function() { this.timeout(100); suite('typescript-deferred.Promise::always', function() { test('callback is invoked upon resolution', function(done) { var deferred = tsd.create(); deferred.promise.always((): string => (done(), 'foo')); deferred.resolve(10); }); test('callback is invoked upon rejection', function(done) { var deferred = tsd.create(); deferred.promise.always((): void => done()); deferred.reject(); }); }); suite('Promise::otherwise', function() { test('callback is invoked upon rejection', function(done) { var deferred = tsd.create(); deferred.promise.otherwise(() => done()); deferred.reject(); }); test('callback is not invoked upon resolution', function(done) { var invoked = false, deferred = tsd.create(); deferred.promise.otherwise(function(): tsd.PromiseInterface { invoked = true; done(new Error('callback was invoked!')); return tsd.when(10); }); setTimeout(() => invoked ? undefined : done(), 50); deferred.resolve(10); }); }); });