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.

scheduled-task-test.js 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. const { assert } = require('chai');
  2. const sinon = require('sinon');
  3. const ScheduledTask = require('../src/scheduled-task');
  4. describe('ScheduledTask', () => {
  5. beforeEach(() => {
  6. this.clock = sinon.useFakeTimers(new Date(2018, 0, 1, 0, 0, 0, 0));
  7. });
  8. afterEach(() => {
  9. this.clock.restore();
  10. });
  11. it('should start a task by default', () => {
  12. let executed = 0;
  13. let scheduledTask = new ScheduledTask('* * * * * *', () => {
  14. executed += 1;
  15. });
  16. this.clock.tick(3000);
  17. assert.equal(3, executed);
  18. scheduledTask.stop();
  19. });
  20. it('should create a task stoped', () => {
  21. let executed = 0;
  22. let scheduledTask = new ScheduledTask('* * * * * *', () => {
  23. executed += 1;
  24. }, { scheduled: false });
  25. this.clock.tick(3000);
  26. assert.equal(0, executed);
  27. scheduledTask.stop();
  28. });
  29. it('should start a task', () => {
  30. let executed = 0;
  31. let scheduledTask = new ScheduledTask('* * * * * *', () => {
  32. executed += 1;
  33. }, { scheduled: false });
  34. this.clock.tick(3000);
  35. assert.equal(0, executed);
  36. scheduledTask.start();
  37. this.clock.tick(3000);
  38. assert.equal(3, executed);
  39. scheduledTask.stop();
  40. });
  41. it('should stop a task', () => {
  42. let executed = 0;
  43. let scheduledTask = new ScheduledTask('* * * * * *', () => {
  44. executed += 1;
  45. }, { scheduled: true });
  46. this.clock.tick(3000);
  47. assert.equal(3, executed);
  48. scheduledTask.stop();
  49. this.clock.tick(3000);
  50. assert.equal(3, executed);
  51. });
  52. it('should emit event every minute', () => {
  53. let executed = 0;
  54. let scheduledTask = new ScheduledTask('0 * * * * *', () => {
  55. executed += 1;
  56. }, { scheduled: true });
  57. this.clock.tick(60000 * 3);
  58. assert.equal(3, executed);
  59. scheduledTask.stop();
  60. });
  61. });