react-native-timer-picker 2.1.1 → 2.2.1

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 (139) hide show
  1. package/README.md +250 -174
  2. package/dist/commonjs/components/DurationScroll/DurationScroll.js +417 -0
  3. package/dist/commonjs/components/DurationScroll/DurationScroll.js.map +1 -0
  4. package/dist/commonjs/components/DurationScroll/index.js +20 -392
  5. package/dist/commonjs/components/DurationScroll/index.js.map +1 -1
  6. package/dist/commonjs/components/DurationScroll/types.js.map +1 -1
  7. package/dist/commonjs/components/Modal/Modal.js +107 -0
  8. package/dist/commonjs/components/Modal/Modal.js.map +1 -0
  9. package/dist/commonjs/components/Modal/index.js +20 -101
  10. package/dist/commonjs/components/Modal/index.js.map +1 -1
  11. package/dist/commonjs/components/TimerPicker/TimerPicker.js +225 -0
  12. package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -0
  13. package/dist/commonjs/components/TimerPicker/index.js +29 -166
  14. package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
  15. package/dist/commonjs/components/TimerPicker/styles.js.map +1 -1
  16. package/dist/commonjs/components/TimerPicker/types.js.map +1 -1
  17. package/dist/commonjs/components/TimerPickerModal/TimerPickerModal.js +143 -0
  18. package/dist/commonjs/components/TimerPickerModal/TimerPickerModal.js.map +1 -0
  19. package/dist/commonjs/components/TimerPickerModal/index.js +30 -131
  20. package/dist/commonjs/components/TimerPickerModal/index.js.map +1 -1
  21. package/dist/commonjs/components/TimerPickerModal/types.js.map +1 -1
  22. package/dist/commonjs/index.js +9 -13
  23. package/dist/commonjs/index.js.map +1 -1
  24. package/dist/commonjs/tests/DurationScroll.test.js +94 -0
  25. package/dist/commonjs/tests/DurationScroll.test.js.map +1 -1
  26. package/dist/commonjs/tests/Modal.test.js +79 -2
  27. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  28. package/dist/commonjs/tests/TimerPicker.test.js +119 -1
  29. package/dist/commonjs/tests/TimerPicker.test.js.map +1 -1
  30. package/dist/commonjs/tests/TimerPickerModal.test.js +120 -0
  31. package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
  32. package/dist/commonjs/tests/colorToRgba.test.js +176 -0
  33. package/dist/commonjs/tests/colorToRgba.test.js.map +1 -0
  34. package/dist/commonjs/tests/generateNumbers.test.js +350 -0
  35. package/dist/commonjs/tests/generateNumbers.test.js.map +1 -0
  36. package/dist/commonjs/tests/getAdjustedLimit.test.js +324 -0
  37. package/dist/commonjs/tests/getAdjustedLimit.test.js.map +1 -0
  38. package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js +424 -0
  39. package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
  40. package/dist/commonjs/tests/getInitialScrollIndex.test.js +396 -0
  41. package/dist/commonjs/tests/getInitialScrollIndex.test.js.map +1 -0
  42. package/dist/commonjs/tests/getSafeInitialValue.test.js +497 -0
  43. package/dist/commonjs/tests/getSafeInitialValue.test.js.map +1 -0
  44. package/dist/commonjs/tests/padNumber.test.js +301 -0
  45. package/dist/commonjs/tests/padNumber.test.js.map +1 -0
  46. package/dist/commonjs/utils/colorToRgba.js +40 -4
  47. package/dist/commonjs/utils/colorToRgba.js.map +1 -1
  48. package/dist/commonjs/utils/generateNumbers.js +67 -0
  49. package/dist/commonjs/utils/generateNumbers.js.map +1 -1
  50. package/dist/commonjs/utils/getAdjustedLimit.js +28 -3
  51. package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -1
  52. package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js +38 -0
  53. package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
  54. package/dist/commonjs/utils/getInitialScrollIndex.js +38 -0
  55. package/dist/commonjs/utils/getInitialScrollIndex.js.map +1 -1
  56. package/dist/commonjs/utils/getSafeInitialValue.js +28 -0
  57. package/dist/commonjs/utils/getSafeInitialValue.js.map +1 -1
  58. package/dist/commonjs/utils/padNumber.js +25 -0
  59. package/dist/commonjs/utils/padNumber.js.map +1 -1
  60. package/dist/module/components/DurationScroll/DurationScroll.js +410 -0
  61. package/dist/module/components/DurationScroll/DurationScroll.js.map +1 -0
  62. package/dist/module/components/DurationScroll/index.js +2 -390
  63. package/dist/module/components/DurationScroll/index.js.map +1 -1
  64. package/dist/module/components/DurationScroll/types.js.map +1 -1
  65. package/dist/module/components/Modal/Modal.js +99 -0
  66. package/dist/module/components/Modal/Modal.js.map +1 -0
  67. package/dist/module/components/Modal/index.js +2 -98
  68. package/dist/module/components/Modal/index.js.map +1 -1
  69. package/dist/module/components/TimerPicker/TimerPicker.js +217 -0
  70. package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -0
  71. package/dist/module/components/TimerPicker/index.js +3 -166
  72. package/dist/module/components/TimerPicker/index.js.map +1 -1
  73. package/dist/module/components/TimerPicker/styles.js.map +1 -1
  74. package/dist/module/components/TimerPicker/types.js.map +1 -1
  75. package/dist/module/components/TimerPickerModal/TimerPickerModal.js +135 -0
  76. package/dist/module/components/TimerPickerModal/TimerPickerModal.js.map +1 -0
  77. package/dist/module/components/TimerPickerModal/index.js +3 -130
  78. package/dist/module/components/TimerPickerModal/index.js.map +1 -1
  79. package/dist/module/components/TimerPickerModal/types.js.map +1 -1
  80. package/dist/module/index.js +2 -6
  81. package/dist/module/index.js.map +1 -1
  82. package/dist/module/tests/DurationScroll.test.js +94 -0
  83. package/dist/module/tests/DurationScroll.test.js.map +1 -1
  84. package/dist/module/tests/Modal.test.js +80 -3
  85. package/dist/module/tests/Modal.test.js.map +1 -1
  86. package/dist/module/tests/TimerPicker.test.js +119 -1
  87. package/dist/module/tests/TimerPicker.test.js.map +1 -1
  88. package/dist/module/tests/TimerPickerModal.test.js +121 -1
  89. package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
  90. package/dist/module/tests/colorToRgba.test.js +174 -0
  91. package/dist/module/tests/colorToRgba.test.js.map +1 -0
  92. package/dist/module/tests/generateNumbers.test.js +348 -0
  93. package/dist/module/tests/generateNumbers.test.js.map +1 -0
  94. package/dist/module/tests/getAdjustedLimit.test.js +322 -0
  95. package/dist/module/tests/getAdjustedLimit.test.js.map +1 -0
  96. package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js +422 -0
  97. package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
  98. package/dist/module/tests/getInitialScrollIndex.test.js +394 -0
  99. package/dist/module/tests/getInitialScrollIndex.test.js.map +1 -0
  100. package/dist/module/tests/getSafeInitialValue.test.js +495 -0
  101. package/dist/module/tests/getSafeInitialValue.test.js.map +1 -0
  102. package/dist/module/tests/padNumber.test.js +299 -0
  103. package/dist/module/tests/padNumber.test.js.map +1 -0
  104. package/dist/module/utils/colorToRgba.js +40 -4
  105. package/dist/module/utils/colorToRgba.js.map +1 -1
  106. package/dist/module/utils/generateNumbers.js +68 -0
  107. package/dist/module/utils/generateNumbers.js.map +1 -1
  108. package/dist/module/utils/getAdjustedLimit.js +28 -3
  109. package/dist/module/utils/getAdjustedLimit.js.map +1 -1
  110. package/dist/module/utils/getDurationAndIndexFromScrollOffset.js +38 -0
  111. package/dist/module/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
  112. package/dist/module/utils/getInitialScrollIndex.js +38 -0
  113. package/dist/module/utils/getInitialScrollIndex.js.map +1 -1
  114. package/dist/module/utils/getSafeInitialValue.js +28 -0
  115. package/dist/module/utils/getSafeInitialValue.js.map +1 -1
  116. package/dist/module/utils/padNumber.js +25 -0
  117. package/dist/module/utils/padNumber.js.map +1 -1
  118. package/dist/typescript/components/DurationScroll/DurationScroll.d.ts +4 -0
  119. package/dist/typescript/components/DurationScroll/index.d.ts +2 -4
  120. package/dist/typescript/components/DurationScroll/types.d.ts +13 -9
  121. package/dist/typescript/components/Modal/Modal.d.ts +5 -0
  122. package/dist/typescript/components/Modal/index.d.ts +2 -5
  123. package/dist/typescript/components/TimerPicker/TimerPicker.d.ts +4 -0
  124. package/dist/typescript/components/TimerPicker/index.d.ts +3 -4
  125. package/dist/typescript/components/TimerPicker/styles.d.ts +922 -771
  126. package/dist/typescript/components/TimerPicker/types.d.ts +26 -10
  127. package/dist/typescript/components/TimerPickerModal/TimerPickerModal.d.ts +4 -0
  128. package/dist/typescript/components/TimerPickerModal/index.d.ts +3 -4
  129. package/dist/typescript/components/TimerPickerModal/styles.d.ts +570 -474
  130. package/dist/typescript/components/TimerPickerModal/types.d.ts +8 -5
  131. package/dist/typescript/index.d.ts +2 -6
  132. package/dist/typescript/utils/colorToRgba.d.ts +34 -0
  133. package/dist/typescript/utils/generateNumbers.d.ts +66 -0
  134. package/dist/typescript/utils/getAdjustedLimit.d.ts +27 -2
  135. package/dist/typescript/utils/getDurationAndIndexFromScrollOffset.d.ts +38 -0
  136. package/dist/typescript/utils/getInitialScrollIndex.d.ts +38 -0
  137. package/dist/typescript/utils/getSafeInitialValue.d.ts +29 -0
  138. package/dist/typescript/utils/padNumber.d.ts +25 -0
  139. package/package.json +12 -30
