import React from 'react'; import { mount } from 'enzyme'; import WeekNumbers from '../WeekNumbers'; /* eslint-disable comma-dangle */ describe('WeekNumbers', () => { it('renders proper weekNumbers for a year that starts in week 1 (ISO 8601)', () => { const component = mount( ); const weekNumbers = component.find('WeekNumber'); expect(weekNumbers).toHaveLength(5); expect(weekNumbers.first().text()).toBe('1'); }); it('renders proper weekNumbers for a year that starts on week 52 (ISO 8601)', () => { const component = mount( ); const weekNumbers = component.find('WeekNumber'); expect(weekNumbers).toHaveLength(6); expect(weekNumbers.first().text()).toBe('52'); }); it('renders proper weekNumbers for a year that starts on week 53 (ISO 8601)', () => { const component = mount( ); const weekNumbers = component.find('WeekNumber'); expect(weekNumbers).toHaveLength(5); expect(weekNumbers.first().text()).toBe('53'); }); it('renders proper weekNumbers for a year that starts in week 1 (US)', () => { const component = mount( ); const weekNumbers = component.find('WeekNumber'); expect(weekNumbers).toHaveLength(5); expect(weekNumbers.first().text()).toBe('1'); }); it('renders proper weekNumbers given showFixedNumberOfWeeks flag', () => { // Same config as in first test which gives 5 weeks, except for the flag const component = mount( ); const weekNumbers = component.find('WeekNumber'); expect(weekNumbers).toHaveLength(6); expect(weekNumbers.first().text()).toBe('1'); }); it('renders static divs as children when not given onClickWeekNumber', () => { const component = mount( ); const children = component.find('div.react-calendar__tile'); expect(children).toHaveLength(6); }); it('renders buttons as children when given onClickWeekNumber', () => { const component = mount( ); const children = component.find('button.react-calendar__tile'); expect(children).toHaveLength(6); }); it('calls onClickWeekNumber function with proper arguments when clicked a week number (ISO 8601)', () => { const onClickWeekNumber = jest.fn(); const component = mount( ); const children = component.find('button.react-calendar__tile'); children.first().simulate('click'); expect(onClickWeekNumber).toHaveBeenCalledWith(52, new Date(2016, 11, 26)); }); it('calls onClickWeekNumber function with proper arguments when clicked a week number (US)', () => { const onClickWeekNumber = jest.fn(); const component = mount( ); const children = component.find('button.react-calendar__tile'); children.first().simulate('click'); expect(onClickWeekNumber).toHaveBeenCalledWith(1, new Date(2017, 0, 1)); }); });