blob: ad78ba682de86f8e576dda2d5f947f62d327179d [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
var test = require('prova');
var Deferred = require('../../src/lib/deferred');
test('var deferred = new Deferred() - success', function(assert) {
var deferred = new Deferred();
deferred.promise
.then(success)
.catch(assert.end);
process.nextTick(function() {
deferred.resolve( 'foo');
});
function success(result) {
assert.equal(result, 'foo');
assert.end();
}
});
test('var deferred = new Deferred() - failure', function(assert) {
var deferred = new Deferred();
var err = new Error('Rejecting Deferred');
deferred.promise
.then(assert.end, failure)
.catch(assert.end);
process.nextTick(function() {
deferred.reject(err);
});
function failure(e) {
assert.equal(e, err);
assert.end();
}
});
test('var deferred = new Deferred(callback) - success', function(assert) {
var deferred = new Deferred(callback);
process.nextTick(function() {
deferred.resolve( 'foo');
});
function callback(err, result) {
assert.error(err);
assert.equal(result, 'foo');
assert.end();
}
});
test('var deferred = new Deferred(callback) - error', function(assert) {
var deferred = new Deferred(callback);
var err = new Error('Rejecting Deferred');
process.nextTick(function() {
deferred.reject(err);
});
function callback(e, result) {
assert.equal(e, err);
assert.notOk(result);
assert.end();
}
});