changeView.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. describe('changeView', function() {
  2. pushOptions({
  3. defaultDate: '2017-06-08',
  4. defaultView: 'month'
  5. });
  6. it('can change views', function() {
  7. initCalendar();
  8. currentCalendar.changeView('agendaWeek');
  9. ViewDateUtils.expectActiveRange('2017-06-04', '2017-06-11');
  10. });
  11. it('can change views and navigate date', function() {
  12. initCalendar();
  13. currentCalendar.changeView('agendaDay', '2017-06-26');
  14. ViewDateUtils.expectActiveRange('2017-06-26', '2017-06-27');
  15. });
  16. it('can change views and change activeRange', function() {
  17. initCalendar();
  18. currentCalendar.changeView('agenda', {
  19. start: '2017-07-04',
  20. end: '2017-07-08'
  21. });
  22. ViewDateUtils.expectActiveRange('2017-07-04', '2017-07-08');
  23. });
  24. describe('when switching away from view, then back', function() {
  25. // serves as a smoke test too
  26. it('correctly renders original view again', function(done) {
  27. var renderCalls = 0;
  28. initCalendar({
  29. defaultView: 'month',
  30. eventAfterAllRender: function(view) {
  31. renderCalls++;
  32. switch (renderCalls) {
  33. case 1:
  34. expect(view.type).toBe('month');
  35. checkViewIntegrity();
  36. currentCalendar.changeView('agendaWeek');
  37. break;
  38. case 2:
  39. expect(view.type).toBe('agendaWeek');
  40. checkViewIntegrity();
  41. currentCalendar.changeView('basicWeek');
  42. break;
  43. case 3:
  44. expect(view.type).toBe('basicWeek');
  45. checkViewIntegrity();
  46. currentCalendar.changeView('listWeek');
  47. break;
  48. case 4:
  49. expect(view.type).toBe('listWeek');
  50. checkViewIntegrity();
  51. currentCalendar.changeView('month');
  52. break;
  53. case 5:
  54. expect(view.type).toBe('month');
  55. checkViewIntegrity();
  56. done();
  57. break;
  58. }
  59. }
  60. });
  61. function checkViewIntegrity() {
  62. var $el = $('.fc-view');
  63. expect($el).toBeInDOM();
  64. expect($el.children().length).toBeGreaterThan(0);
  65. expect($el.text()).toBeTruthy();
  66. }
  67. });
  68. });
  69. });