changeView.js 2.3 KB

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