react-native-timer-picker 2.2.0 → 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 (56) hide show
  1. package/README.md +35 -34
  2. package/dist/commonjs/tests/DurationScroll.test.js +94 -0
  3. package/dist/commonjs/tests/DurationScroll.test.js.map +1 -1
  4. package/dist/commonjs/tests/Modal.test.js +79 -2
  5. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  6. package/dist/commonjs/tests/TimerPicker.test.js +115 -0
  7. package/dist/commonjs/tests/TimerPicker.test.js.map +1 -1
  8. package/dist/commonjs/tests/TimerPickerModal.test.js +120 -0
  9. package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
  10. package/dist/commonjs/tests/colorToRgba.test.js +176 -0
  11. package/dist/commonjs/tests/colorToRgba.test.js.map +1 -0
  12. package/dist/commonjs/tests/generateNumbers.test.js +350 -0
  13. package/dist/commonjs/tests/generateNumbers.test.js.map +1 -0
  14. package/dist/commonjs/tests/getAdjustedLimit.test.js +324 -0
  15. package/dist/commonjs/tests/getAdjustedLimit.test.js.map +1 -0
  16. package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js +424 -0
  17. package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
  18. package/dist/commonjs/tests/getInitialScrollIndex.test.js +396 -0
  19. package/dist/commonjs/tests/getInitialScrollIndex.test.js.map +1 -0
  20. package/dist/commonjs/tests/getSafeInitialValue.test.js +497 -0
  21. package/dist/commonjs/tests/getSafeInitialValue.test.js.map +1 -0
  22. package/dist/commonjs/tests/padNumber.test.js +301 -0
  23. package/dist/commonjs/tests/padNumber.test.js.map +1 -0
  24. package/dist/commonjs/utils/colorToRgba.js +5 -0
  25. package/dist/commonjs/utils/colorToRgba.js.map +1 -1
  26. package/dist/commonjs/utils/getAdjustedLimit.js +3 -3
  27. package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -1
  28. package/dist/module/tests/DurationScroll.test.js +94 -0
  29. package/dist/module/tests/DurationScroll.test.js.map +1 -1
  30. package/dist/module/tests/Modal.test.js +80 -3
  31. package/dist/module/tests/Modal.test.js.map +1 -1
  32. package/dist/module/tests/TimerPicker.test.js +115 -0
  33. package/dist/module/tests/TimerPicker.test.js.map +1 -1
  34. package/dist/module/tests/TimerPickerModal.test.js +121 -1
  35. package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
  36. package/dist/module/tests/colorToRgba.test.js +174 -0
  37. package/dist/module/tests/colorToRgba.test.js.map +1 -0
  38. package/dist/module/tests/generateNumbers.test.js +348 -0
  39. package/dist/module/tests/generateNumbers.test.js.map +1 -0
  40. package/dist/module/tests/getAdjustedLimit.test.js +322 -0
  41. package/dist/module/tests/getAdjustedLimit.test.js.map +1 -0
  42. package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js +422 -0
  43. package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
  44. package/dist/module/tests/getInitialScrollIndex.test.js +394 -0
  45. package/dist/module/tests/getInitialScrollIndex.test.js.map +1 -0
  46. package/dist/module/tests/getSafeInitialValue.test.js +495 -0
  47. package/dist/module/tests/getSafeInitialValue.test.js.map +1 -0
  48. package/dist/module/tests/padNumber.test.js +299 -0
  49. package/dist/module/tests/padNumber.test.js.map +1 -0
  50. package/dist/module/utils/colorToRgba.js +5 -0
  51. package/dist/module/utils/colorToRgba.js.map +1 -1
  52. package/dist/module/utils/getAdjustedLimit.js +3 -3
  53. package/dist/module/utils/getAdjustedLimit.js.map +1 -1
  54. package/dist/typescript/components/TimerPicker/styles.d.ts +0 -247
  55. package/dist/typescript/components/TimerPickerModal/styles.d.ts +0 -152
  56. package/package.json +3 -4
@@ -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":[]}