Home Reference Source

application/__tests__/services/assignment-service-test.js

  1. jest.unmock('./../../services/base-service');
  2. jest.unmock('./../../services/error-service');
  3. jest.unmock('./../../services/assignment-service');
  4. jest.unmock('./../../alt.js');
  5.  
  6. import React from 'react';
  7. import ReactDOM from 'react-dom';
  8. import TestUtils from 'react-addons-test-utils';
  9. import Immutable from 'immutable';
  10. import sinon from 'sinon';
  11. import AltTestingUtils from 'alt-utils/lib/AltTestingUtils';
  12. import alt from './../../alt';
  13.  
  14. import {AssignmentService, AssignmentsStore} from './../../services/assignment-service';
  15. import fetch from './../../util/mock-fetch';
  16.  
  17. describe('Assignment service', () => {
  18. beforeEach(() => {
  19. jasmine.clock().uninstall();
  20.  
  21. sinon.stub(window, 'fetch').returns(fetch({
  22. 'items': [
  23. {
  24. id: 1,
  25. uuid: '123-456',
  26. attachment: {}
  27. },
  28. {
  29. id: 2,
  30. uuid: '987-654',
  31. attachment: {}
  32. }
  33. ],
  34. 'first': 1,
  35. 'before': 1,
  36. 'current': 1,
  37. 'last': 1,
  38. 'next': 1,
  39. 'total_pages': 1,
  40. 'total_items': 1,
  41. 'limit': 1
  42. }));
  43. });
  44.  
  45. afterEach(() => {
  46. window.fetch.restore();
  47. });
  48.  
  49. it('calls fetch data', (done) => {
  50. AssignmentService.fetch();
  51. setTimeout(() => {
  52. expect(window.fetch.called).toEqual(true);
  53. expect(window.fetch.getCalls()[0].args[0]).toEqual('/v3/assignment');
  54. done();
  55. }, 100);
  56. });
  57. it('updates stores', (done) => {
  58. AssignmentService.fetch();
  59. setTimeout(() => {
  60. expect(AssignmentsStore.state.assignments.size).toEqual(2);
  61. done();
  62. }, 100);
  63. });
  64.  
  65. });