Skip to content

Commit 1057719

Browse files
committed
regression tests
1 parent c9a3c6f commit 1057719

File tree

3 files changed

+66
-4
lines changed

3 files changed

+66
-4
lines changed

src/components/DayPickerNavigation.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ class DayPickerNavigation extends React.PureComponent {
104104
let navPrevTabIndex = {};
105105
let navNextTabIndex = {};
106106

107-
if (!navPrevIcon && !renderNavPrevButton) {
107+
if (!navPrevIcon && !renderNavPrevButton && showNavPrevButton) {
108108
navPrevTabIndex = { tabIndex: '0' };
109109
isDefaultNavPrev = true;
110110
let Icon = isVertical ? ChevronUp : LeftArrow;
@@ -122,7 +122,7 @@ class DayPickerNavigation extends React.PureComponent {
122122
);
123123
}
124124

125-
if (!navNextIcon && !renderNavNextButton) {
125+
if (!navNextIcon && !renderNavNextButton && showNavNextButton) {
126126
navNextTabIndex = { tabIndex: '0' };
127127
isDefaultNavNext = true;
128128
let Icon = isVertical ? ChevronDown : RightArrow;

stories/DayPickerRangeController.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ function renderNavNextButton(buttonProps) {
152152
style={{ position: 'absolute', top: 23, right: 22 }}
153153
type="button"
154154
>
155-
Next ›
155+
Next
156156
</button>
157157
);
158158
}
@@ -176,7 +176,7 @@ function renderNavPrevButtonForVerticalScrollable(buttonProps) {
176176
style={{ width: '100%', textAlign: 'center' }}
177177
type="button"
178178
>
179-
&lsaquo; Prev
179+
Prev
180180
</button>
181181
);
182182
}

test/components/DayPickerNavigation_spec.jsx

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { shallow } from 'enzyme';
66
import DayPickerNavigation from '../../src/components/DayPickerNavigation';
77
import RightArrow from '../../src/components/RightArrow';
88
import LeftArrow from '../../src/components/LeftArrow';
9+
import { VERTICAL_ORIENTATION } from '../../src/constants';
910

1011
describe('DayPickerNavigation', () => {
1112
describe('#render', () => {
@@ -91,6 +92,67 @@ describe('DayPickerNavigation', () => {
9192
expect(wrapper.childAt(1).find('div[role="button"]')).to.have.lengthOf(0);
9293
expect(renderNavNextButtonStub).to.have.property('callCount', 1);
9394
});
95+
96+
it('does not render default styles when custom navigation is used', () => {
97+
const renderNavPrevButtonStub = sinon.stub().returns(<button type="button">Prev</button>);
98+
const renderNavNextButtonStub = sinon.stub().returns(<button type="button">Next</button>);
99+
const wrapper = shallow(
100+
<DayPickerNavigation
101+
renderNavNextButton={renderNavNextButtonStub}
102+
renderNavPrevButton={renderNavPrevButtonStub}
103+
orientation={VERTICAL_ORIENTATION}
104+
/>,
105+
).dive();
106+
const wrapperDiv = wrapper.find('div').filterWhere((div) => {
107+
const className = div.prop('className') || '';
108+
return className.includes('DayPickerNavigation__verticalDefault');
109+
});
110+
expect(wrapperDiv).to.have.lengthOf(0);
111+
});
112+
113+
it('does render default styles when custom navigation is used for only one nav button', () => {
114+
const renderNavPrevButtonStub = sinon.stub().returns(<button type="button">Prev</button>);
115+
const wrapper = shallow(
116+
<DayPickerNavigation
117+
renderNavPrevButton={renderNavPrevButtonStub}
118+
orientation={VERTICAL_ORIENTATION}
119+
/>,
120+
).dive();
121+
const wrapperDiv = wrapper.find('div').filterWhere((div) => {
122+
const className = div.prop('className') || '';
123+
return className.includes('DayPickerNavigation__verticalDefault');
124+
});
125+
expect(wrapperDiv).to.have.lengthOf(1);
126+
});
127+
128+
it('does not render default styles when custom navigation is used for only button but the other nav button is not shown', () => {
129+
const renderNavPrevButtonStub = sinon.stub().returns(<button type="button">Prev</button>);
130+
const wrapper = shallow(
131+
<DayPickerNavigation
132+
showNavNextButton={false}
133+
renderNavPrevButton={renderNavPrevButtonStub}
134+
orientation={VERTICAL_ORIENTATION}
135+
/>,
136+
).dive();
137+
const wrapperDiv = wrapper.find('div').filterWhere((div) => {
138+
const className = div.prop('className') || '';
139+
return className.includes('DayPickerNavigation__verticalDefault');
140+
});
141+
expect(wrapperDiv).to.have.lengthOf(0);
142+
});
143+
144+
it('renders default styles when default navigation is used', () => {
145+
const wrapper = shallow(
146+
<DayPickerNavigation
147+
orientation={VERTICAL_ORIENTATION}
148+
/>,
149+
).dive();
150+
const wrapperDiv = wrapper.find('div').filterWhere((div) => {
151+
const className = div.prop('className') || '';
152+
return className.includes('DayPickerNavigation__verticalDefault');
153+
});
154+
expect(wrapperDiv).to.have.lengthOf(1);
155+
});
94156
});
95157

96158
describe('interactions', () => {

0 commit comments

Comments
 (0)