UNPKG

waitsfor

Version:

Wait for truth of a condition using promises

32 lines (27 loc) 2.83 kB
// these run in node and phantom 'use strict'; 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