react-native-timer-picker 2.6.0 → 2.6.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 (181) hide show
  1. package/dist/commonjs/components/DurationScroll/DurationScroll.js +426 -0
  2. package/dist/commonjs/components/DurationScroll/DurationScroll.js.map +1 -0
  3. package/dist/commonjs/components/DurationScroll/index.js +27 -0
  4. package/dist/commonjs/components/DurationScroll/index.js.map +1 -0
  5. package/dist/commonjs/components/DurationScroll/types.js +6 -0
  6. package/dist/commonjs/components/DurationScroll/types.js.map +1 -0
  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 +27 -0
  10. package/dist/commonjs/components/Modal/index.js.map +1 -0
  11. package/dist/commonjs/components/Modal/styles.js +25 -0
  12. package/dist/commonjs/components/Modal/styles.js.map +1 -0
  13. package/dist/commonjs/components/Modal/types.js +6 -0
  14. package/dist/commonjs/components/Modal/types.js.map +1 -0
  15. package/dist/commonjs/components/PickerItem/PickerItem.js +48 -0
  16. package/dist/commonjs/components/PickerItem/PickerItem.js.map +1 -0
  17. package/dist/commonjs/components/PickerItem/index.js +14 -0
  18. package/dist/commonjs/components/PickerItem/index.js.map +1 -0
  19. package/dist/commonjs/components/TimerPicker/TimerPicker.js +266 -0
  20. package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -0
  21. package/dist/commonjs/components/TimerPicker/index.js +39 -0
  22. package/dist/commonjs/components/TimerPicker/index.js.map +1 -0
  23. package/dist/commonjs/components/TimerPicker/styles.js +140 -0
  24. package/dist/commonjs/components/TimerPicker/styles.js.map +1 -0
  25. package/dist/commonjs/components/TimerPicker/types.js +6 -0
  26. package/dist/commonjs/components/TimerPicker/types.js.map +1 -0
  27. package/dist/commonjs/components/TimerPickerModal/TimerPickerModal.js +173 -0
  28. package/dist/commonjs/components/TimerPickerModal/TimerPickerModal.js.map +1 -0
  29. package/dist/commonjs/components/TimerPickerModal/index.js +39 -0
  30. package/dist/commonjs/components/TimerPickerModal/index.js.map +1 -0
  31. package/dist/commonjs/components/TimerPickerModal/styles.js +95 -0
  32. package/dist/commonjs/components/TimerPickerModal/styles.js.map +1 -0
  33. package/dist/commonjs/components/TimerPickerModal/types.js +6 -0
  34. package/dist/commonjs/components/TimerPickerModal/types.js.map +1 -0
  35. package/dist/commonjs/index.js +21 -0
  36. package/dist/commonjs/index.js.map +1 -0
  37. package/dist/commonjs/tests/DurationScroll.test.js +163 -0
  38. package/dist/commonjs/tests/DurationScroll.test.js.map +1 -0
  39. package/dist/commonjs/tests/Modal.test.js +99 -0
  40. package/dist/commonjs/tests/Modal.test.js.map +1 -0
  41. package/dist/commonjs/tests/TimerPicker.test.js +161 -0
  42. package/dist/commonjs/tests/TimerPicker.test.js.map +1 -0
  43. package/dist/commonjs/tests/TimerPickerModal.test.js +276 -0
  44. package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -0
  45. package/dist/commonjs/tests/colorToRgba.test.js +176 -0
  46. package/dist/commonjs/tests/colorToRgba.test.js.map +1 -0
  47. package/dist/commonjs/tests/generateNumbers.test.js +350 -0
  48. package/dist/commonjs/tests/generateNumbers.test.js.map +1 -0
  49. package/dist/commonjs/tests/getAdjustedLimit.test.js +324 -0
  50. package/dist/commonjs/tests/getAdjustedLimit.test.js.map +1 -0
  51. package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js +424 -0
  52. package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
  53. package/dist/commonjs/tests/getInitialScrollIndex.test.js +396 -0
  54. package/dist/commonjs/tests/getInitialScrollIndex.test.js.map +1 -0
  55. package/dist/commonjs/tests/getSafeInitialValue.test.js +499 -0
  56. package/dist/commonjs/tests/getSafeInitialValue.test.js.map +1 -0
  57. package/dist/commonjs/tests/padNumber.test.js +301 -0
  58. package/dist/commonjs/tests/padNumber.test.js.map +1 -0
  59. package/dist/commonjs/utils/colorToRgba.js +87 -0
  60. package/dist/commonjs/utils/colorToRgba.js.map +1 -0
  61. package/dist/commonjs/utils/generateNumbers.js +124 -0
  62. package/dist/commonjs/utils/generateNumbers.js.map +1 -0
  63. package/dist/commonjs/utils/getAdjustedLimit.js +58 -0
  64. package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -0
  65. package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js +62 -0
  66. package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js.map +1 -0
  67. package/dist/commonjs/utils/getInitialScrollIndex.js +57 -0
  68. package/dist/commonjs/utils/getInitialScrollIndex.js.map +1 -0
  69. package/dist/commonjs/utils/getSafeInitialValue.js +41 -0
  70. package/dist/commonjs/utils/getSafeInitialValue.js.map +1 -0
  71. package/dist/commonjs/utils/padNumber.js +40 -0
  72. package/dist/commonjs/utils/padNumber.js.map +1 -0
  73. package/dist/module/components/DurationScroll/DurationScroll.js +418 -0
  74. package/dist/module/components/DurationScroll/DurationScroll.js.map +1 -0
  75. package/dist/module/components/DurationScroll/index.js +3 -0
  76. package/dist/module/components/DurationScroll/index.js.map +1 -0
  77. package/dist/module/components/DurationScroll/types.js +2 -0
  78. package/dist/module/components/DurationScroll/types.js.map +1 -0
  79. package/dist/module/components/Modal/Modal.js +99 -0
  80. package/dist/module/components/Modal/Modal.js.map +1 -0
  81. package/dist/module/components/Modal/index.js +3 -0
  82. package/dist/module/components/Modal/index.js.map +1 -0
  83. package/dist/module/components/Modal/styles.js +19 -0
  84. package/dist/module/components/Modal/styles.js.map +1 -0
  85. package/dist/module/components/Modal/types.js +2 -0
  86. package/dist/module/components/Modal/types.js.map +1 -0
  87. package/dist/module/components/PickerItem/PickerItem.js +41 -0
  88. package/dist/module/components/PickerItem/PickerItem.js.map +1 -0
  89. package/dist/module/components/PickerItem/index.js +2 -0
  90. package/dist/module/components/PickerItem/index.js.map +1 -0
  91. package/dist/module/components/TimerPicker/TimerPicker.js +258 -0
  92. package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -0
  93. package/dist/module/components/TimerPicker/index.js +4 -0
  94. package/dist/module/components/TimerPicker/index.js.map +1 -0
  95. package/dist/module/components/TimerPicker/styles.js +133 -0
  96. package/dist/module/components/TimerPicker/styles.js.map +1 -0
  97. package/dist/module/components/TimerPicker/types.js +2 -0
  98. package/dist/module/components/TimerPicker/types.js.map +1 -0
  99. package/dist/module/components/TimerPickerModal/TimerPickerModal.js +165 -0
  100. package/dist/module/components/TimerPickerModal/TimerPickerModal.js.map +1 -0
  101. package/dist/module/components/TimerPickerModal/index.js +4 -0
  102. package/dist/module/components/TimerPickerModal/index.js.map +1 -0
  103. package/dist/module/components/TimerPickerModal/styles.js +88 -0
  104. package/dist/module/components/TimerPickerModal/styles.js.map +1 -0
  105. package/dist/module/components/TimerPickerModal/types.js +2 -0
  106. package/dist/module/components/TimerPickerModal/types.js.map +1 -0
  107. package/dist/module/index.js +3 -0
  108. package/dist/module/index.js.map +1 -0
  109. package/dist/module/tests/DurationScroll.test.js +160 -0
  110. package/dist/module/tests/DurationScroll.test.js.map +1 -0
  111. package/dist/module/tests/Modal.test.js +96 -0
  112. package/dist/module/tests/Modal.test.js.map +1 -0
  113. package/dist/module/tests/TimerPicker.test.js +159 -0
  114. package/dist/module/tests/TimerPicker.test.js.map +1 -0
  115. package/dist/module/tests/TimerPickerModal.test.js +273 -0
  116. package/dist/module/tests/TimerPickerModal.test.js.map +1 -0
  117. package/dist/module/tests/colorToRgba.test.js +174 -0
  118. package/dist/module/tests/colorToRgba.test.js.map +1 -0
  119. package/dist/module/tests/generateNumbers.test.js +348 -0
  120. package/dist/module/tests/generateNumbers.test.js.map +1 -0
  121. package/dist/module/tests/getAdjustedLimit.test.js +322 -0
  122. package/dist/module/tests/getAdjustedLimit.test.js.map +1 -0
  123. package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js +422 -0
  124. package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -0
  125. package/dist/module/tests/getInitialScrollIndex.test.js +394 -0
  126. package/dist/module/tests/getInitialScrollIndex.test.js.map +1 -0
  127. package/dist/module/tests/getSafeInitialValue.test.js +496 -0
  128. package/dist/module/tests/getSafeInitialValue.test.js.map +1 -0
  129. package/dist/module/tests/padNumber.test.js +299 -0
  130. package/dist/module/tests/padNumber.test.js.map +1 -0
  131. package/dist/module/utils/colorToRgba.js +80 -0
  132. package/dist/module/utils/colorToRgba.js.map +1 -0
  133. package/dist/module/utils/generateNumbers.js +117 -0
  134. package/dist/module/utils/generateNumbers.js.map +1 -0
  135. package/dist/module/utils/getAdjustedLimit.js +51 -0
  136. package/dist/module/utils/getAdjustedLimit.js.map +1 -0
  137. package/dist/module/utils/getDurationAndIndexFromScrollOffset.js +55 -0
  138. package/dist/module/utils/getDurationAndIndexFromScrollOffset.js.map +1 -0
  139. package/dist/module/utils/getInitialScrollIndex.js +50 -0
  140. package/dist/module/utils/getInitialScrollIndex.js.map +1 -0
  141. package/dist/module/utils/getSafeInitialValue.js +34 -0
  142. package/dist/module/utils/getSafeInitialValue.js.map +1 -0
  143. package/dist/module/utils/padNumber.js +33 -0
  144. package/dist/module/utils/padNumber.js.map +1 -0
  145. package/dist/typescript/components/DurationScroll/DurationScroll.d.ts +4 -0
  146. package/dist/typescript/components/DurationScroll/index.d.ts +2 -0
  147. package/dist/typescript/components/DurationScroll/types.d.ts +70 -0
  148. package/dist/typescript/components/Modal/Modal.d.ts +5 -0
  149. package/dist/typescript/components/Modal/index.d.ts +2 -0
  150. package/dist/typescript/components/Modal/styles.d.ts +17 -0
  151. package/dist/typescript/components/Modal/types.d.ts +16 -0
  152. package/dist/typescript/components/PickerItem/PickerItem.d.ts +19 -0
  153. package/dist/typescript/components/PickerItem/index.d.ts +1 -0
  154. package/dist/typescript/components/TimerPicker/TimerPicker.d.ts +4 -0
  155. package/dist/typescript/components/TimerPicker/index.d.ts +3 -0
  156. package/dist/typescript/components/TimerPicker/styles.d.ts +1583 -0
  157. package/dist/typescript/components/TimerPicker/types.d.ts +91 -0
  158. package/dist/typescript/components/TimerPickerModal/TimerPickerModal.d.ts +4 -0
  159. package/dist/typescript/components/TimerPickerModal/index.d.ts +3 -0
  160. package/dist/typescript/components/TimerPickerModal/styles.d.ts +952 -0
  161. package/dist/typescript/components/TimerPickerModal/types.d.ts +56 -0
  162. package/dist/typescript/index.d.ts +4 -0
  163. package/dist/typescript/tests/DurationScroll.test.d.ts +1 -0
  164. package/dist/typescript/tests/Modal.test.d.ts +1 -0
  165. package/dist/typescript/tests/TimerPicker.test.d.ts +1 -0
  166. package/dist/typescript/tests/TimerPickerModal.test.d.ts +1 -0
  167. package/dist/typescript/tests/colorToRgba.test.d.ts +1 -0
  168. package/dist/typescript/tests/generateNumbers.test.d.ts +1 -0
  169. package/dist/typescript/tests/getAdjustedLimit.test.d.ts +1 -0
  170. package/dist/typescript/tests/getDurationAndIndexFromScrollOffset.test.d.ts +1 -0
  171. package/dist/typescript/tests/getInitialScrollIndex.test.d.ts +1 -0
  172. package/dist/typescript/tests/getSafeInitialValue.test.d.ts +1 -0
  173. package/dist/typescript/tests/padNumber.test.d.ts +1 -0
  174. package/dist/typescript/utils/colorToRgba.d.ts +38 -0
  175. package/dist/typescript/utils/generateNumbers.d.ts +80 -0
  176. package/dist/typescript/utils/getAdjustedLimit.d.ts +30 -0
  177. package/dist/typescript/utils/getDurationAndIndexFromScrollOffset.d.ts +49 -0
  178. package/dist/typescript/utils/getInitialScrollIndex.d.ts +46 -0
  179. package/dist/typescript/utils/getSafeInitialValue.d.ts +38 -0
  180. package/dist/typescript/utils/padNumber.d.ts +28 -0
  181. package/package.json +3 -2
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "TimerPicker", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _TimerPicker.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "TimerPickerModal", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _TimerPickerModal.default;
16
+ }
17
+ });
18
+ var _TimerPickerModal = _interopRequireDefault(require("./components/TimerPickerModal"));
19
+ var _TimerPicker = _interopRequireDefault(require("./components/TimerPicker"));
20
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_TimerPickerModal","_interopRequireDefault","require","_TimerPicker","e","__esModule","default"],"sources":["index.ts"],"sourcesContent":["export { default as TimerPickerModal } from \"./components/TimerPickerModal\";\nexport type {\n TimerPickerModalProps,\n TimerPickerModalRef,\n CustomTimerPickerModalStyles,\n} from \"./components/TimerPickerModal\";\n\nexport { default as TimerPicker } from \"./components/TimerPicker\";\nexport type {\n TimerPickerProps,\n TimerPickerRef,\n CustomTimerPickerStyles,\n} from \"./components/TimerPicker\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAOA,IAAAC,YAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAkE,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+ var _reactNative = require("@testing-library/react-native");
5
+ var _DurationScroll = _interopRequireDefault(require("../components/DurationScroll"));
6
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
7
+ describe("DurationScroll", () => {
8
+ const onDurationChangeMock = jest.fn();
9
+ const emptyStyles = {
10
+ disabledPickerContainer: {},
11
+ disabledPickerItem: {},
12
+ pickerAmPmContainer: {},
13
+ pickerAmPmLabel: {},
14
+ pickerContainer: {},
15
+ pickerGradientOverlay: {},
16
+ pickerItem: {},
17
+ pickerItemContainer: {},
18
+ pickerLabel: {},
19
+ pickerLabelContainer: {}
20
+ };
21
+ it("renders without crashing", () => {
22
+ const {
23
+ getByTestId
24
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
25
+ aggressivelyGetLatestDuration: false,
26
+ interval: 1,
27
+ maximumValue: 1,
28
+ onDurationChange: onDurationChangeMock,
29
+ padWithNItems: 0,
30
+ repeatNumbersNTimesNotExplicitlySet: true,
31
+ styles: emptyStyles,
32
+ testID: "duration-scroll"
33
+ }));
34
+ const component = getByTestId("duration-scroll");
35
+ expect(component).toBeDefined();
36
+ });
37
+ it("renders the correct number of items", () => {
38
+ const {
39
+ getAllByTestId
40
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
41
+ aggressivelyGetLatestDuration: false,
42
+ interval: 1,
43
+ maximumValue: 23,
44
+ onDurationChange: onDurationChangeMock,
45
+ padWithNItems: 1,
46
+ repeatNumbersNTimesNotExplicitlySet: true,
47
+ styles: emptyStyles
48
+ }));
49
+ const items = getAllByTestId("picker-item");
50
+ expect(items).toHaveLength(10);
51
+ });
52
+ it("renders the label if provided", () => {
53
+ const {
54
+ getByText
55
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
56
+ aggressivelyGetLatestDuration: false,
57
+ interval: 1,
58
+ label: "Duration",
59
+ maximumValue: 59,
60
+ onDurationChange: onDurationChangeMock,
61
+ padWithNItems: 1,
62
+ repeatNumbersNTimesNotExplicitlySet: true,
63
+ styles: emptyStyles
64
+ }));
65
+ const label = getByText("Duration");
66
+ expect(label).toBeDefined();
67
+ });
68
+ it("does not render label when not provided", () => {
69
+ const {
70
+ queryByTestId
71
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
72
+ aggressivelyGetLatestDuration: false,
73
+ interval: 1,
74
+ maximumValue: 59,
75
+ onDurationChange: onDurationChangeMock,
76
+ padWithNItems: 1,
77
+ repeatNumbersNTimesNotExplicitlySet: true,
78
+ styles: emptyStyles
79
+ }));
80
+ const label = queryByTestId("picker-label");
81
+ expect(label).toBeNull();
82
+ });
83
+ it("handles different intervals", () => {
84
+ const {
85
+ getAllByTestId
86
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
87
+ aggressivelyGetLatestDuration: false,
88
+ interval: 5,
89
+ maximumValue: 55,
90
+ onDurationChange: onDurationChangeMock,
91
+ padWithNItems: 1,
92
+ repeatNumbersNTimesNotExplicitlySet: true,
93
+ styles: emptyStyles
94
+ }));
95
+ const items = getAllByTestId("picker-item");
96
+ expect(items).toBeDefined();
97
+ });
98
+ it("renders with zero padWithNItems", () => {
99
+ const {
100
+ getByTestId
101
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
102
+ aggressivelyGetLatestDuration: false,
103
+ interval: 1,
104
+ maximumValue: 59,
105
+ onDurationChange: onDurationChangeMock,
106
+ padWithNItems: 0,
107
+ repeatNumbersNTimesNotExplicitlySet: true,
108
+ styles: emptyStyles,
109
+ testID: "duration-scroll"
110
+ }));
111
+ const component = getByTestId("duration-scroll");
112
+ expect(component).toBeDefined();
113
+ });
114
+ it("handles large maximumValue", () => {
115
+ const {
116
+ getByTestId
117
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
118
+ aggressivelyGetLatestDuration: false,
119
+ interval: 1,
120
+ maximumValue: 999,
121
+ onDurationChange: onDurationChangeMock,
122
+ padWithNItems: 1,
123
+ repeatNumbersNTimesNotExplicitlySet: true,
124
+ styles: emptyStyles,
125
+ testID: "duration-scroll"
126
+ }));
127
+ const component = getByTestId("duration-scroll");
128
+ expect(component).toBeDefined();
129
+ });
130
+ it("handles aggressivelyGetLatestDuration set to true", () => {
131
+ const {
132
+ getByTestId
133
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
134
+ aggressivelyGetLatestDuration: true,
135
+ interval: 1,
136
+ maximumValue: 59,
137
+ onDurationChange: onDurationChangeMock,
138
+ padWithNItems: 1,
139
+ repeatNumbersNTimesNotExplicitlySet: true,
140
+ styles: emptyStyles,
141
+ testID: "duration-scroll"
142
+ }));
143
+ const component = getByTestId("duration-scroll");
144
+ expect(component).toBeDefined();
145
+ });
146
+ it("handles repeatNumbersNTimesNotExplicitlySet set to false", () => {
147
+ const {
148
+ getByTestId
149
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
150
+ aggressivelyGetLatestDuration: false,
151
+ interval: 1,
152
+ maximumValue: 59,
153
+ onDurationChange: onDurationChangeMock,
154
+ padWithNItems: 1,
155
+ repeatNumbersNTimesNotExplicitlySet: false,
156
+ styles: emptyStyles,
157
+ testID: "duration-scroll"
158
+ }));
159
+ const component = getByTestId("duration-scroll");
160
+ expect(component).toBeDefined();
161
+ });
162
+ });
163
+ //# sourceMappingURL=DurationScroll.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_DurationScroll","e","__esModule","default","describe","onDurationChangeMock","jest","fn","emptyStyles","disabledPickerContainer","disabledPickerItem","pickerAmPmContainer","pickerAmPmLabel","pickerContainer","pickerGradientOverlay","pickerItem","pickerItemContainer","pickerLabel","pickerLabelContainer","it","getByTestId","render","createElement","aggressivelyGetLatestDuration","interval","maximumValue","onDurationChange","padWithNItems","repeatNumbersNTimesNotExplicitlySet","styles","testID","component","expect","toBeDefined","getAllByTestId","items","toHaveLength","getByText","label","queryByTestId","toBeNull"],"sources":["DurationScroll.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render } from \"@testing-library/react-native\";\n\nimport DurationScroll from \"../components/DurationScroll\";\nimport type { generateStyles } from \"../components/TimerPicker/styles\";\n\ndescribe(\"DurationScroll\", () => {\n const onDurationChangeMock = jest.fn();\n const emptyStyles = {\n disabledPickerContainer: {},\n disabledPickerItem: {},\n pickerAmPmContainer: {},\n pickerAmPmLabel: {},\n pickerContainer: {},\n pickerGradientOverlay: {},\n pickerItem: {},\n pickerItemContainer: {},\n pickerLabel: {},\n pickerLabelContainer: {},\n } as ReturnType<typeof generateStyles>;\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={1}\n onDurationChange={onDurationChangeMock}\n padWithNItems={0}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"renders the correct number of items\", () => {\n const { getAllByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={23}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const items = getAllByTestId(\"picker-item\");\n expect(items).toHaveLength(10);\n });\n\n it(\"renders the label if provided\", () => {\n const { getByText } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n label=\"Duration\"\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const label = getByText(\"Duration\");\n expect(label).toBeDefined();\n });\n\n it(\"does not render label when not provided\", () => {\n const { queryByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const label = queryByTestId(\"picker-label\");\n expect(label).toBeNull();\n });\n\n it(\"handles different intervals\", () => {\n const { getAllByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={5}\n maximumValue={55}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const items = getAllByTestId(\"picker-item\");\n expect(items).toBeDefined();\n });\n\n it(\"renders with zero padWithNItems\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={0}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"handles large maximumValue\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={999}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"handles aggressivelyGetLatestDuration set to true\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={true}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"handles repeatNumbersNTimesNotExplicitlySet set to false\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={false}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+ var _reactNative = require("@testing-library/react-native");
5
+ var _reactNative2 = require("react-native");
6
+ var _Modal = _interopRequireDefault(require("../components/Modal"));
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
+ describe("Modal", () => {
9
+ beforeEach(() => {
10
+ jest.useFakeTimers();
11
+ });
12
+ afterEach(() => {
13
+ jest.runOnlyPendingTimers();
14
+ jest.useRealTimers();
15
+ (0, _reactNative.cleanup)();
16
+ });
17
+ it("renders without crashing", () => {
18
+ const {
19
+ getByTestId
20
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_Modal.default, {
21
+ isVisible: true
22
+ }));
23
+ const component = getByTestId("modal");
24
+ expect(component).toBeDefined();
25
+ });
26
+ it("renders children when visible", () => {
27
+ const {
28
+ getByText
29
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_Modal.default, {
30
+ isVisible: true
31
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Modal Content")));
32
+ const content = getByText("Modal Content");
33
+ expect(content).toBeDefined();
34
+ });
35
+ it("calls onOverlayPress when overlay is pressed", () => {
36
+ const onOverlayPressMock = jest.fn();
37
+ const {
38
+ getByTestId
39
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_Modal.default, {
40
+ isVisible: true,
41
+ onOverlayPress: onOverlayPressMock
42
+ }));
43
+ const overlay = getByTestId("modal-backdrop");
44
+ _reactNative.fireEvent.press(overlay);
45
+ expect(onOverlayPressMock).toHaveBeenCalled();
46
+ });
47
+ it("renders but is not visible when isVisible is false", () => {
48
+ const {
49
+ getByTestId
50
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_Modal.default, {
51
+ isVisible: false
52
+ }));
53
+ const modal = getByTestId("modal");
54
+ expect(modal).toBeDefined();
55
+ expect(modal.props.visible).toBe(false);
56
+ });
57
+ it("does not call onOverlayPress when onOverlayPress is not provided", () => {
58
+ const {
59
+ getByTestId
60
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_Modal.default, {
61
+ isVisible: true
62
+ }));
63
+ const overlay = getByTestId("modal-backdrop");
64
+ expect(() => _reactNative.fireEvent.press(overlay)).not.toThrow();
65
+ });
66
+ it("handles rapid visibility changes", () => {
67
+ const {
68
+ getByTestId,
69
+ rerender
70
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_Modal.default, {
71
+ isVisible: true
72
+ }));
73
+ expect(getByTestId("modal")).toBeDefined();
74
+ expect(getByTestId("modal").props.visible).toBe(true);
75
+ rerender(/*#__PURE__*/_react.default.createElement(_Modal.default, {
76
+ isVisible: false
77
+ }));
78
+ expect(getByTestId("modal")).toBeDefined();
79
+ expect(getByTestId("modal").props.visible).toBe(false);
80
+ rerender(/*#__PURE__*/_react.default.createElement(_Modal.default, {
81
+ isVisible: true
82
+ }));
83
+ expect(getByTestId("modal")).toBeDefined();
84
+ expect(getByTestId("modal").props.visible).toBe(true);
85
+ });
86
+ it("calls onOverlayPress exactly once per press", () => {
87
+ const onOverlayPressMock = jest.fn();
88
+ const {
89
+ getByTestId
90
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_Modal.default, {
91
+ isVisible: true,
92
+ onOverlayPress: onOverlayPressMock
93
+ }));
94
+ const overlay = getByTestId("modal-backdrop");
95
+ _reactNative.fireEvent.press(overlay);
96
+ expect(onOverlayPressMock).toHaveBeenCalledTimes(1);
97
+ });
98
+ });
99
+ //# sourceMappingURL=Modal.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNative2","_Modal","e","__esModule","default","describe","beforeEach","jest","useFakeTimers","afterEach","runOnlyPendingTimers","useRealTimers","cleanup","it","getByTestId","render","createElement","isVisible","component","expect","toBeDefined","getByText","Text","content","onOverlayPressMock","fn","onOverlayPress","overlay","fireEvent","press","toHaveBeenCalled","modal","props","visible","toBe","not","toThrow","rerender","toHaveBeenCalledTimes"],"sources":["Modal.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render, fireEvent, cleanup } from \"@testing-library/react-native\";\nimport { Text } from \"react-native\";\n\nimport Modal from \"../components/Modal\";\n\ndescribe(\"Modal\", () => {\n beforeEach(() => {\n jest.useFakeTimers();\n });\n\n afterEach(() => {\n jest.runOnlyPendingTimers();\n jest.useRealTimers();\n cleanup();\n });\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<Modal isVisible />);\n const component = getByTestId(\"modal\");\n expect(component).toBeDefined();\n });\n\n it(\"renders children when visible\", () => {\n const { getByText } = render(\n <Modal isVisible>\n <Text>{\"Modal Content\"}</Text>\n </Modal>\n );\n const content = getByText(\"Modal Content\");\n expect(content).toBeDefined();\n });\n\n it(\"calls onOverlayPress when overlay is pressed\", () => {\n const onOverlayPressMock = jest.fn();\n const { getByTestId } = render(<Modal isVisible onOverlayPress={onOverlayPressMock} />);\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(onOverlayPressMock).toHaveBeenCalled();\n });\n\n it(\"renders but is not visible when isVisible is false\", () => {\n const { getByTestId } = render(<Modal isVisible={false} />);\n const modal = getByTestId(\"modal\");\n expect(modal).toBeDefined();\n expect(modal.props.visible).toBe(false);\n });\n\n it(\"does not call onOverlayPress when onOverlayPress is not provided\", () => {\n const { getByTestId } = render(<Modal isVisible />);\n const overlay = getByTestId(\"modal-backdrop\");\n expect(() => fireEvent.press(overlay)).not.toThrow();\n });\n\n it(\"handles rapid visibility changes\", () => {\n const { getByTestId, rerender } = render(<Modal isVisible={true} />);\n expect(getByTestId(\"modal\")).toBeDefined();\n expect(getByTestId(\"modal\").props.visible).toBe(true);\n\n rerender(<Modal isVisible={false} />);\n expect(getByTestId(\"modal\")).toBeDefined();\n expect(getByTestId(\"modal\").props.visible).toBe(false);\n\n rerender(<Modal isVisible={true} />);\n expect(getByTestId(\"modal\")).toBeDefined();\n expect(getByTestId(\"modal\").props.visible).toBe(true);\n });\n\n it(\"calls onOverlayPress exactly once per press\", () => {\n const onOverlayPressMock = jest.fn();\n const { getByTestId } = render(<Modal isVisible onOverlayPress={onOverlayPressMock} />);\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(onOverlayPressMock).toHaveBeenCalledTimes(1);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+ var _reactNative = require("@testing-library/react-native");
5
+ var _reactNative2 = require("react-native");
6
+ var _TimerPicker = _interopRequireDefault(require("../components/TimerPicker"));
7
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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); } /* eslint-disable @typescript-eslint/no-explicit-any */
9
+ describe("TimerPicker", () => {
10
+ it("renders without crashing", () => {
11
+ const {
12
+ getByTestId
13
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, null));
14
+ const component = getByTestId("timer-picker");
15
+ expect(component).toBeDefined();
16
+ });
17
+ it("renders without crashing with negative padWithNItems", () => {
18
+ const {
19
+ getByTestId
20
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
21
+ padWithNItems: -1
22
+ }));
23
+ const component = getByTestId("timer-picker");
24
+ expect(component).toBeDefined();
25
+ });
26
+ it("hides days, minutes and seconds when respective hide props are provided", () => {
27
+ const {
28
+ queryByTestId
29
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
30
+ hideDays: true,
31
+ hideMinutes: true,
32
+ hideSeconds: true
33
+ }));
34
+ const dayPicker = queryByTestId("duration-scroll-day");
35
+ const minutePicker = queryByTestId("duration-scroll-minute");
36
+ const secondPicker = queryByTestId("duration-scroll-second");
37
+ expect(dayPicker).toBeNull();
38
+ expect(minutePicker).toBeNull();
39
+ expect(secondPicker).toBeNull();
40
+ });
41
+ it("uses the custom FlatList component when provided", () => {
42
+ const CustomFlatList = props => /*#__PURE__*/_react.default.createElement(_reactNative2.FlatList, _extends({}, props, {
43
+ testID: "custom-flat-list"
44
+ }));
45
+ const {
46
+ queryAllByTestId
47
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
48
+ FlatList: CustomFlatList
49
+ }));
50
+ const customFlatList = queryAllByTestId("custom-flat-list");
51
+ expect(customFlatList).toHaveLength(3);
52
+ });
53
+ it("renders all pickers by default (hours, minutes, seconds)", () => {
54
+ const {
55
+ getByTestId
56
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, null));
57
+ expect(getByTestId("duration-scroll-hour")).toBeDefined();
58
+ expect(getByTestId("duration-scroll-minute")).toBeDefined();
59
+ expect(getByTestId("duration-scroll-second")).toBeDefined();
60
+ });
61
+ it("hides hours when hideHours is true", () => {
62
+ const {
63
+ queryByTestId
64
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
65
+ hideHours: true
66
+ }));
67
+ expect(queryByTestId("duration-scroll-hour")).toBeNull();
68
+ });
69
+ it("renders with custom initial value", () => {
70
+ const {
71
+ getByTestId
72
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
73
+ initialValue: {
74
+ hours: 2,
75
+ minutes: 30,
76
+ seconds: 45
77
+ }
78
+ }));
79
+ expect(getByTestId("timer-picker")).toBeDefined();
80
+ });
81
+ it("renders with hourInterval", () => {
82
+ const {
83
+ getByTestId
84
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
85
+ hourInterval: 2
86
+ }));
87
+ expect(getByTestId("timer-picker")).toBeDefined();
88
+ });
89
+ it("renders with minuteInterval", () => {
90
+ const {
91
+ getByTestId
92
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
93
+ minuteInterval: 15
94
+ }));
95
+ expect(getByTestId("timer-picker")).toBeDefined();
96
+ });
97
+ it("renders with secondInterval", () => {
98
+ const {
99
+ getByTestId
100
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
101
+ secondInterval: 5
102
+ }));
103
+ expect(getByTestId("timer-picker")).toBeDefined();
104
+ });
105
+ it("renders with custom labels", () => {
106
+ const {
107
+ getByText
108
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
109
+ hourLabel: "hrs",
110
+ minuteLabel: "mins",
111
+ secondLabel: "secs"
112
+ }));
113
+ expect(getByText("hrs")).toBeDefined();
114
+ expect(getByText("mins")).toBeDefined();
115
+ expect(getByText("secs")).toBeDefined();
116
+ });
117
+ it("renders LinearGradient when specified", () => {
118
+ const {
119
+ getByTestId
120
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
121
+ use12HourPicker: false
122
+ }));
123
+ expect(getByTestId("timer-picker")).toBeDefined();
124
+ });
125
+ it("handles combination of hide props", () => {
126
+ const {
127
+ queryByTestId
128
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
129
+ hideHours: true,
130
+ hideSeconds: true
131
+ }));
132
+ expect(queryByTestId("duration-scroll-hour")).toBeNull();
133
+ expect(queryByTestId("duration-scroll-minute")).toBeDefined();
134
+ expect(queryByTestId("duration-scroll-second")).toBeNull();
135
+ });
136
+ it("handles onDurationChange callback", () => {
137
+ const onDurationChangeMock = jest.fn();
138
+ const {
139
+ getByTestId
140
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
141
+ onDurationChange: onDurationChangeMock
142
+ }));
143
+ expect(getByTestId("timer-picker")).toBeDefined();
144
+ });
145
+ it("renders with all hide props and days enabled", () => {
146
+ const {
147
+ getByTestId,
148
+ queryByTestId
149
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
150
+ hideDays: false,
151
+ hideHours: true,
152
+ hideMinutes: true,
153
+ hideSeconds: true
154
+ }));
155
+ expect(getByTestId("duration-scroll-day")).toBeDefined();
156
+ expect(queryByTestId("duration-scroll-hour")).toBeNull();
157
+ expect(queryByTestId("duration-scroll-minute")).toBeNull();
158
+ expect(queryByTestId("duration-scroll-second")).toBeNull();
159
+ });
160
+ });
161
+ //# sourceMappingURL=TimerPicker.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNative2","_TimerPicker","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","describe","it","getByTestId","render","createElement","component","expect","toBeDefined","padWithNItems","queryByTestId","hideDays","hideMinutes","hideSeconds","dayPicker","minutePicker","secondPicker","toBeNull","CustomFlatList","props","FlatList","testID","queryAllByTestId","customFlatList","toHaveLength","hideHours","initialValue","hours","minutes","seconds","hourInterval","minuteInterval","secondInterval","getByText","hourLabel","minuteLabel","secondLabel","use12HourPicker","onDurationChangeMock","jest","fn","onDurationChange"],"sources":["TimerPicker.test.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from \"react\";\n\nimport { render } from \"@testing-library/react-native\";\nimport { FlatList } from \"react-native\";\n\nimport TimerPicker from \"../components/TimerPicker\";\n\ndescribe(\"TimerPicker\", () => {\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<TimerPicker />);\n const component = getByTestId(\"timer-picker\");\n expect(component).toBeDefined();\n });\n\n it(\"renders without crashing with negative padWithNItems\", () => {\n const { getByTestId } = render(<TimerPicker padWithNItems={-1} />);\n const component = getByTestId(\"timer-picker\");\n expect(component).toBeDefined();\n });\n\n it(\"hides days, minutes and seconds when respective hide props are provided\", () => {\n const { queryByTestId } = render(<TimerPicker hideDays hideMinutes hideSeconds />);\n const dayPicker = queryByTestId(\"duration-scroll-day\");\n const minutePicker = queryByTestId(\"duration-scroll-minute\");\n const secondPicker = queryByTestId(\"duration-scroll-second\");\n expect(dayPicker).toBeNull();\n expect(minutePicker).toBeNull();\n expect(secondPicker).toBeNull();\n });\n\n it(\"uses the custom FlatList component when provided\", () => {\n const CustomFlatList = (props: any) => <FlatList {...props} testID=\"custom-flat-list\" />;\n const { queryAllByTestId } = render(<TimerPicker FlatList={CustomFlatList} />);\n const customFlatList = queryAllByTestId(\"custom-flat-list\");\n expect(customFlatList).toHaveLength(3);\n });\n\n it(\"renders all pickers by default (hours, minutes, seconds)\", () => {\n const { getByTestId } = render(<TimerPicker />);\n expect(getByTestId(\"duration-scroll-hour\")).toBeDefined();\n expect(getByTestId(\"duration-scroll-minute\")).toBeDefined();\n expect(getByTestId(\"duration-scroll-second\")).toBeDefined();\n });\n\n it(\"hides hours when hideHours is true\", () => {\n const { queryByTestId } = render(<TimerPicker hideHours />);\n expect(queryByTestId(\"duration-scroll-hour\")).toBeNull();\n });\n\n it(\"renders with custom initial value\", () => {\n const { getByTestId } = render(\n <TimerPicker initialValue={{ hours: 2, minutes: 30, seconds: 45 }} />\n );\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with hourInterval\", () => {\n const { getByTestId } = render(<TimerPicker hourInterval={2} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with minuteInterval\", () => {\n const { getByTestId } = render(<TimerPicker minuteInterval={15} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with secondInterval\", () => {\n const { getByTestId } = render(<TimerPicker secondInterval={5} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with custom labels\", () => {\n const { getByText } = render(\n <TimerPicker hourLabel=\"hrs\" minuteLabel=\"mins\" secondLabel=\"secs\" />\n );\n expect(getByText(\"hrs\")).toBeDefined();\n expect(getByText(\"mins\")).toBeDefined();\n expect(getByText(\"secs\")).toBeDefined();\n });\n\n it(\"renders LinearGradient when specified\", () => {\n const { getByTestId } = render(<TimerPicker use12HourPicker={false} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"handles combination of hide props\", () => {\n const { queryByTestId } = render(<TimerPicker hideHours hideSeconds />);\n expect(queryByTestId(\"duration-scroll-hour\")).toBeNull();\n expect(queryByTestId(\"duration-scroll-minute\")).toBeDefined();\n expect(queryByTestId(\"duration-scroll-second\")).toBeNull();\n });\n\n it(\"handles onDurationChange callback\", () => {\n const onDurationChangeMock = jest.fn();\n const { getByTestId } = render(<TimerPicker onDurationChange={onDurationChangeMock} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with all hide props and days enabled\", () => {\n const { getByTestId, queryByTestId } = render(\n <TimerPicker hideDays={false} hideHours hideMinutes hideSeconds />\n );\n expect(getByTestId(\"duration-scroll-day\")).toBeDefined();\n expect(queryByTestId(\"duration-scroll-hour\")).toBeNull();\n expect(queryByTestId(\"duration-scroll-minute\")).toBeNull();\n expect(queryByTestId(\"duration-scroll-second\")).toBeNull();\n });\n});\n"],"mappings":"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","ignoreList":[]}