mirror of
https://github.com/JasonYANG170/IOTConnect-Web.git
synced 2024-11-23 20:26:28 +00:00
53 lines
1.4 KiB
JavaScript
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])
|
||
|
});
|
||
|
});
|
||
|
|
||
|
});
|