IOTConnect-Web/node_modules/reinterval/tests/test.js
2024-05-09 09:49:52 +08:00

53 lines
1.4 KiB
JavaScript

'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])
});
});
});