waitsfor
Version:
Wait for truth of a condition using promises
32 lines (27 loc) • 2.83 kB
JavaScript
// these run in node and phantom
;
if (typeof require !== 'undefined') {
var waitsFor = require('../');
}
describe('waitsFor', function () {
it('resolves when condition is true', function (done) {
var returnValue = false;
var promise = waitsFor.waitsFor(function () {
return returnValue;
}).then(function () {
return done();
});
expect(promise.isFulfilled()).toBe(false);
returnValue = true;
});
it('times out', function (done) {
var returnValue = false;
waitsFor.waitsFor(function () {
return returnValue;
}, { timeout: 100 }).fail(function (err) {
expect(err.name).toBe('Error');
return done();
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInVuaXQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLElBQUksT0FBTyxPQUFPLEtBQUssV0FBVyxFQUFFO0FBQ2xDLE1BQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztDQUMvQjs7QUFFRCxRQUFRLENBQUMsVUFBVSxFQUFFLFlBQU07O0FBRXpCLElBQUUsQ0FBQyxpQ0FBaUMsRUFBRSxVQUFVLElBQUksRUFBRTtBQUNwRCxRQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7QUFDeEIsUUFBSSxPQUFPLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFNO0FBQ3BDLGFBQU8sV0FBVyxDQUFDO0tBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBTTtBQUNaLGFBQU8sSUFBSSxFQUFFLENBQUM7S0FDZixDQUFDLENBQUM7QUFDSCxVQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzFDLGVBQVcsR0FBRyxJQUFJLENBQUM7R0FDcEIsQ0FBQyxDQUFDOztBQUVILElBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBQyxJQUFJLEVBQUs7QUFDeEIsUUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO0FBQ3hCLFlBQVEsQ0FBQyxRQUFRLENBQUMsWUFBTTtBQUN0QixhQUFPLFdBQVcsQ0FBQztLQUNwQixFQUFFLEVBQUMsT0FBTyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRyxFQUFLO0FBQy9CLFlBQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQy9CLGFBQU8sSUFBSSxFQUFFLENBQUM7S0FDZixDQUFDLENBQUM7R0FDSixDQUFDLENBQUM7Q0FDSixDQUFDLENBQUMiLCJmaWxlIjoidW5pdC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRoZXNlIHJ1biBpbiBub2RlIGFuZCBwaGFudG9tXG5cbmlmICh0eXBlb2YgcmVxdWlyZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgdmFyIHdhaXRzRm9yID0gcmVxdWlyZSgnLi4vJyk7XG59XG5cbmRlc2NyaWJlKCd3YWl0c0ZvcicsICgpID0+IHtcblxuICBpdCgncmVzb2x2ZXMgd2hlbiBjb25kaXRpb24gaXMgdHJ1ZScsIGZ1bmN0aW9uIChkb25lKSB7XG4gICAgdmFyIHJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgdmFyIHByb21pc2UgPSB3YWl0c0Zvci53YWl0c0ZvcigoKSA9PiB7XG4gICAgICByZXR1cm4gcmV0dXJuVmFsdWU7XG4gICAgfSkudGhlbigoKSA9PiB7XG4gICAgICByZXR1cm4gZG9uZSgpO1xuICAgIH0pO1xuICAgIGV4cGVjdChwcm9taXNlLmlzRnVsZmlsbGVkKCkpLnRvQmUoZmFsc2UpO1xuICAgIHJldHVyblZhbHVlID0gdHJ1ZTtcbiAgfSk7XG5cbiAgaXQoJ3RpbWVzIG91dCcsIChkb25lKSA9PiB7XG4gICAgdmFyIHJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgd2FpdHNGb3Iud2FpdHNGb3IoKCkgPT4ge1xuICAgICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICAgIH0sIHt0aW1lb3V0OiAxMDB9KS5mYWlsKChlcnIpID0+IHtcbiAgICAgIGV4cGVjdChlcnIubmFtZSkudG9CZSgnRXJyb3InKTtcbiAgICAgIHJldHVybiBkb25lKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7Il19