diff --git a/tests/unit/__snapshots__/calendar.spec.js.snap b/tests/unit/__snapshots__/calendar.spec.js.snap
index fa5953a..b53977a 100644
--- a/tests/unit/__snapshots__/calendar.spec.js.snap
+++ b/tests/unit/__snapshots__/calendar.spec.js.snap
@@ -1,5 +1,91 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
+exports[`Calender View Single datepicker is correct render 1`] = `
+
diff --git a/tests/unit/calendar.spec.js b/tests/unit/calendar.spec.js
index 04cfe19..163ee6f 100644
--- a/tests/unit/calendar.spec.js
+++ b/tests/unit/calendar.spec.js
@@ -3,23 +3,68 @@ import { mount } from '@vue/test-utils'
import { BasicData } from './mockData'
import Calendar from '@/components/calendar.vue'
-let wrapper
-
describe('Calender View', () => {
- wrapper = mount(Calendar, {
- propsData: {
- calendar: BasicData.calendar,
- currentDate: BasicData.currentDate,
- selectedDate: BasicData.currentDate,
- range: BasicData.range,
- textFormat: BasicData.textFormat,
- disableDate: BasicData.disableDate,
- formatDate: BasicData.formatDate,
- viewMode: BasicData.viewMode
- }
- })
+ describe('Single datepicker', () => {
+ let wrapper
+
+ beforeEach(() => {
+ wrapper = mount(Calendar, {
+ propsData: {
+ calendar: BasicData.calendar,
+ currentDate: BasicData.currentDate,
+ selectedDate: BasicData.currentDate,
+ range: BasicData.range,
+ textFormat: BasicData.textFormat,
+ disableDate: BasicData.disableDate,
+ formatDate: BasicData.formatDate,
+ viewMode: BasicData.viewMode
+ }
+ })
+ })
+
+ afterEach(() => {
+ wrapper.destroy()
+ })
+
+ test('is correct render', () => {
+ expect(wrapper.html()).toMatchSnapshot()
+ })
+
+ test('should be day count equal to 7', () => {
+ const days = wrapper.findAll('.days > .name')
+ expect(days.length).toBe(7)
+ })
+
+ test('should be day count of a month is between 28-31 ', () => {
+ const allDaysInSelection = wrapper.findAll('.days-selection > .days > .day')
+ const disabledDate = wrapper.findAll('.days-selection > .days > .disabledDate')
+
+ const dayCountOfThisMonth = allDaysInSelection.length - disabledDate.length
+
+ expect(dayCountOfThisMonth).toBeGreaterThanOrEqual(28)
+ expect(dayCountOfThisMonth).toBeLessThanOrEqual(31)
+ })
+
+ test('should be able change view mode as years', async () => {
+ const viewButton = wrapper.find('.viewButton')
+ await viewButton.trigger('click')
+
+ const years = wrapper.findAll('.year')
+ expect(years.length).toBe(11)
+ })
+
+ test('there should be a calendar', () => {
+ const calendar = wrapper.findAll('.calendar')
+ expect(calendar.length).toBe(1)
+ })
+
+ test('should be called handlerDate when selected a date', async () => {
+ const mockHandlerDate = jest.spyOn(wrapper.vm, 'handlerDate')
+
+ const fifthDay = wrapper.findAll('.days-selection > .days > .day').at(6)
+ await fifthDay.trigger('click')
- test('is correct render', () => {
- expect(wrapper.html()).toMatchSnapshot()
+ expect(mockHandlerDate).toHaveBeenCalled()
+ })
})
})