From 5377a9c3033f36d6adddc3aefcde415d50fdb3c1 Mon Sep 17 00:00:00 2001
From: Simon Egersand <s.egersand@gmail.com>
Date: Sat, 29 Jul 2017 19:46:27 +0200
Subject: [PATCH] Add callback on view mode changes

---
 test/tests.spec.js |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 58 insertions(+), 0 deletions(-)

diff --git a/test/tests.spec.js b/test/tests.spec.js
index 056df79..a59d821 100644
--- a/test/tests.spec.js
+++ b/test/tests.spec.js
@@ -882,6 +882,64 @@
 			expect(onFocusFn).toHaveBeenCalledTimes(1);
 		});
 
+		describe('onViewModeChange', () => {
+			it('when switch from days to time view mode', () => {
+				const component = utils.createDatetime({ onViewModeChange: (viewMode) => {
+					expect(viewMode).toEqual('time');
+				}});
+				expect(utils.isDayView(component)).toBeTruthy();
+				utils.clickOnElement(component.find('.rdtTimeToggle'));
+				expect(utils.isTimeView(component)).toBeTruthy();
+			});
+
+			it('when switch from time to days view mode', () => {
+				const component = utils.createDatetime({ viewMode: 'time', onViewModeChange: (viewMode) => {
+					expect(viewMode).toEqual('days');
+				}});
+				expect(utils.isTimeView(component)).toBeTruthy();
+				utils.clickOnElement(component.find('.rdtSwitch'));
+				expect(utils.isDayView(component)).toBeTruthy();
+			});
+
+			it('when switch from days to months view mode', () => {
+				const component = utils.createDatetime({ onViewModeChange: (viewMode) => {
+					expect(viewMode).toEqual('months');
+				}});
+				expect(utils.isDayView(component)).toBeTruthy();
+				utils.clickOnElement(component.find('.rdtSwitch'));
+				expect(utils.isMonthView(component)).toBeTruthy();
+			});
+
+			it('when switch from months to years view mode', () => {
+				const component = utils.createDatetime({ viewMode: 'months', onViewModeChange: (viewMode) => {
+					expect(viewMode).toEqual('years');
+				}});
+				expect(utils.isMonthView(component)).toBeTruthy();
+				utils.clickOnElement(component.find('.rdtSwitch'));
+				expect(utils.isYearView(component)).toBeTruthy();
+			});
+
+			it('only when switch from years to months view mode', () => {
+				const component = utils.createDatetime({ viewMode: 'years', onViewModeChange: (viewMode) => {
+					expect(viewMode).toEqual('months');
+				}});
+				expect(utils.isYearView(component)).toBeTruthy();
+				utils.clickOnElement(component.find('.rdtSwitch'));
+				expect(utils.isYearView(component)).toBeTruthy();
+				utils.clickNthYear(component, 2);
+				expect(utils.isMonthView(component)).toBeTruthy();
+			});
+
+			it('when switch from months to days view mode', () => {
+				const component = utils.createDatetime({ viewMode: 'months', onViewModeChange: (viewMode) => {
+					expect(viewMode).toEqual('days');
+				}});
+				expect(utils.isMonthView(component)).toBeTruthy();
+				utils.clickNthMonth(component, 2);
+				expect(utils.isDayView(component)).toBeTruthy();
+			});
+		});
+
 		describe('onChange', () => {
 			it('trigger only when last selection type is selected', () => {
 				// By selection type I mean if you CAN select day, then selecting a month

--
Gitblit v1.9.3