Skip to content

Commit e2a2935

Browse files
📦 [refact] edit test code for simulate event.
1 parent b743448 commit e2a2935

File tree

3 files changed

+134
-81
lines changed

3 files changed

+134
-81
lines changed

test/event_helper.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
function eventTrigger(element, type, data) {
2+
const event = new window.Event(type);
3+
4+
5+
for (let key in data) {
6+
if (data.hasOwnProperty(key)) {
7+
event[key] = data[key];
8+
}
9+
}
10+
11+
element.dispatchEvent(event);
12+
}
13+
14+
export default eventTrigger;

test/functional/DatePickerItem_spec.js

+30-23
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import sinon from 'sinon';
55
import { mount, shallow } from 'enzyme';
66
import DatePickerItem from '../../lib/DatePickerItem';
77
import {getTime, nextDate} from '../../lib/time';
8-
8+
import eventTrigger from '../event_helper.js';
99

1010
const DEFAULT_PROPS = {
1111
value: new Date(2010, 3, 7),
@@ -69,21 +69,21 @@ describe('DatePickerItem.js', () => {
6969
);
7070

7171
const touchstartEvent = {
72-
type: 'touchstart',
7372
targetTouches: [{ pageY: 0 }],
7473
};
7574
const touchmoveEvent = {
76-
type: 'touchmove',
7775
targetTouches: [{ pageY: 20 }],
7876
};
7977
const touchendEvent = {
80-
type: 'touchend',
8178
changedTouches: [{ pageY: 50 }],
8279
};
8380

84-
datePicker.find('.datepicker-viewport').simulate('touchStart', touchstartEvent);
85-
datePicker.find('.datepicker-viewport').simulate('touchMove', touchmoveEvent);
86-
datePicker.find('.datepicker-viewport').simulate('touchEnd', touchendEvent);
81+
const element = datePicker.find('.datepicker-viewport').node;
82+
83+
eventTrigger(element, 'touchstart', touchstartEvent);
84+
eventTrigger(element, 'touchmove', touchmoveEvent);
85+
eventTrigger(element, 'touchend', touchendEvent);
86+
8787
sinon.assert.callCount(spyFunction, 3);
8888
spyFunction.restore();
8989
})
@@ -96,30 +96,34 @@ describe('DatePickerItem.js', () => {
9696
<DatePickerItem {...DEFAULT_PROPS} typeName="Date" />
9797
);
9898
const touchstartEvent = {
99-
type: 'touchstart',
10099
targetTouches: [{ pageY: 0 }],
101100
};
102101
const touchendEvent = {
103-
type: 'touchend',
104102
changedTouches: [{ pageY: 50 }],
105103
};
106-
datePicker.find('.datepicker-viewport').simulate('touchStart', touchstartEvent);
107-
datePicker.find('.datepicker-viewport').simulate('touchEnd', touchendEvent);
104+
105+
const element = datePicker.find('.datepicker-viewport').node;
106+
107+
eventTrigger(element, 'touchstart', touchstartEvent);
108+
eventTrigger(element, 'touchend', touchendEvent);
109+
108110
expect(spyFunction.getCall(0).args[0]).to.equal(-1);
109111

110112
const datePicker2 = mount(
111113
<DatePickerItem {...DEFAULT_PROPS} typeName="Date" />
112114
);
113115
const touchstartEvent2 = {
114-
type: 'touchstart',
115116
targetTouches: [{ pageY: 0 }],
116117
};
117118
const touchendEvent2 = {
118-
type: 'touchend',
119119
changedTouches: [{ pageY: -50 }],
120120
};
121-
datePicker2.find('.datepicker-viewport').simulate('touchStart', touchstartEvent2);
122-
datePicker2.find('.datepicker-viewport').simulate('touchEnd', touchendEvent2);
121+
122+
const element2 = datePicker2.find('.datepicker-viewport').node;
123+
124+
eventTrigger(element2, 'touchstart', touchstartEvent2);
125+
eventTrigger(element2, 'touchend', touchendEvent2);
126+
123127
expect(spyFunction.getCall(1).args[0]).to.equal(1);
124128
spyFunction.restore();
125129
})
@@ -131,15 +135,17 @@ describe('DatePickerItem.js', () => {
131135
<DatePickerItem {...DEFAULT_PROPS} typeName="Date" />
132136
);
133137
const touchstartEvent = {
134-
type: 'touchstart',
135138
targetTouches: [{ pageY: 0 }],
136139
};
137140
const touchendEvent = {
138-
type: 'touchmove',
139141
targetTouches: [{ pageY: 21 }],
140142
};
141-
datePicker.find('.datepicker-viewport').simulate('touchStart', touchstartEvent);
142-
datePicker.find('.datepicker-viewport').simulate('touchMove', touchendEvent);
143+
144+
const element = datePicker.find('.datepicker-viewport').node;
145+
146+
eventTrigger(element, 'touchstart', touchstartEvent);
147+
eventTrigger(element, 'touchmove', touchendEvent);
148+
143149
sinon.assert.calledOnce(spyFunction);
144150
spyFunction.restore();
145151
})
@@ -159,15 +165,16 @@ describe('DatePickerItem.js', () => {
159165
);
160166

161167
const touchstartEvent = {
162-
type: 'touchstart',
163168
targetTouches: [{ pageY: 0 }],
164169
};
165170
const touchendEvent = {
166-
type: 'touchend',
167171
changedTouches: [{ pageY: -21 }],
168172
};
169-
datePicker.find('.datepicker-viewport').simulate('touchStart', touchstartEvent);
170-
datePicker.find('.datepicker-viewport').simulate('touchEnd', touchendEvent);
173+
174+
const element = datePicker.find('.datepicker-viewport').node;
175+
176+
eventTrigger(element, 'touchstart', touchstartEvent);
177+
eventTrigger(element, 'touchend', touchendEvent);
171178

172179
expect(spyFunction.getCall(0).args[1]).to.equal(5);
173180
})

0 commit comments

Comments
 (0)