025849b27ee8112f4183fbd5597b4c55e79b27d481dfde960756a46c6ca68a28d8cc2e23043080588cd88682242a3cce4159ab9e5b6830ac8adb673c7e436c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. 'use strict';
  2. require('es6-shim');
  3. var chai = require('chai');
  4. var chaiAsPromised = require('chai-as-promised');
  5. var reInterval = require('../index.js');
  6. describe('reInterval', function() {
  7. it('should work as an usual setInterval', function () {
  8. return new Promise(function (resolve, reject) {
  9. var startTime = new Date().getTime();
  10. reInterval(function () {
  11. if (Math.abs(new Date().getTime() - startTime - 1000) <= 10)
  12. resolve();
  13. else
  14. reject(new Error('Took too much (or not enough) time'));
  15. }, 1000);
  16. });
  17. });
  18. it('should be able to clear an Interval', function () {
  19. return new Promise(function (resolve, reject) {
  20. var startTime = new Date().getTime();
  21. var interval = reInterval(function () {
  22. reject(new Error('Interval not cleared'));
  23. }, 200);
  24. setTimeout(interval.clear, 100);
  25. setTimeout(resolve, 300);
  26. });
  27. });
  28. it('should be able to reschedule an Interval', function () {
  29. return new Promise(function (resolve, reject) {
  30. var startTime = new Date().getTime();
  31. var interval = reInterval(function () {
  32. if (Math.abs(new Date().getTime() - startTime - 800) <= 10)
  33. resolve();
  34. else
  35. reject(new Error('Took too much (or not enough) time'));
  36. }, 500);
  37. setTimeout(interval.reschedule, 300, [500])
  38. });
  39. });
  40. });