blob: dfbbc44df3200015db312178c4195886c9593f5f [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 Promise = require('../../src/lib/promise');
var asyncHelper = require('../../src/lib/async-helper');
test('promiseFor with n === 0', function(t) {
var numCalls = 0;
asyncHelper.promiseFor(0, function() {
numCalls++;
return Promise.resolve();
}).then(function() {
t.equal(numCalls, 0, 'made wrong number of calls');
t.end();
}).catch(t.end);
});
test('promiseFor with n > 0', function(t) {
var numCalls = 0;
asyncHelper.promiseFor(5, function() {
numCalls++;
return Promise.resolve();
}).then(function() {
t.equal(numCalls, 5, 'made wrong number of calls');
t.end();
}).catch(t.end);
});
test('promiseWhile with condition always false', function(t) {
asyncHelper.promiseWhile(function() {
return Promise.resolve(false);
}, function neverCall() {
t.fail('should never have been called');
}).then(function() {
t.pass('success!');
t.end();
}).catch(t.end);
});
test('promiseWhile with simple condition', function(t) {
var numCalls = 0;
asyncHelper.promiseWhile(function() {
if (numCalls < 4) {
return Promise.resolve(true);
}
return Promise.resolve(false);
}, function() {
numCalls++;
return Promise.resolve();
}).then(function() {
t.equal(numCalls, 4, 'made correct number of calls');
t.end();
}).catch(t.end);
});