changeView.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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. expect(TimeGridRenderUtils.isStructureValid()).toBe(true);
  42. currentCalendar.changeView('basicWeek');
  43. break;
  44. case 3:
  45. expect(view.type).toBe('basicWeek');
  46. checkViewIntegrity();
  47. currentCalendar.changeView('listWeek');
  48. break;
  49. case 4:
  50. expect(view.type).toBe('listWeek');
  51. checkViewIntegrity();
  52. currentCalendar.changeView('month');
  53. break;
  54. case 5:
  55. expect(view.type).toBe('month');
  56. checkViewIntegrity();
  57. done();
  58. break;
  59. }
  60. }
  61. });
  62. function checkViewIntegrity() {
  63. var $el = $('.fc-view');
  64. expect($el).toBeInDOM();
  65. expect($el.children().length).toBeGreaterThan(0);
  66. expect($el.text()).toBeTruthy();
  67. }
  68. });
  69. });
  70. });