@@ -0,0 +1,495 @@
1
+ import { getSafeInitialValue } from "../utils/getSafeInitialValue";
2
+ describe("getSafeInitialValue", () => {
3
+ describe("valid values", () => {
4
+ it("returns all values when all are valid", () => {
5
+ const result = getSafeInitialValue({
6
+ days: 5,
7
+ hours: 10,
8
+ minutes: 30,
9
+ seconds: 45
10
+ });
11
+ expect(result).toEqual({
12
+ days: 5,
13
+ hours: 10,
14
+ minutes: 30,
15
+ seconds: 45
16
+ });
17
+ });
18
+ it("handles zero values", () => {
19
+ const result = getSafeInitialValue({
20
+ days: 0,
21
+ hours: 0,
22
+ minutes: 0,
23
+ seconds: 0
24
+ });
25
+ expect(result).toEqual({
26
+ days: 0,
27
+ hours: 0,
28
+ minutes: 0,
29
+ seconds: 0
30
+ });
31
+ });
32
+ it("handles large values", () => {
33
+ const result = getSafeInitialValue({
34
+ days: 365,
35
+ hours: 23,
36
+ minutes: 59,
37
+ seconds: 59
38
+ });
39
+ expect(result).toEqual({
40
+ days: 365,
41
+ hours: 23,
42
+ minutes: 59,
43
+ seconds: 59
44
+ });
45
+ });
46
+ it("handles negative values as valid numbers", () => {
47
+ const result = getSafeInitialValue({
48
+ days: -5,
49
+ hours: -2,
50
+ minutes: -30,
51
+ seconds: -15
52
+ });
53
+ expect(result).toEqual({
54
+ days: -5,
55
+ hours: -2,
56
+ minutes: -30,
57
+ seconds: -15
58
+ });
59
+ });
60
+ it("handles decimal values", () => {
61
+ const result = getSafeInitialValue({
62
+ days: 1.5,
63
+ hours: 2.7,
64
+ minutes: 30.3,
65
+ seconds: 45.9
66
+ });
67
+ expect(result).toEqual({
68
+ days: 1.5,
69
+ hours: 2.7,
70
+ minutes: 30.3,
71
+ seconds: 45.9
72
+ });
73
+ });
74
+ });
75
+ describe("undefined input", () => {
76
+ it("returns all zeros when input is undefined", () => {
77
+ const result = getSafeInitialValue(undefined);
78
+ expect(result).toEqual({
79
+ days: 0,
80
+ hours: 0,
81
+ minutes: 0,
82
+ seconds: 0
83
+ });
84
+ });
85
+ });
86
+ describe("partial values", () => {
87
+ it("defaults missing days to 0", () => {
88
+ const result = getSafeInitialValue({
89
+ hours: 10,
90
+ minutes: 30,
91
+ seconds: 45
92
+ });
93
+ expect(result).toEqual({
94
+ days: 0,
95
+ hours: 10,
96
+ minutes: 30,
97
+ seconds: 45
98
+ });
99
+ });
100
+ it("defaults missing hours to 0", () => {
101
+ const result = getSafeInitialValue({
102
+ days: 5,
103
+ minutes: 30,
104
+ seconds: 45
105
+ });
106
+ expect(result).toEqual({
107
+ days: 5,
108
+ hours: 0,
109
+ minutes: 30,
110
+ seconds: 45
111
+ });
112
+ });
113
+ it("defaults missing minutes to 0", () => {
114
+ const result = getSafeInitialValue({
115
+ days: 5,
116
+ hours: 10,
117
+ seconds: 45
118
+ });
119
+ expect(result).toEqual({
120
+ days: 5,
121
+ hours: 10,
122
+ minutes: 0,
123
+ seconds: 45
124
+ });
125
+ });
126
+ it("defaults missing seconds to 0", () => {
127
+ const result = getSafeInitialValue({
128
+ days: 5,
129
+ hours: 10,
130
+ minutes: 30
131
+ });
132
+ expect(result).toEqual({
133
+ days: 5,
134
+ hours: 10,
135
+ minutes: 30,
136
+ seconds: 0
137
+ });
138
+ });
139
+ it("handles only days provided", () => {
140
+ const result = getSafeInitialValue({
141
+ days: 7
142
+ });
143
+ expect(result).toEqual({
144
+ days: 7,
145
+ hours: 0,
146
+ minutes: 0,
147
+ seconds: 0
148
+ });
149
+ });
150
+ it("handles only hours provided", () => {
151
+ const result = getSafeInitialValue({
152
+ hours: 12
153
+ });
154
+ expect(result).toEqual({
155
+ days: 0,
156
+ hours: 12,
157
+ minutes: 0,
158
+ seconds: 0
159
+ });
160
+ });
161
+ it("handles only minutes provided", () => {
162
+ const result = getSafeInitialValue({
163
+ minutes: 45
164
+ });
165
+ expect(result).toEqual({
166
+ days: 0,
167
+ hours: 0,
168
+ minutes: 45,
169
+ seconds: 0
170
+ });
171
+ });
172
+ it("handles only seconds provided", () => {
173
+ const result = getSafeInitialValue({
174
+ seconds: 30
175
+ });
176
+ expect(result).toEqual({
177
+ days: 0,
178
+ hours: 0,
179
+ minutes: 0,
180
+ seconds: 30
181
+ });
182
+ });
183
+ it("handles empty object", () => {
184
+ const result = getSafeInitialValue({});
185
+ expect(result).toEqual({
186
+ days: 0,
187
+ hours: 0,
188
+ minutes: 0,
189
+ seconds: 0
190
+ });
191
+ });
192
+ });
193
+ describe("invalid values - NaN", () => {
194
+ it("defaults days to 0 when NaN", () => {
195
+ const result = getSafeInitialValue({
196
+ days: NaN,
197
+ hours: 10,
198
+ minutes: 30,
199
+ seconds: 45
200
+ });
201
+ expect(result).toEqual({
202
+ days: 0,
203
+ hours: 10,
204
+ minutes: 30,
205
+ seconds: 45
206
+ });
207
+ });
208
+ it("defaults hours to 0 when NaN", () => {
209
+ const result = getSafeInitialValue({
210
+ days: 5,
211
+ hours: NaN,
212
+ minutes: 30,
213
+ seconds: 45
214
+ });
215
+ expect(result).toEqual({
216
+ days: 5,
217
+ hours: 0,
218
+ minutes: 30,
219
+ seconds: 45
220
+ });
221
+ });
222
+ it("defaults minutes to 0 when NaN", () => {
223
+ const result = getSafeInitialValue({
224
+ days: 5,
225
+ hours: 10,
226
+ minutes: NaN,
227
+ seconds: 45
228
+ });
229
+ expect(result).toEqual({
230
+ days: 5,
231
+ hours: 10,
232
+ minutes: 0,
233
+ seconds: 45
234
+ });
235
+ });
236
+ it("defaults seconds to 0 when NaN", () => {
237
+ const result = getSafeInitialValue({
238
+ days: 5,
239
+ hours: 10,
240
+ minutes: 30,
241
+ seconds: NaN
242
+ });
243
+ expect(result).toEqual({
244
+ days: 5,
245
+ hours: 10,
246
+ minutes: 30,
247
+ seconds: 0
248
+ });
249
+ });
250
+ it("defaults all to 0 when all are NaN", () => {
251
+ const result = getSafeInitialValue({
252
+ days: NaN,
253
+ hours: NaN,
254
+ minutes: NaN,
255
+ seconds: NaN
256
+ });
257
+ expect(result).toEqual({
258
+ days: 0,
259
+ hours: 0,
260
+ minutes: 0,
261
+ seconds: 0
262
+ });
263
+ });
264
+ });
265
+ describe("invalid values - wrong types", () => {
266
+ it("defaults days to 0 when string", () => {
267
+ const result = getSafeInitialValue({
268
+ days: "5",
269
+ hours: 10,
270
+ minutes: 30,
271
+ seconds: 45
272
+ });
273
+ expect(result).toEqual({
274
+ days: 0,
275
+ hours: 10,
276
+ minutes: 30,
277
+ seconds: 45
278
+ });
279
+ });
280
+ it("defaults hours to 0 when string", () => {
281
+ const result = getSafeInitialValue({
282
+ days: 5,
283
+ hours: "10",
284
+ minutes: 30,
285
+ seconds: 45
286
+ });
287
+ expect(result).toEqual({
288
+ days: 5,
289
+ hours: 0,
290
+ minutes: 30,
291
+ seconds: 45
292
+ });
293
+ });
294
+ it("defaults minutes to 0 when boolean", () => {
295
+ const result = getSafeInitialValue({
296
+ days: 5,
297
+ hours: 10,
298
+ minutes: true,
299
+ seconds: 45
300
+ });
301
+ expect(result).toEqual({
302
+ days: 5,
303
+ hours: 10,
304
+ minutes: 0,
305
+ seconds: 45
306
+ });
307
+ });
308
+ it("defaults seconds to 0 when null", () => {
309
+ const result = getSafeInitialValue({
310
+ days: 5,
311
+ hours: 10,
312
+ minutes: 30,
313
+ seconds: null
314
+ });
315
+ expect(result).toEqual({
316
+ days: 5,
317
+ hours: 10,
318
+ minutes: 30,
319
+ seconds: 0
320
+ });
321
+ });
322
+ it("defaults all to 0 when all are invalid types", () => {
323
+ const result = getSafeInitialValue({
324
+ days: "invalid",
325
+ hours: true,
326
+ minutes: null,
327
+ seconds: undefined
328
+ });
329
+ expect(result).toEqual({
330
+ days: 0,
331
+ hours: 0,
332
+ minutes: 0,
333
+ seconds: 0
334
+ });
335
+ });
336
+ it("defaults values to 0 when objects", () => {
337
+ const result = getSafeInitialValue({
338
+ days: {},
339
+ hours: [],
340
+ minutes: {
341
+ value: 30
342
+ },
343
+ seconds: [45]
344
+ });
345
+ expect(result).toEqual({
346
+ days: 0,
347
+ hours: 0,
348
+ minutes: 0,
349
+ seconds: 0
350
+ });
351
+ });
352
+ });
353
+ describe("mixed valid and invalid values", () => {
354
+ it("handles mix of valid and NaN values", () => {
355
+ const result = getSafeInitialValue({
356
+ days: 5,
357
+ hours: NaN,
358
+ minutes: 30,
359
+ seconds: NaN
360
+ });
361
+ expect(result).toEqual({
362
+ days: 5,
363
+ hours: 0,
364
+ minutes: 30,
365
+ seconds: 0
366
+ });
367
+ });
368
+ it("handles mix of valid and undefined values", () => {
369
+ const result = getSafeInitialValue({
370
+ days: 5,
371
+ minutes: 30
372
+ });
373
+ expect(result).toEqual({
374
+ days: 5,
375
+ hours: 0,
376
+ minutes: 30,
377
+ seconds: 0
378
+ });
379
+ });
380
+ it("handles mix of valid and invalid type values", () => {
381
+ const result = getSafeInitialValue({
382
+ days: 5,
383
+ hours: "invalid",
384
+ minutes: 30,
385
+ seconds: null
386
+ });
387
+ expect(result).toEqual({
388
+ days: 5,
389
+ hours: 0,
390
+ minutes: 30,
391
+ seconds: 0
392
+ });
393
+ });
394
+ });
395
+ describe("special number values", () => {
396
+ it("handles Infinity", () => {
397
+ const result = getSafeInitialValue({
398
+ days: Infinity,
399
+ hours: -Infinity,
400
+ minutes: 30,
401
+ seconds: 45
402
+ });
403
+ expect(result).toEqual({
404
+ days: Infinity,
405
+ hours: -Infinity,
406
+ minutes: 30,
407
+ seconds: 45
408
+ });
409
+ });
410
+ it("handles very small numbers", () => {
411
+ const result = getSafeInitialValue({
412
+ days: 0.00001,
413
+ hours: 0.00002,
414
+ minutes: 0.00003,
415
+ seconds: 0.00004
416
+ });
417
+ expect(result).toEqual({
418
+ days: 0.00001,
419
+ hours: 0.00002,
420
+ minutes: 0.00003,
421
+ seconds: 0.00004
422
+ });
423
+ });
424
+ it("handles very large numbers", () => {
425
+ const result = getSafeInitialValue({
426
+ days: 999999,
427
+ hours: 999999,
428
+ minutes: 999999,
429
+ seconds: 999999
430
+ });
431
+ expect(result).toEqual({
432
+ days: 999999,
433
+ hours: 999999,
434
+ minutes: 999999,
435
+ seconds: 999999
436
+ });
437
+ });
438
+ });
439
+ describe("real-world scenarios", () => {
440
+ it("handles typical timer value", () => {
441
+ const result = getSafeInitialValue({
442
+ hours: 2,
443
+ minutes: 30,
444
+ seconds: 0
445
+ });
446
+ expect(result).toEqual({
447
+ days: 0,
448
+ hours: 2,
449
+ minutes: 30,
450
+ seconds: 0
451
+ });
452
+ });
453
+ it("handles countdown timer", () => {
454
+ const result = getSafeInitialValue({
455
+ minutes: 5,
456
+ seconds: 0
457
+ });
458
+ expect(result).toEqual({
459
+ days: 0,
460
+ hours: 0,
461
+ minutes: 5,
462
+ seconds: 0
463
+ });
464
+ });
465
+ it("handles duration with days", () => {
466
+ const result = getSafeInitialValue({
467
+ days: 7,
468
+ hours: 12,
469
+ minutes: 30,
470
+ seconds: 45
471
+ });
472
+ expect(result).toEqual({
473
+ days: 7,
474
+ hours: 12,
475
+ minutes: 30,
476
+ seconds: 45
477
+ });
478
+ });
479
+ it("handles invalid user input gracefully", () => {
480
+ const result = getSafeInitialValue({
481
+ days: parseInt("abc"),
482
+ hours: parseInt(""),
483
+ minutes: parseFloat("not a number"),
484
+ seconds: 30
485
+ });
486
+ expect(result).toEqual({
487
+ days: 0,
488
+ hours: 0,
489
+ minutes: 0,
490
+ seconds: 30
491
+ });
492
+ });
493
+ });
494
+ });
495
+ //# sourceMappingURL=getSafeInitialValue.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getSafeInitialValue","describe","it","result","days","hours","minutes","seconds","expect","toEqual","undefined","NaN","value","Infinity","parseInt","parseFloat"],"sources":["getSafeInitialValue.test.ts"],"sourcesContent":["import { getSafeInitialValue } from \"../utils/getSafeInitialValue\";\n\ndescribe(\"getSafeInitialValue\", () => {\n describe(\"valid values\", () => {\n it(\"returns all values when all are valid\", () => {\n const result = getSafeInitialValue({\n days: 5,\n hours: 10,\n minutes: 30,\n seconds: 45,\n });\n expect(result).toEqual({\n days: 5,\n hours: 10,\n minutes: 30,\n seconds: 45,\n });\n });\n\n it(\"handles zero values\", () => {\n const result = getSafeInitialValue({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n expect(result).toEqual({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n });\n\n it(\"handles large values\", () => {\n const result = getSafeInitialValue({\n days: 365,\n hours: 23,\n minutes: 59,\n seconds: 59,\n });\n expect(result).toEqual({\n days: 365,\n hours: 23,\n minutes: 59,\n seconds: 59,\n });\n });\n\n it(\"handles negative values as valid numbers\", () => {\n const result = getSafeInitialValue({\n days: -5,\n hours: -2,\n minutes: -30,\n seconds: -15,\n });\n expect(result).toEqual({\n days: -5,\n hours: -2,\n minutes: -30,\n seconds: -15,\n });\n });\n\n it(\"handles decimal values\", () => {\n const result = getSafeInitialValue({\n days: 1.5,\n hours: 2.7,\n minutes: 30.3,\n seconds: 45.9,\n });\n expect(result).toEqual({\n days: 1.5,\n hours: 2.7,\n minutes: 30.3,\n seconds: 45.9,\n });\n });\n });\n\n describe(\"undefined input\", () => {\n it(\"returns all zeros when input is undefined\", () => {\n const result = getSafeInitialValue(undefined);\n expect(result).toEqual({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n });\n });\n\n describe(\"partial values\", () => {\n it(\"defaults missing days to 0\", () => {\n const result = getSafeInitialValue({\n hours: 10,\n minutes: 30,\n seconds: 45,\n });\n expect(result).toEqual({\n days: 0,\n hours: 10,\n minutes: 30,\n seconds: 45,\n });\n });\n\n it(\"defaults missing hours to 0\", () => {\n const result = getSafeInitialValue({\n days: 5,\n minutes: 30,\n seconds: 45,\n });\n expect(result).toEqual({\n days: 5,\n hours: 0,\n minutes: 30,\n seconds: 45,\n });\n });\n\n it(\"defaults missing minutes to 0\", () => {\n const result = getSafeInitialValue({\n days: 5,\n hours: 10,\n seconds: 45,\n });\n expect(result).toEqual({\n days: 5,\n hours: 10,\n minutes: 0,\n seconds: 45,\n });\n });\n\n it(\"defaults missing seconds to 0\", () => {\n const result = getSafeInitialValue({\n days: 5,\n hours: 10,\n minutes: 30,\n });\n expect(result).toEqual({\n days: 5,\n hours: 10,\n minutes: 30,\n seconds: 0,\n });\n });\n\n it(\"handles only days provided\", () => {\n const result = getSafeInitialValue({ days: 7 });\n expect(result).toEqual({\n days: 7,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n });\n\n it(\"handles only hours provided\", () => {\n const result = getSafeInitialValue({ hours: 12 });\n expect(result).toEqual({\n days: 0,\n hours: 12,\n minutes: 0,\n seconds: 0,\n });\n });\n\n it(\"handles only minutes provided\", () => {\n const result = getSafeInitialValue({ minutes: 45 });\n expect(result).toEqual({\n days: 0,\n hours: 0,\n minutes: 45,\n seconds: 0,\n });\n });\n\n it(\"handles only seconds provided\", () => {\n const result = getSafeInitialValue({ seconds: 30 });\n expect(result).toEqual({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 30,\n });\n });\n\n it(\"handles empty object\", () => {\n const result = getSafeInitialValue({});\n expect(result).toEqual({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n });\n });\n\n describe(\"invalid values - NaN\", () => {\n it(\"defaults days to 0 when NaN\", () => {\n const result = getSafeInitialValue({\n days: NaN,\n hours: 10,\n minutes: 30,\n seconds: 45,\n });\n expect(result).toEqual({\n days: 0,\n hours: 10,\n minutes: 30,\n seconds: 45,\n });\n });\n\n it(\"defaults hours to 0 when NaN\", () => {\n const result = getSafeInitialValue({\n days: 5,\n hours: NaN,\n minutes: 30,\n seconds: 45,\n });\n expect(result).toEqual({\n days: 5,\n hours: 0,\n minutes: 30,\n seconds: 45,\n });\n });\n\n it(\"defaults minutes to 0 when NaN\", () => {\n const result = getSafeInitialValue({\n days: 5,\n hours: 10,\n minutes: NaN,\n seconds: 45,\n });\n expect(result).toEqual({\n days: 5,\n hours: 10,\n minutes: 0,\n seconds: 45,\n });\n });\n\n it(\"defaults seconds to 0 when NaN\", () => {\n const result = getSafeInitialValue({\n days: 5,\n hours: 10,\n minutes: 30,\n seconds: NaN,\n });\n expect(result).toEqual({\n days: 5,\n hours: 10,\n minutes: 30,\n seconds: 0,\n });\n });\n\n it(\"defaults all to 0 when all are NaN\", () => {\n const result = getSafeInitialValue({\n days: NaN,\n hours: NaN,\n minutes: NaN,\n seconds: NaN,\n });\n expect(result).toEqual({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n });\n });\n\n describe(\"invalid values - wrong types\", () => {\n it(\"defaults days to 0 when string\", () => {\n const result = getSafeInitialValue({\n days: \"5\" as any,\n hours: 10,\n minutes: 30,\n seconds: 45,\n });\n expect(result).toEqual({\n days: 0,\n hours: 10,\n minutes: 30,\n seconds: 45,\n });\n });\n\n it(\"defaults hours to 0 when string\", () => {\n const result = getSafeInitialValue({\n days: 5,\n hours: \"10\" as any,\n minutes: 30,\n seconds: 45,\n });\n expect(result).toEqual({\n days: 5,\n hours: 0,\n minutes: 30,\n seconds: 45,\n });\n });\n\n it(\"defaults minutes to 0 when boolean\", () => {\n const result = getSafeInitialValue({\n days: 5,\n hours: 10,\n minutes: true as any,\n seconds: 45,\n });\n expect(result).toEqual({\n days: 5,\n hours: 10,\n minutes: 0,\n seconds: 45,\n });\n });\n\n it(\"defaults seconds to 0 when null\", () => {\n const result = getSafeInitialValue({\n days: 5,\n hours: 10,\n minutes: 30,\n seconds: null as any,\n });\n expect(result).toEqual({\n days: 5,\n hours: 10,\n minutes: 30,\n seconds: 0,\n });\n });\n\n it(\"defaults all to 0 when all are invalid types\", () => {\n const result = getSafeInitialValue({\n days: \"invalid\" as any,\n hours: true as any,\n minutes: null as any,\n seconds: undefined as any,\n });\n expect(result).toEqual({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n });\n\n it(\"defaults values to 0 when objects\", () => {\n const result = getSafeInitialValue({\n days: {} as any,\n hours: [] as any,\n minutes: { value: 30 } as any,\n seconds: [45] as any,\n });\n expect(result).toEqual({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 0,\n });\n });\n });\n\n describe(\"mixed valid and invalid values\", () => {\n it(\"handles mix of valid and NaN values\", () => {\n const result = getSafeInitialValue({\n days: 5,\n hours: NaN,\n minutes: 30,\n seconds: NaN,\n });\n expect(result).toEqual({\n days: 5,\n hours: 0,\n minutes: 30,\n seconds: 0,\n });\n });\n\n it(\"handles mix of valid and undefined values\", () => {\n const result = getSafeInitialValue({\n days: 5,\n minutes: 30,\n });\n expect(result).toEqual({\n days: 5,\n hours: 0,\n minutes: 30,\n seconds: 0,\n });\n });\n\n it(\"handles mix of valid and invalid type values\", () => {\n const result = getSafeInitialValue({\n days: 5,\n hours: \"invalid\" as any,\n minutes: 30,\n seconds: null as any,\n });\n expect(result).toEqual({\n days: 5,\n hours: 0,\n minutes: 30,\n seconds: 0,\n });\n });\n });\n\n describe(\"special number values\", () => {\n it(\"handles Infinity\", () => {\n const result = getSafeInitialValue({\n days: Infinity,\n hours: -Infinity,\n minutes: 30,\n seconds: 45,\n });\n expect(result).toEqual({\n days: Infinity,\n hours: -Infinity,\n minutes: 30,\n seconds: 45,\n });\n });\n\n it(\"handles very small numbers\", () => {\n const result = getSafeInitialValue({\n days: 0.00001,\n hours: 0.00002,\n minutes: 0.00003,\n seconds: 0.00004,\n });\n expect(result).toEqual({\n days: 0.00001,\n hours: 0.00002,\n minutes: 0.00003,\n seconds: 0.00004,\n });\n });\n\n it(\"handles very large numbers\", () => {\n const result = getSafeInitialValue({\n days: 999999,\n hours: 999999,\n minutes: 999999,\n seconds: 999999,\n });\n expect(result).toEqual({\n days: 999999,\n hours: 999999,\n minutes: 999999,\n seconds: 999999,\n });\n });\n });\n\n describe(\"real-world scenarios\", () => {\n it(\"handles typical timer value\", () => {\n const result = getSafeInitialValue({\n hours: 2,\n minutes: 30,\n seconds: 0,\n });\n expect(result).toEqual({\n days: 0,\n hours: 2,\n minutes: 30,\n seconds: 0,\n });\n });\n\n it(\"handles countdown timer\", () => {\n const result = getSafeInitialValue({\n minutes: 5,\n seconds: 0,\n });\n expect(result).toEqual({\n days: 0,\n hours: 0,\n minutes: 5,\n seconds: 0,\n });\n });\n\n it(\"handles duration with days\", () => {\n const result = getSafeInitialValue({\n days: 7,\n hours: 12,\n minutes: 30,\n seconds: 45,\n });\n expect(result).toEqual({\n days: 7,\n hours: 12,\n minutes: 30,\n seconds: 45,\n });\n });\n\n it(\"handles invalid user input gracefully\", () => {\n const result = getSafeInitialValue({\n days: parseInt(\"abc\"),\n hours: parseInt(\"\"),\n minutes: parseFloat(\"not a number\"),\n seconds: 30,\n });\n expect(result).toEqual({\n days: 0,\n hours: 0,\n minutes: 0,\n seconds: 30,\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}