forked from SAP/ui5-webcomponents
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDateRangePicker.spec.js
183 lines (134 loc) · 7.16 KB
/
DateRangePicker.spec.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
const assert = require("chai").assert;
describe("DateRangePicker general interaction", () => {
browser.url("http://localhost:8080/test-resources/pages/DateRangePicker.html");
it("Custom Validation Error", () => {
const daterangepicker = browser.$("#daterange-picker3");
daterangepicker.click();
daterangepicker.keys("123123123");
daterangepicker.keys("Enter");
assert.strictEqual(daterangepicker.shadow$("ui5-input").getProperty("valueState"), "Error", "The value state is on error");
});
it("Custom Validation None", () => {
browser.url("http://localhost:8080/test-resources/pages/DateRangePicker.html");
const daterangepicker = browser.$("#daterange-picker3");
daterangepicker.click();
daterangepicker.keys("09/09/2020 - 10/10/2020");
daterangepicker.keys("Enter");
assert.strictEqual(daterangepicker.shadow$("ui5-input").getProperty("valueState"), "None", "The value state is on none");
});
it("Selected dates are updated after value update in the input field", () => {
const staticAreaItemClassName = browser.getStaticAreaItemClassName("#daterange-picker3");
const dayPicker = browser.$(`.${staticAreaItemClassName}`).shadow$(`ui5-calendar`).shadow$(`ui5-daypicker`);
const firstDateTimestamp = 1599609600;
assert.strictEqual(dayPicker.getProperty("timestamp"), firstDateTimestamp, "The first date is selected");
});
it("Is delimiter set", () => {
const daterangepicker = browser.$("#daterange-picker2");
assert.strictEqual(daterangepicker.getProperty("delimiter"), "@", "The delimiter is set to @");
});
it("firstDateValue and lastDateValue getter", () => {
browser.url("http://localhost:8080/test-resources/pages/DateRangePicker.html");
const daterangepicker = browser.$("#daterange-picker4");
daterangepicker.click();
browser.keys("27/09/2019 - 10/10/2019");
browser.keys("Enter");
const res = browser.execute(() => {
const myDRP = document.getElementById("daterange-picker4");
const firstDateValue = myDRP.firstDateValue;
const lastDateValue = myDRP.lastDateValue;
return {firstDateValue, lastDateValue};
});
assert.deepEqual(new Date(res.firstDateValue), new Date(2019, 8, 27), "The first date is in JS Date format");
assert.deepEqual(new Date(res.lastDateValue), new Date(2019, 9, 10), "The last date is JS Date format");
});
it("Initially setting the same date as first & last is possible", () => {
const daterangepicker = browser.$("#daterange-picker5");
assert.strictEqual(daterangepicker.getProperty("firstDateValue"), daterangepicker.getProperty("lastDateValue"), "Initially properties are set correctly");
});
it("Setting the same date as first & last is possible", () => {
const daterangepicker = browser.$("#daterange-picker5");
daterangepicker.setProperty("value", "Aug 5, 2020 - Aug 5, 2020");
assert.strictEqual(daterangepicker.getProperty("firstDateValue"), daterangepicker.getProperty("lastDateValue"), "Properties are set correctly");
})
it("Change event fired once", () => {
const staticAreaItemClassName = browser.getStaticAreaItemClassName("#daterange-picker1");
const dayPicker = browser.$(`.${staticAreaItemClassName}`).shadow$(`ui5-calendar`).shadow$(`ui5-daypicker`);
const dayOne = dayPicker.shadow$(`.ui5-dp-root`).$(".ui5-dp-content").$$("div > .ui5-dp-item" )[5];
const dayTwo = dayPicker.shadow$(`.ui5-dp-root`).$(".ui5-dp-content").$$("div > .ui5-dp-item" )[15];
const daterangepicker = browser.$("#daterange-picker1");
daterangepicker.click();
browser.keys("F4");
dayOne.click();
dayTwo.click();
assert.strictEqual(browser.$("#labelChange").getHTML(false), "1", "The change event was fired once");
});
it("Page up/down increments/decrements day value", () => {
const dateRangePicker = browser.$("#daterange-picker5");
dateRangePicker.setAttribute("value", "Jul 16, 2020 @ Jul 29, 2020");
dateRangePicker.click();
browser.keys("End");
browser.keys('PageDown');
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2020 @ Jul 28, 2020");
browser.keys('PageUp');
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2020 @ Jul 29, 2020");
browser.keys("Home");
browser.keys('PageDown');
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 15, 2020 @ Jul 29, 2020");
browser.keys('PageUp');
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2020 @ Jul 29, 2020");
});
it("Page up/down increments/decrements month value", () => {
const dateRangePicker = browser.$("#daterange-picker5");
dateRangePicker.setAttribute("value", "Jul 16, 2020 @ Jul 29, 2020");
dateRangePicker.click();
browser.keys("End");
browser.keys(['Shift', 'PageUp']);
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2020 @ Aug 29, 2020");
browser.keys(['Shift', 'PageDown']);
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2020 @ Jul 29, 2020");
browser.keys("Home");
browser.keys(['Shift', 'PageDown']);
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jun 16, 2020 @ Jul 29, 2020");
browser.keys(['Shift', 'PageUp']);
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2020 @ Jul 29, 2020");
});
it("Page up/down increments/decrements year value", () => {
const dateRangePicker = browser.$("#daterange-picker5");
dateRangePicker.setAttribute("value", "Jul 16, 2020 @ Jul 29, 2020");
dateRangePicker.click();
browser.keys("End");
browser.keys(['Control', 'Shift', 'PageUp']);
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2020 @ Jul 29, 2021");
browser.keys(['Control', 'Shift', 'PageDown']);
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2020 @ Jul 29, 2020");
browser.keys("Home");
browser.keys(['Control', 'Shift', 'PageDown']);
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2019 @ Jul 29, 2020");
browser.keys(['Control', 'Shift', 'PageUp']);
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2020 @ Jul 29, 2020");
});
it("Enter keyboard key confirms the date range in the input field", () => {
browser.url("http://localhost:8080/test-resources/pages/DateRangePicker.html");
const dateRangePicker = browser.$("#daterange-picker5");
dateRangePicker.click();
browser.keys("Jul 17, 2020 @ Jul 16, 2020");
browser.keys("Enter");
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2020 @ Jul 17, 2020");
});
it("Focus out of the input field confirms the date range", () => {
browser.url("http://localhost:8080/test-resources/pages/DateRangePicker.html");
const dateRangePicker = browser.$("#daterange-picker5");
dateRangePicker.click();
browser.keys("Jul 17, 2020 @ Jul 16, 2020");
browser.keys("Tab");
assert.strictEqual(dateRangePicker.getAttribute("value"), "Jul 16, 2020 @ Jul 17, 2020");
});
it("Delimiter is part of the format pattern", () => {
browser.url("http://localhost:8080/test-resources/pages/DateRangePicker.html");
const daterangepicker = browser.$("#daterange-picker6");
daterangepicker.click();
daterangepicker.keys("2020-09-09 - 2020-10-10");
daterangepicker.keys("Enter");
assert.strictEqual(daterangepicker.shadow$("ui5-input").getProperty("valueState"), "None", "The value state is on none");
});
});