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.
Files changed (58) hide show
  1. package/README.md +108 -116
  2. package/dist/commonjs/components/DurationScroll/DurationScroll.js +15 -27
  3. package/dist/commonjs/components/DurationScroll/DurationScroll.js.map +1 -1
  4. package/dist/commonjs/components/DurationScroll/types.js.map +1 -1
  5. package/dist/commonjs/components/PickerItem/PickerItem.js +47 -0
  6. package/dist/commonjs/components/PickerItem/PickerItem.js.map +1 -0
  7. package/dist/commonjs/components/PickerItem/index.js +14 -0
  8. package/dist/commonjs/components/PickerItem/index.js.map +1 -0
  9. package/dist/commonjs/components/TimerPicker/TimerPicker.js +11 -7
  10. package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -1
  11. package/dist/commonjs/components/TimerPicker/styles.js +45 -18
  12. package/dist/commonjs/components/TimerPicker/styles.js.map +1 -1
  13. package/dist/commonjs/components/TimerPickerModal/styles.js +4 -15
  14. package/dist/commonjs/components/TimerPickerModal/styles.js.map +1 -1
  15. package/dist/commonjs/tests/Modal.test.js +2 -22
  16. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  17. package/dist/commonjs/tests/TimerPickerModal.test.js +53 -53
  18. package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
  19. package/dist/commonjs/tests/generateNumbers.test.js +35 -35
  20. package/dist/commonjs/tests/generateNumbers.test.js.map +1 -1
  21. package/dist/commonjs/tests/padNumber.test.js +18 -18
  22. package/dist/commonjs/tests/padNumber.test.js.map +1 -1
  23. package/dist/commonjs/utils/generateNumbers.js +4 -3
  24. package/dist/commonjs/utils/generateNumbers.js.map +1 -1
  25. package/dist/commonjs/utils/padNumber.js +7 -7
  26. package/dist/commonjs/utils/padNumber.js.map +1 -1
  27. package/dist/module/components/DurationScroll/DurationScroll.js +14 -27
  28. package/dist/module/components/DurationScroll/DurationScroll.js.map +1 -1
  29. package/dist/module/components/DurationScroll/types.js.map +1 -1
  30. package/dist/module/components/PickerItem/PickerItem.js +40 -0
  31. package/dist/module/components/PickerItem/PickerItem.js.map +1 -0
  32. package/dist/module/components/PickerItem/index.js +2 -0
  33. package/dist/module/components/PickerItem/index.js.map +1 -0
  34. package/dist/module/components/TimerPicker/TimerPicker.js +11 -7
  35. package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -1
  36. package/dist/module/components/TimerPicker/styles.js +45 -18
  37. package/dist/module/components/TimerPicker/styles.js.map +1 -1
  38. package/dist/module/components/TimerPickerModal/styles.js +4 -15
  39. package/dist/module/components/TimerPickerModal/styles.js.map +1 -1
  40. package/dist/module/tests/Modal.test.js +2 -22
  41. package/dist/module/tests/Modal.test.js.map +1 -1
  42. package/dist/module/tests/TimerPickerModal.test.js +9 -9
  43. package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
  44. package/dist/module/tests/generateNumbers.test.js +35 -35
  45. package/dist/module/tests/generateNumbers.test.js.map +1 -1
  46. package/dist/module/tests/padNumber.test.js +18 -18
  47. package/dist/module/tests/padNumber.test.js.map +1 -1
  48. package/dist/module/utils/generateNumbers.js +4 -3
  49. package/dist/module/utils/generateNumbers.js.map +1 -1
  50. package/dist/module/utils/padNumber.js +7 -7
  51. package/dist/module/utils/padNumber.js.map +1 -1
  52. package/dist/typescript/components/DurationScroll/types.d.ts +1 -0
  53. package/dist/typescript/components/PickerItem/PickerItem.d.ts +15 -0
  54. package/dist/typescript/components/PickerItem/index.d.ts +1 -0
  55. package/dist/typescript/components/TimerPicker/styles.d.ts +153 -25
  56. package/dist/typescript/components/TimerPickerModal/styles.d.ts +256 -254
  57. package/dist/typescript/utils/padNumber.d.ts +1 -1
  58. 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("@testing-library/react-native");
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, _reactNative2.cleanup)();
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
36
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
37
37
  const confirmButton = getByText("Confirm");
38
- _reactNative2.fireEvent.press(confirmButton);
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
44
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
45
45
  const cancelButton = getByText("Cancel");
