You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.4 KiB
52 lines
1.4 KiB
'use strict'; |
|
require('es6-shim'); |
|
|
|
var chai = require('chai'); |
|
var chaiAsPromised = require('chai-as-promised'); |
|
var reInterval = require('../index.js'); |
|
|
|
describe('reInterval', function() { |
|
|
|
it('should work as an usual setInterval', function () { |
|
return new Promise(function (resolve, reject) { |
|
var startTime = new Date().getTime(); |
|
|
|
reInterval(function () { |
|
if (Math.abs(new Date().getTime() - startTime - 1000) <= 10) |
|
resolve(); |
|
else |
|
reject(new Error('Took too much (or not enough) time')); |
|
}, 1000); |
|
}); |
|
}); |
|
|
|
it('should be able to clear an Interval', function () { |
|
return new Promise(function (resolve, reject) { |
|
var startTime = new Date().getTime(); |
|
|
|
var interval = reInterval(function () { |
|
reject(new Error('Interval not cleared')); |
|
}, 200); |
|
|
|
setTimeout(interval.clear, 100); |
|
|
|
setTimeout(resolve, 300); |
|
}); |
|
}); |
|
|
|
it('should be able to reschedule an Interval', function () { |
|
return new Promise(function (resolve, reject) { |
|
var startTime = new Date().getTime(); |
|
|
|
var interval = reInterval(function () { |
|
if (Math.abs(new Date().getTime() - startTime - 800) <= 10) |
|
resolve(); |
|
else |
|
reject(new Error('Took too much (or not enough) time')); |
|
}, 500); |
|
|
|
setTimeout(interval.reschedule, 300, [500]) |
|
}); |
|
}); |
|
|
|
});
|
|
|