wechat wss demo

test.js 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. });