46
- _reactNative2.fireEvent.press(cancelButton);
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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
- _reactNative2.fireEvent.press(cancelButton);
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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
- _reactNative2.fireEvent.press(overlay);
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
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
- _reactNative2.fireEvent.press(confirmButton);
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
96
- confirmButtonText: "OK",
97
- cancelButtonText: "Dismiss"
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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
- _reactNative2.fireEvent.press(overlay);
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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
- _reactNative2.fireEvent.press(cancelButton);
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
180
- modalTitle: "Pick Duration",
181
- confirmButtonText: "Done",
179
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
182
180
  cancelButtonText: "Close",
183
- hourLabel: "h",
184
- minuteLabel: "m",
185
- secondLabel: "s",
181
+ confirmButtonText: "Done",
182
+ hideDays: false,
186
183
  hideHours: false,
187
184
  hideMinutes: false,
188
185
  hideSeconds: false,
189
- hideDays: false
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(_reactNative.TouchableOpacity, {
196
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
197
197
  onPress: onPress,
198
198
  testID: "custom-cancel-button"
199
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Cancel"));
199
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Cancel"));
200
200
  const {
201
201
  getByTestId
202
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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(_reactNative.TouchableOpacity, {
210
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
211
211
  onPress: onPress,
212
212
  testID: "custom-confirm-button"
213
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Confirm"));
213
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Confirm"));
214
214
  const {
215
215
  getByTestId
216
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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(_reactNative.TouchableOpacity, {
224
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
225
225
  onPress: onPress,
226
226
  testID: "custom-cancel-button"
227
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Cancel"));
227
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Cancel"));
228
228
  const {
229
229
  getByTestId
230
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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
- _reactNative2.fireEvent.press(customCancelButton);
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(_reactNative.TouchableOpacity, {
240
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
241
241
  onPress: onPress,
242
242
  testID: "custom-confirm-button"
243
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Confirm"));
243
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Confirm"));
244
244
  const {
245
245
  getByTestId
246
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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
- _reactNative2.fireEvent.press(customConfirmButton);
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(_reactNative.TouchableOpacity, {
256
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
257
257
  onPress: onPress,
258
258
  testID: "custom-cancel-button"
259
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Cancel"));
259
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Cancel"));
260
260
  const CustomConfirmButton = ({
261
261
  onPress
262
- }) => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
262
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
263
263
  onPress: onPress,
264
264
  testID: "custom-confirm-button"
265
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Confirm"));
265
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Confirm"));
266
266
  const {
267
267
  getByTestId
268
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
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":"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","ignoreList":[]}
@@ -19,7 +19,7 @@ describe("generateNumbers", () => {
19
19
  repeatNTimes: 1,
20
20
  disableInfiniteScroll: true
21
21
  });
22
- expect(result).toEqual([" 0", " 2", " 4", " 6", " 8"]);
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([" 0", " 5", "10", "15"]);
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([" 0", " 1", " 2", " 3", " 4"]);
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(["", "", " 0", " 1", " 2", "", ""]);
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(["", " 0", " 1", " 2", ""]);
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(["", "", "", " 0", " 1", "", "", ""]);
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([" 0", " 1", " 2", " 0", " 1", " 2"]);
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([" 0", " 1", " 0", " 1", " 0", " 1"]);
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(" 0 AM");
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(" 0 AM");
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(" 0 AM");
202
- expect(result[3]).toBe(" 9 AM");
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(" 9 PM");
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(" 0 AM");
214
- expect(result[2]).toBe(" 8 AM");
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(" 8 PM");
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(" 0 AM");
226
- expect(result[1]).toBe(" 6 AM");
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(" 6 PM");
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("00 AM");
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(" 0 AM");
266
- expect(result[3]).toBe(" 6 AM");
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(" 6 PM");
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(" 0 AM");
280
- expect(result[3]).toBe(" 6 PM");
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(" 0 AM");
294
- expect(result[3]).toBe(" 6 PM");
295
- expect(result[4]).toBe(" 0 AM");
296
- expect(result[7]).toBe(" 6 PM");
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(" 0 AM");
306
+ expect(result[0]).toBe("12 AM");
307
307
  expect(result[1]).toBe("12 PM");
308
- expect(result[2]).toBe(" 0 AM");
308
+ expect(result[2]).toBe("12 AM");
309
309
  expect(result[3]).toBe("12 PM");
310
- expect(result[4]).toBe(" 0 AM");
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(["", "00 AM", "12 PM", ""]);
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("00 AM");
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("00 AM");
345
+ expect(result[4]).toBe("12 AM");
346
346
  expect(result[7]).toBe("06 PM");
347
347
  });
348
348
  });