Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

task-test.js 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const { assert } = require('chai');
  2. const sinon = require('sinon');
  3. const Task = require('../src/task');
  4. describe('Task', () => {
  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 emit event on finish a task', async () => {
  12. let finished = false;
  13. let task = new Task(() => 'ok');
  14. task.on('task-finished', () => finished = true);
  15. await task.execute();
  16. assert.equal(true, finished);
  17. });
  18. it('should emit event on error a task', async () => {
  19. let error;
  20. let task = new Task(() => {
  21. throw Error('execution error');
  22. });
  23. task.on('task-failed', (err) => error = err.message);
  24. await task.execute();
  25. assert.equal('execution error', error);
  26. });
  27. it('should emit event on finish a promise task', async () => {
  28. let finished = false;
  29. const promise = () => new Promise((resolve) => resolve('ok'));
  30. let task = new Task(promise);
  31. task.on('task-finished', () => finished = true);
  32. await task.execute();
  33. assert.equal(true, finished);
  34. });
  35. it('should emit event on error a promise task', async () => {
  36. let failed = false;
  37. const promise = () => new Promise((resolve, reject) => reject('errou'));
  38. const task = new Task(promise);
  39. task.on('task-failed', (error) => failed = error);
  40. await task.execute();
  41. assert.equal('errou', failed);
  42. });
  43. });