/* TODO: - quick test for when button is clicked SEE ALSO: - other range intersection tests handled by next-button */ import { CalendarWrapper } from '../lib/wrappers/CalendarWrapper.js' describe('prev button', () => { pushOptions({ initialView: 'timeGridWeek', initialDate: '2017-06-08', }) describe('when there is no specified validRange', () => { it('is enabled', () => { expectEnabled(initCalendar(), true) }) }) describe('when prev date range is completely before validRange', () => { pushOptions({ validRange: { start: '2018-06-12' }, dateIncrement: { years: 1 }, // prev range is 2016-06-05 - 2016-06-12 }) it('is disabled', () => { expectEnabled(initCalendar(), false) }) }) describe('when month view', () => { pushOptions({ initialView: 'dayGridMonth', initialDate: '2017-03-01', validRange: { start: '2017-02-07' }, dateIncrement: { years: 1 }, // prev range is 2016-06-05 - 2016-06-12 }) it('when prev date range is partially before validRange', () => { expectEnabled(initCalendar(), false) }) }) describe('when day before current day is a hidden day', () => { pushOptions({ initialDate: '2017-03-27', initialView: 'dayGridDay', weekends: false, dateIncrement: { years: 1 }, // prev range is 2016-06-05 - 2016-06-12 }) it('is enabled', () => { expectEnabled(initCalendar(), true) }) }) describe('when initialDate is constrained backward to validRange and prev week is valid', () => { pushOptions({ initialDate: '2017-07-17', initialView: 'timeGridWeek', validRange: { start: '2017-03-20', end: '2017-03-30' }, }) it('is enabled', () => { expectEnabled(initCalendar(), true) }) }) function expectEnabled(calendar, bool) { let toolbarWrapper = new CalendarWrapper(calendar).toolbar expect(toolbarWrapper.getButtonEnabled('prev')).toBe(bool) } })