react-native-timer-picker 2.3.1 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -116
- package/dist/commonjs/components/DurationScroll/DurationScroll.js +15 -27
- package/dist/commonjs/components/DurationScroll/DurationScroll.js.map +1 -1
- package/dist/commonjs/components/DurationScroll/types.js.map +1 -1
- package/dist/commonjs/components/PickerItem/PickerItem.js +47 -0
- package/dist/commonjs/components/PickerItem/PickerItem.js.map +1 -0
- package/dist/commonjs/components/PickerItem/index.js +14 -0
- package/dist/commonjs/components/PickerItem/index.js.map +1 -0
- package/dist/commonjs/components/TimerPicker/TimerPicker.js +11 -7
- package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/styles.js +45 -18
- package/dist/commonjs/components/TimerPicker/styles.js.map +1 -1
- package/dist/commonjs/components/TimerPickerModal/styles.js +4 -15
- package/dist/commonjs/components/TimerPickerModal/styles.js.map +1 -1
- package/dist/commonjs/tests/Modal.test.js +2 -22
- package/dist/commonjs/tests/Modal.test.js.map +1 -1
- package/dist/commonjs/tests/TimerPickerModal.test.js +53 -53
- package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
- package/dist/commonjs/tests/generateNumbers.test.js +35 -35
- package/dist/commonjs/tests/generateNumbers.test.js.map +1 -1
- package/dist/commonjs/tests/padNumber.test.js +18 -18
- package/dist/commonjs/tests/padNumber.test.js.map +1 -1
- package/dist/commonjs/utils/generateNumbers.js +4 -3
- package/dist/commonjs/utils/generateNumbers.js.map +1 -1
- package/dist/commonjs/utils/padNumber.js +7 -7
- package/dist/commonjs/utils/padNumber.js.map +1 -1
- package/dist/module/components/DurationScroll/DurationScroll.js +14 -27
- package/dist/module/components/DurationScroll/DurationScroll.js.map +1 -1
- package/dist/module/components/DurationScroll/types.js.map +1 -1
- package/dist/module/components/PickerItem/PickerItem.js +40 -0
- package/dist/module/components/PickerItem/PickerItem.js.map +1 -0
- package/dist/module/components/PickerItem/index.js +2 -0
- package/dist/module/components/PickerItem/index.js.map +1 -0
- package/dist/module/components/TimerPicker/TimerPicker.js +11 -7
- package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -1
- package/dist/module/components/TimerPicker/styles.js +45 -18
- package/dist/module/components/TimerPicker/styles.js.map +1 -1
- package/dist/module/components/TimerPickerModal/styles.js +4 -15
- package/dist/module/components/TimerPickerModal/styles.js.map +1 -1
- package/dist/module/tests/Modal.test.js +2 -22
- package/dist/module/tests/Modal.test.js.map +1 -1
- package/dist/module/tests/TimerPickerModal.test.js +9 -9
- package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
- package/dist/module/tests/generateNumbers.test.js +35 -35
- package/dist/module/tests/generateNumbers.test.js.map +1 -1
- package/dist/module/tests/padNumber.test.js +18 -18
- package/dist/module/tests/padNumber.test.js.map +1 -1
- package/dist/module/utils/generateNumbers.js +4 -3
- package/dist/module/utils/generateNumbers.js.map +1 -1
- package/dist/module/utils/padNumber.js +7 -7
- package/dist/module/utils/padNumber.js.map +1 -1
- package/dist/typescript/components/DurationScroll/types.d.ts +1 -0
- package/dist/typescript/components/PickerItem/PickerItem.d.ts +15 -0
- package/dist/typescript/components/PickerItem/index.d.ts +1 -0
- package/dist/typescript/components/TimerPicker/styles.d.ts +153 -25
- package/dist/typescript/components/TimerPickerModal/styles.d.ts +256 -254
- package/dist/typescript/utils/padNumber.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _react = _interopRequireDefault(require("react"));
|
|
4
|
-
var _reactNative = require("react-native");
|
|
5
|
-
var _reactNative2 = require("
|
|
4
|
+
var _reactNative = require("@testing-library/react-native");
|
|
5
|
+
var _reactNative2 = require("react-native");
|
|
6
6
|
var _TimerPickerModal = _interopRequireDefault(require("../components/TimerPickerModal"));
|
|
7
7
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
8
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
@@ -15,7 +15,7 @@ describe("TimerPickerModal", () => {
|
|
|
15
15
|
afterEach(() => {
|
|
16
16
|
jest.runOnlyPendingTimers();
|
|
17
17
|
jest.useRealTimers();
|
|
18
|
-
(0,
|
|
18
|
+
(0, _reactNative.cleanup)();
|
|
19
19
|
});
|
|
20
20
|
const defaultProps = {
|
|
21
21
|
visible: true,
|
|
@@ -26,62 +26,62 @@ describe("TimerPickerModal", () => {
|
|
|
26
26
|
it("renders without crashing", () => {
|
|
27
27
|
const {
|
|
28
28
|
getByTestId
|
|
29
|
-
} = (0,
|
|
29
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
|
|
30
30
|
const component = getByTestId("timer-picker-modal");
|
|
31
31
|
expect(component).toBeDefined();
|
|
32
32
|
});
|
|
33
33
|
it("calls onConfirm when Confirm button is pressed", () => {
|
|
34
34
|
const {
|
|
35
35
|
getByText
|
|
36
|
-
} = (0,
|
|
36
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
|
|
37
37
|
const confirmButton = getByText("Confirm");
|
|
38
|
-
|
|
38
|
+
_reactNative.fireEvent.press(confirmButton);
|
|
39
39
|
expect(mockOnConfirm).toHaveBeenCalled();
|
|
40
40
|
});
|
|
41
41
|
it("calls onCancel when Cancel button is pressed", () => {
|
|
42
42
|
const {
|
|
43
43
|
getByText
|
|
44
|
-
} = (0,
|
|
44
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
|
|
45
45
|
const cancelButton = getByText("Cancel");
|
|
46
|
-
|
|
46
|
+
_reactNative.fireEvent.press(cancelButton);
|
|
47
47
|
expect(mockOnCancel).toHaveBeenCalled();
|
|
48
48
|
});
|
|
49
49
|
it("hides the modal when Cancel button is pressed", () => {
|
|
50
50
|
const setIsVisibleMock = jest.fn();
|
|
51
51
|
const {
|
|
52
52
|
getByText
|
|
53
|
-
} = (0,
|
|
53
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
54
54
|
setIsVisible: setIsVisibleMock
|
|
55
55
|
})));
|
|
56
56
|
const cancelButton = getByText("Cancel");
|
|
57
|
-
|
|
57
|
+
_reactNative.fireEvent.press(cancelButton);
|
|
58
58
|
expect(setIsVisibleMock).toHaveBeenCalledWith(false);
|
|
59
59
|
});
|
|
60
60
|
it("hides the modal when overlay is pressed", () => {
|
|
61
61
|
const setIsVisibleMock = jest.fn();
|
|
62
62
|
const {
|
|
63
63
|
getByTestId
|
|
64
|
-
} = (0,
|
|
64
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
65
65
|
closeOnOverlayPress: true,
|
|
66
66
|
setIsVisible: setIsVisibleMock
|
|
67
67
|
})));
|
|
68
68
|
const overlay = getByTestId("modal-backdrop");
|
|
69
|
-
|
|
69
|
+
_reactNative.fireEvent.press(overlay);
|
|
70
70
|
expect(setIsVisibleMock).toHaveBeenCalledWith(false);
|
|
71
71
|
});
|
|
72
72
|
it("calls onConfirm with selected duration when Confirm button is pressed", () => {
|
|
73
73
|
const {
|
|
74
74
|
getByText
|
|
75
|
-
} = (0,
|
|
75
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
|
|
76
76
|
// Select duration in TimerPicker, assuming its interaction is tested separately
|
|
77
77
|
const confirmButton = getByText("Confirm");
|
|
78
|
-
|
|
78
|
+
_reactNative.fireEvent.press(confirmButton);
|
|
79
79
|
expect(mockOnConfirm).toHaveBeenCalledWith(expect.objectContaining({}));
|
|
80
80
|
});
|
|
81
81
|
it("renders but is not visible when visible prop is false", () => {
|
|
82
82
|
const {
|
|
83
83
|
getByTestId
|
|
84
|
-
} = (0,
|
|
84
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
85
85
|
visible: false
|
|
86
86
|
})));
|
|
87
87
|
const modal = getByTestId("timer-picker-modal");
|
|
@@ -92,9 +92,9 @@ describe("TimerPickerModal", () => {
|
|
|
92
92
|
it("renders with custom button labels", () => {
|
|
93
93
|
const {
|
|
94
94
|
getByText
|
|
95
|
-
} = (0,
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
96
|
+
cancelButtonText: "Dismiss",
|
|
97
|
+
confirmButtonText: "OK"
|
|
98
98
|
})));
|
|
99
99
|
expect(getByText("OK")).toBeDefined();
|
|
100
100
|
expect(getByText("Dismiss")).toBeDefined();
|
|
@@ -102,7 +102,7 @@ describe("TimerPickerModal", () => {
|
|
|
102
102
|
it("renders with custom modal title", () => {
|
|
103
103
|
const {
|
|
104
104
|
getByText
|
|
105
|
-
} = (0,
|
|
105
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
106
106
|
modalTitle: "Select Time"
|
|
107
107
|
})));
|
|
108
108
|
expect(getByText("Select Time")).toBeDefined();
|
|
@@ -111,18 +111,18 @@ describe("TimerPickerModal", () => {
|
|
|
111
111
|
const setIsVisibleMock = jest.fn();
|
|
112
112
|
const {
|
|
113
113
|
getByTestId
|
|
114
|
-
} = (0,
|
|
114
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
115
115
|
closeOnOverlayPress: false,
|
|
116
116
|
setIsVisible: setIsVisibleMock
|
|
117
117
|
})));
|
|
118
118
|
const overlay = getByTestId("modal-backdrop");
|
|
119
|
-
|
|
119
|
+
_reactNative.fireEvent.press(overlay);
|
|
120
120
|
expect(setIsVisibleMock).not.toHaveBeenCalled();
|
|
121
121
|
});
|
|
122
122
|
it("hides Cancel button when hideCancelButton is true", () => {
|
|
123
123
|
const {
|
|
124
124
|
queryByText
|
|
125
|
-
} = (0,
|
|
125
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
126
126
|
hideCancelButton: true
|
|
127
127
|
})));
|
|
128
128
|
expect(queryByText("Cancel")).toBeNull();
|
|
@@ -130,7 +130,7 @@ describe("TimerPickerModal", () => {
|
|
|
130
130
|
it("renders with initial value", () => {
|
|
131
131
|
const {
|
|
132
132
|
getByTestId
|
|
133
|
-
} = (0,
|
|
133
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
134
134
|
initialValue: {
|
|
135
135
|
hours: 2,
|
|
136
136
|
minutes: 30,
|
|
@@ -142,7 +142,7 @@ describe("TimerPickerModal", () => {
|
|
|
142
142
|
it("renders with custom intervals", () => {
|
|
143
143
|
const {
|
|
144
144
|
getByTestId
|
|
145
|
-
} = (0,
|
|
145
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
146
146
|
hourInterval: 2,
|
|
147
147
|
minuteInterval: 15,
|
|
148
148
|
secondInterval: 5
|
|
@@ -154,19 +154,19 @@ describe("TimerPickerModal", () => {
|
|
|
154
154
|
const onCancelMock = jest.fn();
|
|
155
155
|
const {
|
|
156
156
|
getByText
|
|
157
|
-
} = (0,
|
|
157
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
158
158
|
onCancel: onCancelMock,
|
|
159
159
|
setIsVisible: setIsVisibleMock
|
|
160
160
|
})));
|
|
161
161
|
const cancelButton = getByText("Cancel");
|
|
162
|
-
|
|
162
|
+
_reactNative.fireEvent.press(cancelButton);
|
|
163
163
|
expect(onCancelMock).toHaveBeenCalled();
|
|
164
164
|
expect(setIsVisibleMock).toHaveBeenCalledWith(false);
|
|
165
165
|
});
|
|
166
166
|
it("hides specific time units when respective hide props are provided", () => {
|
|
167
167
|
const {
|
|
168
168
|
getByTestId
|
|
169
|
-
} = (0,
|
|
169
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
170
170
|
hideHours: true,
|
|
171
171
|
hideSeconds: true
|
|
172
172
|
})));
|
|
@@ -176,30 +176,30 @@ describe("TimerPickerModal", () => {
|
|
|
176
176
|
it("renders without crashing with all optional props", () => {
|
|
177
177
|
const {
|
|
178
178
|
getByTestId
|
|
179
|
-
} = (0,
|
|
180
|
-
modalTitle: "Pick Duration",
|
|
181
|
-
confirmButtonText: "Done",
|
|
179
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
182
180
|
cancelButtonText: "Close",
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
secondLabel: "s",
|
|
181
|
+
confirmButtonText: "Done",
|
|
182
|
+
hideDays: false,
|
|
186
183
|
hideHours: false,
|
|
187
184
|
hideMinutes: false,
|
|
188
185
|
hideSeconds: false,
|
|
189
|
-
|
|
186
|
+
hourLabel: "h",
|
|
187
|
+
minuteLabel: "m",
|
|
188
|
+
modalTitle: "Pick Duration",
|
|
189
|
+
secondLabel: "s"
|
|
190
190
|
})));
|
|
191
191
|
expect(getByTestId("timer-picker-modal")).toBeDefined();
|
|
192
192
|
});
|
|
193
193
|
it("renders custom cancel button when provided", () => {
|
|
194
194
|
const CustomButton = ({
|
|
195
195
|
onPress
|
|
196
|
-
}) => /*#__PURE__*/_react.default.createElement(
|
|
196
|
+
}) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
|
|
197
197
|
onPress: onPress,
|
|
198
198
|
testID: "custom-cancel-button"
|
|
199
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
199
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Cancel"));
|
|
200
200
|
const {
|
|
201
201
|
getByTestId
|
|
202
|
-
} = (0,
|
|
202
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
203
203
|
cancelButton: /*#__PURE__*/_react.default.createElement(CustomButton, null)
|
|
204
204
|
})));
|
|
205
205
|
expect(getByTestId("custom-cancel-button")).toBeDefined();
|
|
@@ -207,13 +207,13 @@ describe("TimerPickerModal", () => {
|
|
|
207
207
|
it("renders custom confirm button when provided", () => {
|
|
208
208
|
const CustomButton = ({
|
|
209
209
|
onPress
|
|
210
|
-
}) => /*#__PURE__*/_react.default.createElement(
|
|
210
|
+
}) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
|
|
211
211
|
onPress: onPress,
|
|
212
212
|
testID: "custom-confirm-button"
|
|
213
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
213
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Confirm"));
|
|
214
214
|
const {
|
|
215
215
|
getByTestId
|
|
216
|
-
} = (0,
|
|
216
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
217
217
|
confirmButton: /*#__PURE__*/_react.default.createElement(CustomButton, null)
|
|
218
218
|
})));
|
|
219
219
|
expect(getByTestId("custom-confirm-button")).toBeDefined();
|
|
@@ -221,51 +221,51 @@ describe("TimerPickerModal", () => {
|
|
|
221
221
|
it("calls onCancel when custom cancel button is pressed", () => {
|
|
222
222
|
const CustomButton = ({
|
|
223
223
|
onPress
|
|
224
|
-
}) => /*#__PURE__*/_react.default.createElement(
|
|
224
|
+
}) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
|
|
225
225
|
onPress: onPress,
|
|
226
226
|
testID: "custom-cancel-button"
|
|
227
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
227
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Cancel"));
|
|
228
228
|
const {
|
|
229
229
|
getByTestId
|
|
230
|
-
} = (0,
|
|
230
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
231
231
|
cancelButton: /*#__PURE__*/_react.default.createElement(CustomButton, null)
|
|
232
232
|
})));
|
|
233
233
|
const customCancelButton = getByTestId("custom-cancel-button");
|
|
234
|
-
|
|
234
|
+
_reactNative.fireEvent.press(customCancelButton);
|
|
235
235
|
expect(mockOnCancel).toHaveBeenCalled();
|
|
236
236
|
});
|
|
237
237
|
it("calls onConfirm when custom confirm button is pressed", () => {
|
|
238
238
|
const CustomButton = ({
|
|
239
239
|
onPress
|
|
240
|
-
}) => /*#__PURE__*/_react.default.createElement(
|
|
240
|
+
}) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
|
|
241
241
|
onPress: onPress,
|
|
242
242
|
testID: "custom-confirm-button"
|
|
243
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
243
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Confirm"));
|
|
244
244
|
const {
|
|
245
245
|
getByTestId
|
|
246
|
-
} = (0,
|
|
246
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
247
247
|
confirmButton: /*#__PURE__*/_react.default.createElement(CustomButton, null)
|
|
248
248
|
})));
|
|
249
249
|
const customConfirmButton = getByTestId("custom-confirm-button");
|
|
250
|
-
|
|
250
|
+
_reactNative.fireEvent.press(customConfirmButton);
|
|
251
251
|
expect(mockOnConfirm).toHaveBeenCalled();
|
|
252
252
|
});
|
|
253
253
|
it("renders both custom cancel and confirm buttons when provided", () => {
|
|
254
254
|
const CustomCancelButton = ({
|
|
255
255
|
onPress
|
|
256
|
-
}) => /*#__PURE__*/_react.default.createElement(
|
|
256
|
+
}) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
|
|
257
257
|
onPress: onPress,
|
|
258
258
|
testID: "custom-cancel-button"
|
|
259
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
259
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Cancel"));
|
|
260
260
|
const CustomConfirmButton = ({
|
|
261
261
|
onPress
|
|
262
|
-
}) => /*#__PURE__*/_react.default.createElement(
|
|
262
|
+
}) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
|
|
263
263
|
onPress: onPress,
|
|
264
264
|
testID: "custom-confirm-button"
|
|
265
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
265
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Confirm"));
|
|
266
266
|
const {
|
|
267
267
|
getByTestId
|
|
268
|
-
} = (0,
|
|
268
|
+
} = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
|
|
269
269
|
cancelButton: /*#__PURE__*/_react.default.createElement(CustomCancelButton, null),
|
|
270
270
|
confirmButton: /*#__PURE__*/_react.default.createElement(CustomConfirmButton, null)
|
|
271
271
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNative2","_TimerPickerModal","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","describe","mockOnConfirm","jest","fn","mockOnCancel","beforeEach","useFakeTimers","afterEach","runOnlyPendingTimers","useRealTimers","cleanup","defaultProps","visible","setIsVisible","onConfirm","onCancel","it","getByTestId","render","createElement","component","expect","toBeDefined","getByText","confirmButton","fireEvent","press","toHaveBeenCalled","cancelButton","setIsVisibleMock","toHaveBeenCalledWith","closeOnOverlayPress","overlay","objectContaining","modal","props","toBe","confirmButtonText","cancelButtonText","modalTitle","not","queryByText","hideCancelButton","toBeNull","initialValue","hours","minutes","seconds","hourInterval","minuteInterval","secondInterval","onCancelMock","hideHours","hideSeconds","hourLabel","minuteLabel","secondLabel","hideMinutes","hideDays","CustomButton","onPress","TouchableOpacity","testID","Text","customCancelButton","customConfirmButton","CustomCancelButton","CustomConfirmButton"],"sources":["TimerPickerModal.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { TouchableOpacity, Text } from \"react-native\";\n\nimport { render, fireEvent, cleanup } from \"@testing-library/react-native\";\n\nimport TimerPickerModal from \"../components/TimerPickerModal\";\n\ndescribe(\"TimerPickerModal\", () => {\n const mockOnConfirm = jest.fn();\n const mockOnCancel = jest.fn();\n\n beforeEach(() => {\n jest.useFakeTimers();\n });\n\n afterEach(() => {\n jest.runOnlyPendingTimers();\n jest.useRealTimers();\n cleanup();\n });\n\n const defaultProps = {\n visible: true,\n setIsVisible: jest.fn(),\n onConfirm: mockOnConfirm,\n onCancel: mockOnCancel,\n };\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<TimerPickerModal {...defaultProps} />);\n const component = getByTestId(\"timer-picker-modal\");\n expect(component).toBeDefined();\n });\n\n it(\"calls onConfirm when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalled();\n });\n\n it(\"calls onCancel when Cancel button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(mockOnCancel).toHaveBeenCalled();\n });\n\n it(\"hides the modal when Cancel button is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n setIsVisible={setIsVisibleMock}\n />\n );\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"hides the modal when overlay is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n closeOnOverlayPress\n setIsVisible={setIsVisibleMock}\n />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"calls onConfirm with selected duration when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n // Select duration in TimerPicker, assuming its interaction is tested separately\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalledWith(expect.objectContaining({}));\n });\n\n it(\"renders but is not visible when visible prop is false\", () => {\n const { getByTestId } = render(\n <TimerPickerModal {...defaultProps} visible={false} />\n );\n const modal = getByTestId(\"timer-picker-modal\");\n expect(modal).toBeDefined();\n // Modal component still renders but with visible={false}\n expect(modal.props.visible).toBe(false);\n });\n\n it(\"renders with custom button labels\", () => {\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n confirmButtonText=\"OK\"\n cancelButtonText=\"Dismiss\"\n />\n );\n expect(getByText(\"OK\")).toBeDefined();\n expect(getByText(\"Dismiss\")).toBeDefined();\n });\n\n it(\"renders with custom modal title\", () => {\n const { getByText } = render(\n <TimerPickerModal {...defaultProps} modalTitle=\"Select Time\" />\n );\n expect(getByText(\"Select Time\")).toBeDefined();\n });\n\n it(\"does not close on overlay press when closeOnOverlayPress is false\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n closeOnOverlayPress={false}\n setIsVisible={setIsVisibleMock}\n />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(setIsVisibleMock).not.toHaveBeenCalled();\n });\n\n it(\"hides Cancel button when hideCancelButton is true\", () => {\n const { queryByText } = render(\n <TimerPickerModal {...defaultProps} hideCancelButton />\n );\n expect(queryByText(\"Cancel\")).toBeNull();\n });\n\n it(\"renders with initial value\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n initialValue={{ hours: 2, minutes: 30, seconds: 0 }}\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"renders with custom intervals\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n hourInterval={2}\n minuteInterval={15}\n secondInterval={5}\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"calls both onCancel and setIsVisible when Cancel is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const onCancelMock = jest.fn();\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n onCancel={onCancelMock}\n setIsVisible={setIsVisibleMock}\n />\n );\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(onCancelMock).toHaveBeenCalled();\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"hides specific time units when respective hide props are provided\", () => {\n const { getByTestId } = render(\n <TimerPickerModal {...defaultProps} hideHours hideSeconds />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n // Note: The specific duration scroll test IDs would be in the TimerPicker component\n });\n\n it(\"renders without crashing with all optional props\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n modalTitle=\"Pick Duration\"\n confirmButtonText=\"Done\"\n cancelButtonText=\"Close\"\n hourLabel=\"h\"\n minuteLabel=\"m\"\n secondLabel=\"s\"\n hideHours={false}\n hideMinutes={false}\n hideSeconds={false}\n hideDays={false}\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"renders custom cancel button when provided\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomButton />}\n />\n );\n expect(getByTestId(\"custom-cancel-button\")).toBeDefined();\n });\n\n it(\"renders custom confirm button when provided\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n confirmButton={<CustomButton />}\n />\n );\n expect(getByTestId(\"custom-confirm-button\")).toBeDefined();\n });\n\n it(\"calls onCancel when custom cancel button is pressed\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomButton />}\n />\n );\n const customCancelButton = getByTestId(\"custom-cancel-button\");\n fireEvent.press(customCancelButton);\n expect(mockOnCancel).toHaveBeenCalled();\n });\n\n it(\"calls onConfirm when custom confirm button is pressed\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n confirmButton={<CustomButton />}\n />\n );\n const customConfirmButton = getByTestId(\"custom-confirm-button\");\n fireEvent.press(customConfirmButton);\n expect(mockOnConfirm).toHaveBeenCalled();\n });\n\n it(\"renders both custom cancel and confirm buttons when provided\", () => {\n const CustomCancelButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n const CustomConfirmButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomCancelButton />}\n confirmButton={<CustomConfirmButton />}\n />\n );\n expect(getByTestId(\"custom-cancel-button\")).toBeDefined();\n expect(getByTestId(\"custom-confirm-button\")).toBeDefined();\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNative2","_TimerPickerModal","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","describe","mockOnConfirm","jest","fn","mockOnCancel","beforeEach","useFakeTimers","afterEach","runOnlyPendingTimers","useRealTimers","cleanup","defaultProps","visible","setIsVisible","onConfirm","onCancel","it","getByTestId","render","createElement","component","expect","toBeDefined","getByText","confirmButton","fireEvent","press","toHaveBeenCalled","cancelButton","setIsVisibleMock","toHaveBeenCalledWith","closeOnOverlayPress","overlay","objectContaining","modal","props","toBe","cancelButtonText","confirmButtonText","modalTitle","not","queryByText","hideCancelButton","toBeNull","initialValue","hours","minutes","seconds","hourInterval","minuteInterval","secondInterval","onCancelMock","hideHours","hideSeconds","hideDays","hideMinutes","hourLabel","minuteLabel","secondLabel","CustomButton","onPress","TouchableOpacity","testID","Text","customCancelButton","customConfirmButton","CustomCancelButton","CustomConfirmButton"],"sources":["TimerPickerModal.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render, fireEvent, cleanup } from \"@testing-library/react-native\";\nimport { TouchableOpacity, Text } from \"react-native\";\n\n\nimport TimerPickerModal from \"../components/TimerPickerModal\";\n\ndescribe(\"TimerPickerModal\", () => {\n const mockOnConfirm = jest.fn();\n const mockOnCancel = jest.fn();\n\n beforeEach(() => {\n jest.useFakeTimers();\n });\n\n afterEach(() => {\n jest.runOnlyPendingTimers();\n jest.useRealTimers();\n cleanup();\n });\n\n const defaultProps = {\n visible: true,\n setIsVisible: jest.fn(),\n onConfirm: mockOnConfirm,\n onCancel: mockOnCancel,\n };\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<TimerPickerModal {...defaultProps} />);\n const component = getByTestId(\"timer-picker-modal\");\n expect(component).toBeDefined();\n });\n\n it(\"calls onConfirm when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalled();\n });\n\n it(\"calls onCancel when Cancel button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(mockOnCancel).toHaveBeenCalled();\n });\n\n it(\"hides the modal when Cancel button is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n setIsVisible={setIsVisibleMock}\n />\n );\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"hides the modal when overlay is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n closeOnOverlayPress\n setIsVisible={setIsVisibleMock}\n />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"calls onConfirm with selected duration when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n // Select duration in TimerPicker, assuming its interaction is tested separately\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalledWith(expect.objectContaining({}));\n });\n\n it(\"renders but is not visible when visible prop is false\", () => {\n const { getByTestId } = render(\n <TimerPickerModal {...defaultProps} visible={false} />\n );\n const modal = getByTestId(\"timer-picker-modal\");\n expect(modal).toBeDefined();\n // Modal component still renders but with visible={false}\n expect(modal.props.visible).toBe(false);\n });\n\n it(\"renders with custom button labels\", () => {\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButtonText=\"Dismiss\"\n confirmButtonText=\"OK\"\n />\n );\n expect(getByText(\"OK\")).toBeDefined();\n expect(getByText(\"Dismiss\")).toBeDefined();\n });\n\n it(\"renders with custom modal title\", () => {\n const { getByText } = render(\n <TimerPickerModal {...defaultProps} modalTitle=\"Select Time\" />\n );\n expect(getByText(\"Select Time\")).toBeDefined();\n });\n\n it(\"does not close on overlay press when closeOnOverlayPress is false\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n closeOnOverlayPress={false}\n setIsVisible={setIsVisibleMock}\n />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(setIsVisibleMock).not.toHaveBeenCalled();\n });\n\n it(\"hides Cancel button when hideCancelButton is true\", () => {\n const { queryByText } = render(\n <TimerPickerModal {...defaultProps} hideCancelButton />\n );\n expect(queryByText(\"Cancel\")).toBeNull();\n });\n\n it(\"renders with initial value\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n initialValue={{ hours: 2, minutes: 30, seconds: 0 }}\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"renders with custom intervals\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n hourInterval={2}\n minuteInterval={15}\n secondInterval={5}\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"calls both onCancel and setIsVisible when Cancel is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const onCancelMock = jest.fn();\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n onCancel={onCancelMock}\n setIsVisible={setIsVisibleMock}\n />\n );\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(onCancelMock).toHaveBeenCalled();\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"hides specific time units when respective hide props are provided\", () => {\n const { getByTestId } = render(\n <TimerPickerModal {...defaultProps} hideHours hideSeconds />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n // Note: The specific duration scroll test IDs would be in the TimerPicker component\n });\n\n it(\"renders without crashing with all optional props\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButtonText=\"Close\"\n confirmButtonText=\"Done\"\n hideDays={false}\n hideHours={false}\n hideMinutes={false}\n hideSeconds={false}\n hourLabel=\"h\"\n minuteLabel=\"m\"\n modalTitle=\"Pick Duration\"\n secondLabel=\"s\"\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"renders custom cancel button when provided\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomButton />}\n />\n );\n expect(getByTestId(\"custom-cancel-button\")).toBeDefined();\n });\n\n it(\"renders custom confirm button when provided\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n confirmButton={<CustomButton />}\n />\n );\n expect(getByTestId(\"custom-confirm-button\")).toBeDefined();\n });\n\n it(\"calls onCancel when custom cancel button is pressed\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomButton />}\n />\n );\n const customCancelButton = getByTestId(\"custom-cancel-button\");\n fireEvent.press(customCancelButton);\n expect(mockOnCancel).toHaveBeenCalled();\n });\n\n it(\"calls onConfirm when custom confirm button is pressed\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n confirmButton={<CustomButton />}\n />\n );\n const customConfirmButton = getByTestId(\"custom-confirm-button\");\n fireEvent.press(customConfirmButton);\n expect(mockOnConfirm).toHaveBeenCalled();\n });\n\n it(\"renders both custom cancel and confirm buttons when provided\", () => {\n const CustomCancelButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n const CustomConfirmButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomCancelButton />}\n confirmButton={<CustomConfirmButton />}\n />\n );\n expect(getByTestId(\"custom-cancel-button\")).toBeDefined();\n expect(getByTestId(\"custom-confirm-button\")).toBeDefined();\n });\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AAGA,IAAAG,iBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAA8D,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,SAAA,WAAAA,QAAA,GAAAC,MAAA,CAAAC,MAAA,GAAAD,MAAA,CAAAC,MAAA,CAAAC,IAAA,eAAAC,CAAA,aAAAP,CAAA,MAAAA,CAAA,GAAAQ,SAAA,CAAAC,MAAA,EAAAT,CAAA,UAAAU,CAAA,GAAAF,SAAA,CAAAR,CAAA,YAAAW,CAAA,IAAAD,CAAA,OAAAE,cAAA,CAAAC,IAAA,CAAAH,CAAA,EAAAC,CAAA,MAAAJ,CAAA,CAAAI,CAAA,IAAAD,CAAA,CAAAC,CAAA,aAAAJ,CAAA,KAAAJ,QAAA,CAAAW,KAAA,OAAAN,SAAA;AAE9DO,QAAQ,CAAC,kBAAkB,EAAE,MAAM;EAC/B,MAAMC,aAAa,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EAC/B,MAAMC,YAAY,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;EAE9BE,UAAU,CAAC,MAAM;IACbH,IAAI,CAACI,aAAa,CAAC,CAAC;EACxB,CAAC,CAAC;EAEFC,SAAS,CAAC,MAAM;IACZL,IAAI,CAACM,oBAAoB,CAAC,CAAC;IAC3BN,IAAI,CAACO,aAAa,CAAC,CAAC;IACpB,IAAAC,oBAAO,EAAC,CAAC;EACb,CAAC,CAAC;EAEF,MAAMC,YAAY,GAAG;IACjBC,OAAO,EAAE,IAAI;IACbC,YAAY,EAAEX,IAAI,CAACC,EAAE,CAAC,CAAC;IACvBW,SAAS,EAAEb,aAAa;IACxBc,QAAQ,EAAEX;EACd,CAAC;EAEDY,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAACvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAKwB,YAAe,CAAC,CAAC;IACtE,MAAMS,SAAS,GAAGH,WAAW,CAAC,oBAAoB,CAAC;IACnDI,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFN,EAAE,CAAC,gDAAgD,EAAE,MAAM;IACvD,MAAM;MAAEO;IAAU,CAAC,GAAG,IAAAL,mBAAM,eAACvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAKwB,YAAe,CAAC,CAAC;IACpE,MAAMa,aAAa,GAAGD,SAAS,CAAC,SAAS,CAAC;IAC1CE,sBAAS,CAACC,KAAK,CAACF,aAAa,CAAC;IAC9BH,MAAM,CAACpB,aAAa,CAAC,CAAC0B,gBAAgB,CAAC,CAAC;EAC5C,CAAC,CAAC;EAEFX,EAAE,CAAC,8CAA8C,EAAE,MAAM;IACrD,MAAM;MAAEO;IAAU,CAAC,GAAG,IAAAL,mBAAM,eAACvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAKwB,YAAe,CAAC,CAAC;IACpE,MAAMiB,YAAY,GAAGL,SAAS,CAAC,QAAQ,CAAC;IACxCE,sBAAS,CAACC,KAAK,CAACE,YAAY,CAAC;IAC7BP,MAAM,CAACjB,YAAY,CAAC,CAACuB,gBAAgB,CAAC,CAAC;EAC3C,CAAC,CAAC;EAEFX,EAAE,CAAC,+CAA+C,EAAE,MAAM;IACtD,MAAMa,gBAAgB,GAAG3B,IAAI,CAACC,EAAE,CAAC,CAAC;IAClC,MAAM;MAAEoB;IAAU,CAAC,GAAG,IAAAL,mBAAM,eACxBvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChBE,YAAY,EAAEgB;IAAiB,EAClC,CACL,CAAC;IACD,MAAMD,YAAY,GAAGL,SAAS,CAAC,QAAQ,CAAC;IACxCE,sBAAS,CAACC,KAAK,CAACE,YAAY,CAAC;IAC7BP,MAAM,CAACQ,gBAAgB,CAAC,CAACC,oBAAoB,CAAC,KAAK,CAAC;EACxD,CAAC,CAAC;EAEFd,EAAE,CAAC,yCAAyC,EAAE,MAAM;IAChD,MAAMa,gBAAgB,GAAG3B,IAAI,CAACC,EAAE,CAAC,CAAC;IAClC,MAAM;MAAEc;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChBoB,mBAAmB;MACnBlB,YAAY,EAAEgB;IAAiB,EAClC,CACL,CAAC;IACD,MAAMG,OAAO,GAAGf,WAAW,CAAC,gBAAgB,CAAC;IAC7CQ,sBAAS,CAACC,KAAK,CAACM,OAAO,CAAC;IACxBX,MAAM,CAACQ,gBAAgB,CAAC,CAACC,oBAAoB,CAAC,KAAK,CAAC;EACxD,CAAC,CAAC;EAEFd,EAAE,CAAC,uEAAuE,EAAE,MAAM;IAC9E,MAAM;MAAEO;IAAU,CAAC,GAAG,IAAAL,mBAAM,eAACvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAKwB,YAAe,CAAC,CAAC;IACpE;IACA,MAAMa,aAAa,GAAGD,SAAS,CAAC,SAAS,CAAC;IAC1CE,sBAAS,CAACC,KAAK,CAACF,aAAa,CAAC;IAC9BH,MAAM,CAACpB,aAAa,CAAC,CAAC6B,oBAAoB,CAACT,MAAM,CAACY,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;EAC3E,CAAC,CAAC;EAEFjB,EAAE,CAAC,uDAAuD,EAAE,MAAM;IAC9D,MAAM;MAAEC;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KAAKuB,YAAY;MAAEC,OAAO,EAAE;IAAM,EAAE,CACzD,CAAC;IACD,MAAMsB,KAAK,GAAGjB,WAAW,CAAC,oBAAoB,CAAC;IAC/CI,MAAM,CAACa,KAAK,CAAC,CAACZ,WAAW,CAAC,CAAC;IAC3B;IACAD,MAAM,CAACa,KAAK,CAACC,KAAK,CAACvB,OAAO,CAAC,CAACwB,IAAI,CAAC,KAAK,CAAC;EAC3C,CAAC,CAAC;EAEFpB,EAAE,CAAC,mCAAmC,EAAE,MAAM;IAC1C,MAAM;MAAEO;IAAU,CAAC,GAAG,IAAAL,mBAAM,eACxBvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChB0B,gBAAgB,EAAC,SAAS;MAC1BC,iBAAiB,EAAC;IAAI,EACzB,CACL,CAAC;IACDjB,MAAM,CAACE,SAAS,CAAC,IAAI,CAAC,CAAC,CAACD,WAAW,CAAC,CAAC;IACrCD,MAAM,CAACE,SAAS,CAAC,SAAS,CAAC,CAAC,CAACD,WAAW,CAAC,CAAC;EAC9C,CAAC,CAAC;EAEFN,EAAE,CAAC,iCAAiC,EAAE,MAAM;IACxC,MAAM;MAAEO;IAAU,CAAC,GAAG,IAAAL,mBAAM,eACxBvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KAAKuB,YAAY;MAAE4B,UAAU,EAAC;IAAa,EAAE,CAClE,CAAC;IACDlB,MAAM,CAACE,SAAS,CAAC,aAAa,CAAC,CAAC,CAACD,WAAW,CAAC,CAAC;EAClD,CAAC,CAAC;EAEFN,EAAE,CAAC,mEAAmE,EAAE,MAAM;IAC1E,MAAMa,gBAAgB,GAAG3B,IAAI,CAACC,EAAE,CAAC,CAAC;IAClC,MAAM;MAAEc;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChBoB,mBAAmB,EAAE,KAAM;MAC3BlB,YAAY,EAAEgB;IAAiB,EAClC,CACL,CAAC;IACD,MAAMG,OAAO,GAAGf,WAAW,CAAC,gBAAgB,CAAC;IAC7CQ,sBAAS,CAACC,KAAK,CAACM,OAAO,CAAC;IACxBX,MAAM,CAACQ,gBAAgB,CAAC,CAACW,GAAG,CAACb,gBAAgB,CAAC,CAAC;EACnD,CAAC,CAAC;EAEFX,EAAE,CAAC,mDAAmD,EAAE,MAAM;IAC1D,MAAM;MAAEyB;IAAY,CAAC,GAAG,IAAAvB,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KAAKuB,YAAY;MAAE+B,gBAAgB;IAAA,EAAE,CAC1D,CAAC;IACDrB,MAAM,CAACoB,WAAW,CAAC,QAAQ,CAAC,CAAC,CAACE,QAAQ,CAAC,CAAC;EAC5C,CAAC,CAAC;EAEF3B,EAAE,CAAC,4BAA4B,EAAE,MAAM;IACnC,MAAM;MAAEC;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChBiC,YAAY,EAAE;QAAEC,KAAK,EAAE,CAAC;QAAEC,OAAO,EAAE,EAAE;QAAEC,OAAO,EAAE;MAAE;IAAE,EACvD,CACL,CAAC;IACD1B,MAAM,CAACJ,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAACK,WAAW,CAAC,CAAC;EAC3D,CAAC,CAAC;EAEFN,EAAE,CAAC,+BAA+B,EAAE,MAAM;IACtC,MAAM;MAAEC;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChBqC,YAAY,EAAE,CAAE;MAChBC,cAAc,EAAE,EAAG;MACnBC,cAAc,EAAE;IAAE,EACrB,CACL,CAAC;IACD7B,MAAM,CAACJ,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAACK,WAAW,CAAC,CAAC;EAC3D,CAAC,CAAC;EAEFN,EAAE,CAAC,6DAA6D,EAAE,MAAM;IACpE,MAAMa,gBAAgB,GAAG3B,IAAI,CAACC,EAAE,CAAC,CAAC;IAClC,MAAMgD,YAAY,GAAGjD,IAAI,CAACC,EAAE,CAAC,CAAC;IAC9B,MAAM;MAAEoB;IAAU,CAAC,GAAG,IAAAL,mBAAM,eACxBvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChBI,QAAQ,EAAEoC,YAAa;MACvBtC,YAAY,EAAEgB;IAAiB,EAClC,CACL,CAAC;IACD,MAAMD,YAAY,GAAGL,SAAS,CAAC,QAAQ,CAAC;IACxCE,sBAAS,CAACC,KAAK,CAACE,YAAY,CAAC;IAC7BP,MAAM,CAAC8B,YAAY,CAAC,CAACxB,gBAAgB,CAAC,CAAC;IACvCN,MAAM,CAACQ,gBAAgB,CAAC,CAACC,oBAAoB,CAAC,KAAK,CAAC;EACxD,CAAC,CAAC;EAEFd,EAAE,CAAC,mEAAmE,EAAE,MAAM;IAC1E,MAAM;MAAEC;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KAAKuB,YAAY;MAAEyC,SAAS;MAACC,WAAW;IAAA,EAAE,CAC/D,CAAC;IACDhC,MAAM,CAACJ,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAACK,WAAW,CAAC,CAAC;IACvD;EACJ,CAAC,CAAC;EAEFN,EAAE,CAAC,kDAAkD,EAAE,MAAM;IACzD,MAAM;MAAEC;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChB0B,gBAAgB,EAAC,OAAO;MACxBC,iBAAiB,EAAC,MAAM;MACxBgB,QAAQ,EAAE,KAAM;MAChBF,SAAS,EAAE,KAAM;MACjBG,WAAW,EAAE,KAAM;MACnBF,WAAW,EAAE,KAAM;MACnBG,SAAS,EAAC,GAAG;MACbC,WAAW,EAAC,GAAG;MACflB,UAAU,EAAC,eAAe;MAC1BmB,WAAW,EAAC;IAAG,EAClB,CACL,CAAC;IACDrC,MAAM,CAACJ,WAAW,CAAC,oBAAoB,CAAC,CAAC,CAACK,WAAW,CAAC,CAAC;EAC3D,CAAC,CAAC;EAEFN,EAAE,CAAC,4CAA4C,EAAE,MAAM;IACnD,MAAM2C,YAAY,GAAGA,CAAC;MAAEC;IAAkC,CAAC,kBACvDjF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAA8E,gBAAgB;MAACD,OAAO,EAAEA,OAAQ;MAACE,MAAM,EAAC;IAAsB,gBAC7DnF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAAgF,IAAI,QAAC,eAAmB,CACX,CACrB;IAED,MAAM;MAAE9C;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChBiB,YAAY,eAAEjD,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACwC,YAAY,MAAE;IAAE,EAClC,CACL,CAAC;IACDtC,MAAM,CAACJ,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAACK,WAAW,CAAC,CAAC;EAC7D,CAAC,CAAC;EAEFN,EAAE,CAAC,6CAA6C,EAAE,MAAM;IACpD,MAAM2C,YAAY,GAAGA,CAAC;MAAEC;IAAkC,CAAC,kBACvDjF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAA8E,gBAAgB;MAACD,OAAO,EAAEA,OAAQ;MAACE,MAAM,EAAC;IAAuB,gBAC9DnF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAAgF,IAAI,QAAC,gBAAoB,CACZ,CACrB;IAED,MAAM;MAAE9C;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChBa,aAAa,eAAE7C,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACwC,YAAY,MAAE;IAAE,EACnC,CACL,CAAC;IACDtC,MAAM,CAACJ,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAACK,WAAW,CAAC,CAAC;EAC9D,CAAC,CAAC;EAEFN,EAAE,CAAC,qDAAqD,EAAE,MAAM;IAC5D,MAAM2C,YAAY,GAAGA,CAAC;MAAEC;IAAkC,CAAC,kBACvDjF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAA8E,gBAAgB;MAACD,OAAO,EAAEA,OAAQ;MAACE,MAAM,EAAC;IAAsB,gBAC7DnF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAAgF,IAAI,QAAC,eAAmB,CACX,CACrB;IAED,MAAM;MAAE9C;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChBiB,YAAY,eAAEjD,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACwC,YAAY,MAAE;IAAE,EAClC,CACL,CAAC;IACD,MAAMK,kBAAkB,GAAG/C,WAAW,CAAC,sBAAsB,CAAC;IAC9DQ,sBAAS,CAACC,KAAK,CAACsC,kBAAkB,CAAC;IACnC3C,MAAM,CAACjB,YAAY,CAAC,CAACuB,gBAAgB,CAAC,CAAC;EAC3C,CAAC,CAAC;EAEFX,EAAE,CAAC,uDAAuD,EAAE,MAAM;IAC9D,MAAM2C,YAAY,GAAGA,CAAC;MAAEC;IAAkC,CAAC,kBACvDjF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAA8E,gBAAgB;MAACD,OAAO,EAAEA,OAAQ;MAACE,MAAM,EAAC;IAAuB,gBAC9DnF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAAgF,IAAI,QAAC,gBAAoB,CACZ,CACrB;IAED,MAAM;MAAE9C;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChBa,aAAa,eAAE7C,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACwC,YAAY,MAAE;IAAE,EACnC,CACL,CAAC;IACD,MAAMM,mBAAmB,GAAGhD,WAAW,CAAC,uBAAuB,CAAC;IAChEQ,sBAAS,CAACC,KAAK,CAACuC,mBAAmB,CAAC;IACpC5C,MAAM,CAACpB,aAAa,CAAC,CAAC0B,gBAAgB,CAAC,CAAC;EAC5C,CAAC,CAAC;EAEFX,EAAE,CAAC,8DAA8D,EAAE,MAAM;IACrE,MAAMkD,kBAAkB,GAAGA,CAAC;MAAEN;IAAkC,CAAC,kBAC7DjF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAA8E,gBAAgB;MAACD,OAAO,EAAEA,OAAQ;MAACE,MAAM,EAAC;IAAsB,gBAC7DnF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAAgF,IAAI,QAAC,eAAmB,CACX,CACrB;IACD,MAAMI,mBAAmB,GAAGA,CAAC;MAAEP;IAAkC,CAAC,kBAC9DjF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAA8E,gBAAgB;MAACD,OAAO,EAAEA,OAAQ;MAACE,MAAM,EAAC;IAAuB,gBAC9DnF,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACpC,aAAA,CAAAgF,IAAI,QAAC,gBAAoB,CACZ,CACrB;IAED,MAAM;MAAE9C;IAAY,CAAC,GAAG,IAAAC,mBAAM,eAC1BvC,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACnC,iBAAA,CAAAG,OAAgB,EAAAC,QAAA,KACTuB,YAAY;MAChBiB,YAAY,eAAEjD,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAAC+C,kBAAkB,MAAE,CAAE;MACrC1C,aAAa,eAAE7C,MAAA,CAAAQ,OAAA,CAAAgC,aAAA,CAACgD,mBAAmB,MAAE;IAAE,EAC1C,CACL,CAAC;IACD9C,MAAM,CAACJ,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAACK,WAAW,CAAC,CAAC;IACzDD,MAAM,CAACJ,WAAW,CAAC,uBAAuB,CAAC,CAAC,CAACK,WAAW,CAAC,CAAC;EAC9D,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -19,7 +19,7 @@ describe("generateNumbers", () => {
|
|
|
19
19
|
repeatNTimes: 1,
|
|
20
20
|
disableInfiniteScroll: true
|
|
21
21
|
});
|
|
22
|
-
expect(result).toEqual(["
|
|
22
|
+
expect(result).toEqual(["\u20070", "\u20072", "\u20074", "\u20076", "\u20078"]);
|
|
23
23
|
});
|
|
24
24
|
it("generates numbers with interval of 5", () => {
|
|
25
25
|
const result = (0, _generateNumbers.generateNumbers)(4, {
|
|
@@ -28,7 +28,7 @@ describe("generateNumbers", () => {
|
|
|
28
28
|
repeatNTimes: 1,
|
|
29
29
|
disableInfiniteScroll: true
|
|
30
30
|
});
|
|
31
|
-
expect(result).toEqual(["
|
|
31
|
+
expect(result).toEqual(["\u20070", "\u20075", "10", "15"]);
|
|
32
32
|
});
|
|
33
33
|
it("returns empty array when numberOfItems is 0", () => {
|
|
34
34
|
const result = (0, _generateNumbers.generateNumbers)(0, {
|
|
@@ -79,7 +79,7 @@ describe("generateNumbers", () => {
|
|
|
79
79
|
padNumbersWithZero: false,
|
|
80
80
|
disableInfiniteScroll: true
|
|
81
81
|
});
|
|
82
|
-
expect(result).toEqual(["
|
|
82
|
+
expect(result).toEqual(["\u20070", "\u20071", "\u20072", "\u20073", "\u20074"]);
|
|
83
83
|
});
|
|
84
84
|
});
|
|
85
85
|
describe("padding with empty items", () => {
|
|
@@ -90,7 +90,7 @@ describe("generateNumbers", () => {
|
|
|
90
90
|
repeatNTimes: 1,
|
|
91
91
|
disableInfiniteScroll: true
|
|
92
92
|
});
|
|
93
|
-
expect(result).toEqual(["", "", "
|
|
93
|
+
expect(result).toEqual(["", "", "\u20070", "\u20071", "\u20072", "", ""]);
|
|
94
94
|
expect(result).toHaveLength(7);
|
|
95
95
|
});
|
|
96
96
|
it("adds padding with 1 item", () => {
|
|
@@ -100,7 +100,7 @@ describe("generateNumbers", () => {
|
|
|
100
100
|
repeatNTimes: 1,
|
|
101
101
|
disableInfiniteScroll: true
|
|
102
102
|
});
|
|
103
|
-
expect(result).toEqual(["", "
|
|
103
|
+
expect(result).toEqual(["", "\u20070", "\u20071", "\u20072", ""]);
|
|
104
104
|
});
|
|
105
105
|
it("adds padding with 3 items", () => {
|
|
106
106
|
const result = (0, _generateNumbers.generateNumbers)(2, {
|
|
@@ -109,7 +109,7 @@ describe("generateNumbers", () => {
|
|
|
109
109
|
repeatNTimes: 1,
|
|
110
110
|
disableInfiniteScroll: true
|
|
111
111
|
});
|
|
112
|
-
expect(result).toEqual(["", "", "", "
|
|
112
|
+
expect(result).toEqual(["", "", "", "\u20070", "\u20071", "", "", ""]);
|
|
113
113
|
});
|
|
114
114
|
});
|
|
115
115
|
describe("number repetition", () => {
|
|
@@ -120,7 +120,7 @@ describe("generateNumbers", () => {
|
|
|
120
120
|
repeatNTimes: 2,
|
|
121
121
|
disableInfiniteScroll: false
|
|
122
122
|
});
|
|
123
|
-
expect(result).toEqual(["
|
|
123
|
+
expect(result).toEqual(["\u20070", "\u20071", "\u20072", "\u20070", "\u20071", "\u20072"]);
|
|
124
124
|
});
|
|
125
125
|
it("repeats numbers when repeatNTimes is 3", () => {
|
|
126
126
|
const result = (0, _generateNumbers.generateNumbers)(2, {
|
|
@@ -129,7 +129,7 @@ describe("generateNumbers", () => {
|
|
|
129
129
|
repeatNTimes: 3,
|
|
130
130
|
disableInfiniteScroll: false
|
|
131
131
|
});
|
|
132
|
-
expect(result).toEqual(["
|
|
132
|
+
expect(result).toEqual(["\u20070", "\u20071", "\u20070", "\u20071", "\u20070", "\u20071"]);
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
describe("combined options", () => {
|
|
@@ -174,7 +174,7 @@ describe("generate12HourNumbers", () => {
|
|
|
174
174
|
disableInfiniteScroll: false
|
|
175
175
|
});
|
|
176
176
|
expect(result).toHaveLength(24);
|
|
177
|
-
expect(result[0]).toBe("
|
|
177
|
+
expect(result[0]).toBe("12 AM");
|
|
178
178
|
expect(result[11]).toBe("11 AM");
|
|
179
179
|
expect(result[12]).toBe("12 PM");
|
|
180
180
|
expect(result[23]).toBe("11 PM");
|
|
@@ -186,7 +186,7 @@ describe("generate12HourNumbers", () => {
|
|
|
186
186
|
disableInfiniteScroll: false
|
|
187
187
|
});
|
|
188
188
|
expect(result).toHaveLength(12);
|
|
189
|
-
expect(result[0]).toBe("
|
|
189
|
+
expect(result[0]).toBe("12 AM");
|
|
190
190
|
expect(result[5]).toBe("10 AM");
|
|
191
191
|
expect(result[6]).toBe("12 PM");
|
|
192
192
|
expect(result[11]).toBe("10 PM");
|
|
@@ -198,10 +198,10 @@ describe("generate12HourNumbers", () => {
|
|
|
198
198
|
disableInfiniteScroll: false
|
|
199
199
|
});
|
|
200
200
|
expect(result).toHaveLength(8);
|
|
201
|
-
expect(result[0]).toBe("
|
|
202
|
-
expect(result[3]).toBe("
|
|
201
|
+
expect(result[0]).toBe("12 AM");
|
|
202
|
+
expect(result[3]).toBe("\u20079 AM");
|
|
203
203
|
expect(result[4]).toBe("12 PM");
|
|
204
|
-
expect(result[7]).toBe("
|
|
204
|
+
expect(result[7]).toBe("\u20079 PM");
|
|
205
205
|
});
|
|
206
206
|
it("generates hours with 4-hour interval", () => {
|
|
207
207
|
const result = (0, _generateNumbers.generate12HourNumbers)({
|
|
@@ -210,10 +210,10 @@ describe("generate12HourNumbers", () => {
|
|
|
210
210
|
disableInfiniteScroll: false
|
|
211
211
|
});
|
|
212
212
|
expect(result).toHaveLength(6);
|
|
213
|
-
expect(result[0]).toBe("
|
|
214
|
-
expect(result[2]).toBe("
|
|
213
|
+
expect(result[0]).toBe("12 AM");
|
|
214
|
+
expect(result[2]).toBe("\u20078 AM");
|
|
215
215
|
expect(result[3]).toBe("12 PM");
|
|
216
|
-
expect(result[5]).toBe("
|
|
216
|
+
expect(result[5]).toBe("\u20078 PM");
|
|
217
217
|
});
|
|
218
218
|
it("generates hours with 6-hour interval", () => {
|
|
219
219
|
const result = (0, _generateNumbers.generate12HourNumbers)({
|
|
@@ -222,10 +222,10 @@ describe("generate12HourNumbers", () => {
|
|
|
222
222
|
disableInfiniteScroll: false
|
|
223
223
|
});
|
|
224
224
|
expect(result).toHaveLength(4);
|
|
225
|
-
expect(result[0]).toBe("
|
|
226
|
-
expect(result[1]).toBe("
|
|
225
|
+
expect(result[0]).toBe("12 AM");
|
|
226
|
+
expect(result[1]).toBe("\u20076 AM");
|
|
227
227
|
expect(result[2]).toBe("12 PM");
|
|
228
|
-
expect(result[3]).toBe("
|
|
228
|
+
expect(result[3]).toBe("\u20076 PM");
|
|
229
229
|
});
|
|
230
230
|
});
|
|
231
231
|
describe("padding with zeros", () => {
|
|
@@ -236,7 +236,7 @@ describe("generate12HourNumbers", () => {
|
|
|
236
236
|
padNumbersWithZero: true,
|
|
237
237
|
disableInfiniteScroll: false
|
|
238
238
|
});
|
|
239
|
-
expect(result[0]).toBe("
|
|
239
|
+
expect(result[0]).toBe("12 AM");
|
|
240
240
|
expect(result[1]).toBe("01 AM");
|
|
241
241
|
expect(result[9]).toBe("09 AM");
|
|
242
242
|
expect(result[10]).toBe("10 AM");
|
|
@@ -262,10 +262,10 @@ describe("generate12HourNumbers", () => {
|
|
|
262
262
|
});
|
|
263
263
|
expect(result[0]).toBe("");
|
|
264
264
|
expect(result[1]).toBe("");
|
|
265
|
-
expect(result[2]).toBe("
|
|
266
|
-
expect(result[3]).toBe("
|
|
265
|
+
expect(result[2]).toBe("12 AM");
|
|
266
|
+
expect(result[3]).toBe("\u20076 AM");
|
|
267
267
|
expect(result[4]).toBe("12 PM");
|
|
268
|
-
expect(result[5]).toBe("
|
|
268
|
+
expect(result[5]).toBe("\u20076 PM");
|
|
269
269
|
expect(result[6]).toBe("");
|
|
270
270
|
expect(result[7]).toBe("");
|
|
271
271
|
expect(result).toHaveLength(8);
|
|
@@ -276,8 +276,8 @@ describe("generate12HourNumbers", () => {
|
|
|
276
276
|
padWithNItems: 2,
|
|
277
277
|
disableInfiniteScroll: false
|
|
278
278
|
});
|
|
279
|
-
expect(result[0]).toBe("
|
|
280
|
-
expect(result[3]).toBe("
|
|
279
|
+
expect(result[0]).toBe("12 AM");
|
|
280
|
+
expect(result[3]).toBe("\u20076 PM");
|
|
281
281
|
expect(result).toHaveLength(4);
|
|
282
282
|
});
|
|
283
283
|
});
|
|
@@ -290,10 +290,10 @@ describe("generate12HourNumbers", () => {
|
|
|
290
290
|
disableInfiniteScroll: false
|
|
291
291
|
});
|
|
292
292
|
expect(result).toHaveLength(8);
|
|
293
|
-
expect(result[0]).toBe("
|
|
294
|
-
expect(result[3]).toBe("
|
|
295
|
-
expect(result[4]).toBe("
|
|
296
|
-
expect(result[7]).toBe("
|
|
293
|
+
expect(result[0]).toBe("12 AM");
|
|
294
|
+
expect(result[3]).toBe("\u20076 PM");
|
|
295
|
+
expect(result[4]).toBe("12 AM");
|
|
296
|
+
expect(result[7]).toBe("\u20076 PM");
|
|
297
297
|
});
|
|
298
298
|
it("repeats hours when repeatNTimes is 3", () => {
|
|
299
299
|
const result = (0, _generateNumbers.generate12HourNumbers)({
|
|
@@ -303,11 +303,11 @@ describe("generate12HourNumbers", () => {
|
|
|
303
303
|
disableInfiniteScroll: false
|
|
304
304
|
});
|
|
305
305
|
expect(result).toHaveLength(6);
|
|
306
|
-
expect(result[0]).toBe("
|
|
306
|
+
expect(result[0]).toBe("12 AM");
|
|
307
307
|
expect(result[1]).toBe("12 PM");
|
|
308
|
-
expect(result[2]).toBe("
|
|
308
|
+
expect(result[2]).toBe("12 AM");
|
|
309
309
|
expect(result[3]).toBe("12 PM");
|
|
310
|
-
expect(result[4]).toBe("
|
|
310
|
+
expect(result[4]).toBe("12 AM");
|
|
311
311
|
expect(result[5]).toBe("12 PM");
|
|
312
312
|
});
|
|
313
313
|
it("defaults to repeatNTimes of 1 when not provided", () => {
|
|
@@ -327,7 +327,7 @@ describe("generate12HourNumbers", () => {
|
|
|
327
327
|
padNumbersWithZero: true,
|
|
328
328
|
disableInfiniteScroll: true
|
|
329
329
|
});
|
|
330
|
-
expect(result).toEqual(["", "
|
|
330
|
+
expect(result).toEqual(["", "12 AM", "12 PM", ""]);
|
|
331
331
|
});
|
|
332
332
|
it("combines all options", () => {
|
|
333
333
|
const result = (0, _generateNumbers.generate12HourNumbers)({
|
|
@@ -338,11 +338,11 @@ describe("generate12HourNumbers", () => {
|
|
|
338
338
|
disableInfiniteScroll: false
|
|
339
339
|
});
|
|
340
340
|
expect(result).toHaveLength(8);
|
|
341
|
-
expect(result[0]).toBe("
|
|
341
|
+
expect(result[0]).toBe("12 AM");
|
|
342
342
|
expect(result[1]).toBe("06 AM");
|
|
343
343
|
expect(result[2]).toBe("12 PM");
|
|
344
344
|
expect(result[3]).toBe("06 PM");
|
|
345
|
-
expect(result[4]).toBe("
|
|
345
|
+
expect(result[4]).toBe("12 AM");
|
|
346
346
|
expect(result[7]).toBe("06 PM");
|
|
347
347
|
});
|
|
348
348
|
});
|