react-native-ui-lib 8.0.1 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (537) hide show
  1. package/jestSetup/jest-setup.js +154 -0
  2. package/lib/components/DynamicFonts/FontDownloader.d.js +1 -0
  3. package/lib/components/DynamicFonts/FontLoader.d.js +1 -0
  4. package/lib/components/DynamicFonts/NoPermissionsAcquirer.d.js +1 -0
  5. package/lib/components/DynamicFonts/PermissionsAcquirer.android.d.js +1 -0
  6. package/lib/components/DynamicFonts/PermissionsAcquirer.ios.d.js +2 -0
  7. package/lib/components/DynamicFonts/PermissionsAcquirer.web.d.js +2 -0
  8. package/lib/components/DynamicFonts/RNFSPackage.d.js +1 -0
  9. package/lib/components/DynamicFonts/index.d.js +3 -0
  10. package/lib/components/HighlighterOverlayView/index.d.js +1 -0
  11. package/lib/components/HighlighterOverlayView/index.web.d.js +1 -0
  12. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.android.d.js +2 -0
  13. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.ios.d.js +2 -0
  14. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardViewBase.d.js +2 -0
  15. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.d.js +1 -0
  16. package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.web.d.js +1 -0
  17. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.d.js +1 -0
  18. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/index.d.js +5 -0
  19. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.d.js +1 -0
  20. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.android.d.js +1 -0
  21. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.ios.d.js +1 -0
  22. package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/index.d.js +1 -0
  23. package/lib/components/Keyboard/KeyboardAccessoryView/index.d.js +7 -0
  24. package/lib/components/Keyboard/KeyboardAwareInsetsView/index.d.js +1 -0
  25. package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.android.d.js +1 -0
  26. package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.ios.d.js +10 -0
  27. package/lib/components/Keyboard/KeyboardTrackingView/index.d.js +1 -0
  28. package/lib/components/Keyboard/KeyboardTrackingView/index.web.d.js +1 -0
  29. package/lib/components/Keyboard/index.d.js +4 -0
  30. package/lib/components/SafeArea/SafeAreaInsetsManager.d.js +1 -0
  31. package/lib/components/SafeArea/SafeAreaSpacerView.d.js +1 -0
  32. package/lib/components/SafeArea/SafeAreaSpacerView.web.d.js +1 -0
  33. package/lib/components/SafeArea/index.d.js +1 -0
  34. package/lib/components/index.d.js +6 -0
  35. package/lib/scripts/releaseNative.js +72 -0
  36. package/lib/specs/HighlighterViewNativeComponent.d.js +1 -0
  37. package/lib/specs/HighlighterViewNativeComponent.d.ts +61 -0
  38. package/lib/specs/HighlighterViewNativeComponent.js +8 -0
  39. package/lib/specs/KeyboardTrackingViewNativeComponent.d.js +1 -0
  40. package/lib/specs/KeyboardTrackingViewNativeComponent.d.ts +58 -0
  41. package/lib/specs/KeyboardTrackingViewNativeComponent.js +8 -0
  42. package/package.json +7 -31
  43. package/scripts/build/build.js +35 -0
  44. package/scripts/build/buildPackages/buildComponentsPackages.js +18 -0
  45. package/scripts/build/buildPackages/buildCustomPackages.js +106 -0
  46. package/scripts/build/buildPackages/index.js +6 -0
  47. package/scripts/createCalendarMockData.js +37 -0
  48. package/scripts/docs/buildDocs.js +1 -0
  49. package/scripts/prepush.js +71 -0
  50. package/scripts/release/prReleaseNotes.js +6 -0
  51. package/scripts/release/release.js +99 -0
  52. package/scripts/updateWebAssets.js +88 -0
  53. package/scripts/utils.js +21 -0
  54. package/src/assets/__tests__/Assets.spec.js +110 -0
  55. package/src/commons/__tests__/baseComponent.spec.js +36 -0
  56. package/src/commons/__tests__/constants.spec.js +202 -0
  57. package/src/commons/__tests__/modifiers.spec.js +453 -0
  58. package/src/components/WheelPicker/__tests__/index.spec.js +121 -0
  59. package/src/components/WheelPicker/__tests__/useListMiddleIndex.spec.js +40 -0
  60. package/src/components/WheelPicker/__tests__/usePresenter.spec.js +87 -0
  61. package/src/components/avatar/__tests__/index.spec.js +25 -0
  62. package/src/components/badge/__tests__/index.spec.js +84 -0
  63. package/src/components/button/__tests__/index.driver.spec.js +209 -0
  64. package/src/components/button/__tests__/index.spec.js +287 -0
  65. package/src/components/button/index.js +30 -8
  66. package/src/components/card/__tests__/CardPresenter.spec.js +35 -0
  67. package/src/components/carousel/__tests__/CarouselPresenter.spec.js +52 -0
  68. package/src/components/carousel/__tests__/index.spec.js +89 -0
  69. package/src/components/carousel/index.js +2 -1
  70. package/src/components/checkbox/__tests__/index.spec.js +357 -0
  71. package/src/components/chip/__tests__/index.spec.js +63 -0
  72. package/src/components/colorSwatch/index.js +1 -1
  73. package/src/components/connectionStatusBar/__tests__/index.spec.js +41 -0
  74. package/src/components/dateTimePicker/__tests__/index.spec.js +44 -0
  75. package/src/components/dialog/__tests__/index.new.spec.js +118 -0
  76. package/src/components/featureHighlight/__tests__/index.spec.js +76 -0
  77. package/src/components/floatingButton/__tests__/index.spec.js +229 -0
  78. package/src/components/floatingButton/index.js +66 -35
  79. package/src/components/hint/__tests__/index.spec.js +108 -0
  80. package/src/components/image/__tests__/index.spec.js +56 -0
  81. package/src/components/image/image.api.json +193 -1
  82. package/src/components/maskedInput/__tests__/maskedInput.new.spec.js +19 -0
  83. package/src/components/maskedInput/__tests__/maskedInput.old.spec.js +20 -0
  84. package/src/components/modal/__tests__/index.spec.js +58 -0
  85. package/src/components/numberInput/__tests__/Presenter.spec.js +374 -0
  86. package/src/components/numberInput/__tests__/index.spec.js +38 -0
  87. package/src/components/numberInput/numberInput.api.json +131 -6
  88. package/src/components/overlay/index.js +2 -1
  89. package/src/components/pageControl/pageControl.api.json +175 -1
  90. package/src/components/panView/__tests__/panningUtil.spec.js +693 -0
  91. package/src/components/picker/__tests__/PickerPresenter.spec.js +15 -0
  92. package/src/components/picker/__tests__/index.spec.js +364 -0
  93. package/src/components/picker/helpers/__tests__/usePickerLabel.spec.js +96 -0
  94. package/src/components/radioButton/__tests__/index.spec.js +43 -0
  95. package/src/components/radioGroup/__tests__/index.spec.js +96 -0
  96. package/src/components/sectionsWheelPicker/__tests__/index.spec.js +35 -0
  97. package/src/components/sectionsWheelPicker/__tests__/mockSections.js +28 -0
  98. package/src/components/segmentedControl/__tests__/index.spec.js +25 -0
  99. package/src/components/slider/__tests__/index.spec.js +35 -0
  100. package/src/components/slider/index.js +12 -1
  101. package/src/components/slider/slider.api.json +11 -0
  102. package/src/components/sortableGridList/__tests__/index.spec.js +51 -0
  103. package/src/components/sortableGridList/__tests__/usePresenter.spec.js +231 -0
  104. package/src/components/sortableGridList/sortableGridList.api.json +44 -1
  105. package/src/components/sortableList/SortableList.api.json +51 -3
  106. package/src/components/sortableList/__tests__/index.spec.js +105 -0
  107. package/src/components/stackAggregator/assets/arrow-down.png +0 -0
  108. package/src/components/stackAggregator/assets/arrow-down@2x.png +0 -0
  109. package/src/components/stackAggregator/assets/arrow-down@3x.png +0 -0
  110. package/src/components/switch/__tests__/index.spec.js +96 -0
  111. package/src/components/text/__tests__/index.driver.spec.js +124 -0
  112. package/src/components/text/__tests__/index.spec.js +245 -0
  113. package/src/components/textField/__tests__/Presenter.spec.js +240 -0
  114. package/src/components/textField/__tests__/index.driver.spec.js +639 -0
  115. package/src/components/timeline/__tests__/driver.index.spec.js +133 -0
  116. package/src/helpers/__tests__/AvatarHelper.spec.js +170 -0
  117. package/src/hooks/useDidUpdate/__tests__/useDidUpdate.spec.js +80 -0
  118. package/src/hooks/useOrientation/__tests__/useOrientation.spec.js +70 -0
  119. package/src/hooks/useToggleValue/__tests__/useToggleValue.spec.js +89 -0
  120. package/src/incubator/calendar/__tests__/DateUtils.spec.js +367 -0
  121. package/src/incubator/expandableOverlay/__tests__/index.spec.js +114 -0
  122. package/src/incubator/gradient/__tests__/useAngleTransform.spec.js +126 -0
  123. package/src/incubator/slider/__tests__/SliderPresenter.spec.js +43 -0
  124. package/src/incubator/slider/__tests__/index.spec.js +34 -0
  125. package/src/incubator/slider/slider.api.json +11 -0
  126. package/src/incubator/toast/__tests__/index.spec.js +64 -0
  127. package/src/style/__tests__/colors.spec.js +313 -0
  128. package/src/style/__tests__/scheme.spec.js +119 -0
  129. package/src/style/typographyPresets.js +26 -23
  130. package/src/utils/__tests__/Playground.perf.js +14 -0
  131. package/src/utils/__tests__/imageUtils.spec.js +54 -0
  132. package/src/utils/__tests__/textUtils.spec.js +446 -0
  133. package/.eslintrc.js +0 -56
  134. package/babel.config.js +0 -35
  135. package/index.js +0 -10
  136. package/lib/android/build.gradle +0 -32
  137. package/lib/android/src/main/AndroidManifest.xml +0 -4
  138. package/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java +0 -28
  139. package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontModule.java +0 -139
  140. package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontPackage.java +0 -28
  141. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightFrame.java +0 -33
  142. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightViewTagParams.java +0 -50
  143. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterView.java +0 -167
  144. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java +0 -131
  145. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewPackage.java +0 -28
  146. package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/UiUtils.java +0 -50
  147. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/AppContextHolder.java +0 -52
  148. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout.java +0 -213
  149. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootView.java +0 -39
  150. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewManager.java +0 -29
  151. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewShadow.java +0 -29
  152. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputModule.java +0 -34
  153. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputPackage.java +0 -49
  154. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactContextHolder.java +0 -16
  155. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactScreenMonitor.java +0 -83
  156. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactSoftKeyboardMonitor.java +0 -163
  157. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/PredicateFunc.java +0 -5
  158. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java +0 -33
  159. package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/ViewUtils.java +0 -65
  160. package/lib/android/src/main/java/com/wix/reactnativeuilib/utils/LogForwarder.java +0 -45
  161. package/lib/android/src/main/res/layout/wheel_picker.xml +0 -9
  162. package/lib/android/src/main/res/values/colors.xml +0 -9
  163. package/lib/android/src/main/res/values/styles.xml +0 -9
  164. package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/keyboardRegistry.api.json +0 -50
  165. package/lib/components/Keyboard/KeyboardAccessoryView/keyboardAccessoryView.api.json +0 -58
  166. package/lib/components/Keyboard/KeyboardAwareInsetsView/keyboardAwareInsetsView.api.json +0 -14
  167. package/lib/components/Keyboard/KeyboardTrackingView/keyboardTrackingView.api.json +0 -86
  168. package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.h +0 -9
  169. package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.m +0 -115
  170. package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.h +0 -19
  171. package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.m +0 -216
  172. package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.h +0 -6
  173. package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.m +0 -28
  174. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.h +0 -39
  175. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.m +0 -160
  176. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.h +0 -36
  177. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.m +0 -121
  178. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.h +0 -48
  179. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.m +0 -27
  180. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolation.h +0 -16
  181. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.h +0 -19
  182. package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.mm +0 -155
  183. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.h +0 -16
  184. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.m +0 -450
  185. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.h +0 -18
  186. package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.m +0 -99
  187. package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.h +0 -14
  188. package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.m +0 -827
  189. package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.h +0 -44
  190. package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.m +0 -171
  191. package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.h +0 -6
  192. package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.m +0 -17
  193. package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.h +0 -6
  194. package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.m +0 -105
  195. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.h +0 -5
  196. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.m +0 -20
  197. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.h +0 -7
  198. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.m +0 -76
  199. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.h +0 -9
  200. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.m +0 -14
  201. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.h +0 -5
  202. package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.m +0 -26
  203. package/lib/ios/reactnativeuilib.xcodeproj/project.pbxproj +0 -435
  204. package/metro.config.js +0 -23
  205. package/src/.babelrc.json +0 -23
  206. package/src/assets/Assets.d.ts +0 -5
  207. package/src/assets/emojis/index.d.ts +0 -1343
  208. package/src/assets/index.d.ts +0 -3
  209. package/src/assets/internal/index.d.ts +0 -4
  210. package/src/commons/Config.d.ts +0 -24
  211. package/src/commons/Constants.d.ts +0 -54
  212. package/src/commons/UIComponent.d.ts +0 -4
  213. package/src/commons/asBaseComponent.d.ts +0 -15
  214. package/src/commons/baseComponent.d.ts +0 -2
  215. package/src/commons/forwardRef.d.ts +0 -8
  216. package/src/commons/modifiers.d.ts +0 -118
  217. package/src/commons/new.d.ts +0 -8
  218. package/src/commons/withScrollEnabler.d.ts +0 -13
  219. package/src/commons/withScrollReached.d.ts +0 -35
  220. package/src/components/WheelPicker/Item.d.ts +0 -28
  221. package/src/components/WheelPicker/WheelPicker.driver.d.ts +0 -18
  222. package/src/components/WheelPicker/WheelPickerItem.driver.d.ts +0 -8
  223. package/src/components/WheelPicker/helpers/useListMiddleIndex.d.ts +0 -6
  224. package/src/components/WheelPicker/index.d.ts +0 -88
  225. package/src/components/WheelPicker/types.d.ts +0 -6
  226. package/src/components/WheelPicker/usePresenter.d.ts +0 -21
  227. package/src/components/actionBar/index.d.ts +0 -35
  228. package/src/components/actionSheet/index.d.ts +0 -80
  229. package/src/components/animatedImage/index.d.ts +0 -28
  230. package/src/components/avatar/index.d.ts +0 -382
  231. package/src/components/badge/index.d.ts +0 -879
  232. package/src/components/baseInput/Validators.d.ts +0 -8
  233. package/src/components/baseInput/index.d.ts +0 -29
  234. package/src/components/button/Button.driver.new.d.ts +0 -34
  235. package/src/components/button/ButtonConstants.d.ts +0 -26
  236. package/src/components/button/index.d.ts +0 -572
  237. package/src/components/button/types.d.ts +0 -153
  238. package/src/components/card/CardContext.d.ts +0 -3
  239. package/src/components/card/CardImage.d.ts +0 -20
  240. package/src/components/card/CardPresenter.d.ts +0 -12
  241. package/src/components/card/CardSection.d.ts +0 -79
  242. package/src/components/card/asCardChild.d.ts +0 -6
  243. package/src/components/card/index.d.ts +0 -120
  244. package/src/components/carousel/Carousel.driver.new.d.ts +0 -9
  245. package/src/components/carousel/CarouselPresenter.d.ts +0 -9
  246. package/src/components/carousel/index.d.ts +0 -73
  247. package/src/components/carousel/types.d.ts +0 -107
  248. package/src/components/checkbox/Checkbox.driver.d.ts +0 -15
  249. package/src/components/checkbox/index.d.ts +0 -129
  250. package/src/components/chip/chip.driver.d.ts +0 -33
  251. package/src/components/chip/index.d.ts +0 -209
  252. package/src/components/chipsInput/index.d.ts +0 -55
  253. package/src/components/colorPalette/index.d.ts +0 -116
  254. package/src/components/colorPicker/ColorPickerDialog.d.ts +0 -39
  255. package/src/components/colorPicker/ColorPickerDialogHeader.d.ts +0 -9
  256. package/src/components/colorPicker/ColorPickerDialogSliders.d.ts +0 -10
  257. package/src/components/colorPicker/ColorPickerPresenter.d.ts +0 -16
  258. package/src/components/colorPicker/ColorPickerPreview.d.ts +0 -12
  259. package/src/components/colorPicker/index.d.ts +0 -45
  260. package/src/components/colorSwatch/index.d.ts +0 -50
  261. package/src/components/connectionStatusBar/index.d.ts +0 -33
  262. package/src/components/connectionStatusBar/types.d.ts +0 -28
  263. package/src/components/dash/index.d.ts +0 -19
  264. package/src/components/dateTimePicker/DateTimePicker.driver.d.ts +0 -7
  265. package/src/components/dateTimePicker/index.d.ts +0 -288
  266. package/src/components/dateTimePicker/useOldApi.d.ts +0 -27
  267. package/src/components/dialog/Dialog.driver.new.d.ts +0 -6
  268. package/src/components/dialog/DialogHeader.d.ts +0 -4
  269. package/src/components/dialog/index.d.ts +0 -15
  270. package/src/components/dialog/types.d.ts +0 -138
  271. package/src/components/dialog/useDialogContent.d.ts +0 -13
  272. package/src/components/drawer/Swipeable.d.ts +0 -94
  273. package/src/components/drawer/index.d.ts +0 -161
  274. package/src/components/expandableSection/index.d.ts +0 -40
  275. package/src/components/fadedScrollView/index.d.ts +0 -59
  276. package/src/components/fader/index.d.ts +0 -37
  277. package/src/components/featureHighlight/index.d.ts +0 -147
  278. package/src/components/floatingButton/index.d.ts +0 -85
  279. package/src/components/gradient/index.d.ts +0 -19
  280. package/src/components/gridList/index.d.ts +0 -5
  281. package/src/components/gridList/types.d.ts +0 -29
  282. package/src/components/gridList/useGridLayout.d.ts +0 -15
  283. package/src/components/gridListItem/index.d.ts +0 -132
  284. package/src/components/gridView/index.d.ts +0 -80
  285. package/src/components/hint/Hint.driver.d.ts +0 -6
  286. package/src/components/hint/Hint.driver.new.d.ts +0 -19
  287. package/src/components/hint/HintAnchor.d.ts +0 -13
  288. package/src/components/hint/HintBubble.d.ts +0 -12
  289. package/src/components/hint/HintMockChildren.d.ts +0 -8
  290. package/src/components/hint/HintOld.d.ts +0 -196
  291. package/src/components/hint/hooks/useHintAccessibility.d.ts +0 -10
  292. package/src/components/hint/hooks/useHintLayout.d.ts +0 -13
  293. package/src/components/hint/hooks/useHintPosition.d.ts +0 -29
  294. package/src/components/hint/hooks/useHintVisibility.d.ts +0 -6
  295. package/src/components/hint/index.d.ts +0 -14
  296. package/src/components/hint/types.d.ts +0 -106
  297. package/src/components/icon/index.d.ts +0 -97
  298. package/src/components/image/Image.driver.d.ts +0 -4
  299. package/src/components/image/Image.driver.new.d.ts +0 -2
  300. package/src/components/image/index.d.ts +0 -192
  301. package/src/components/listItem/ListItemPart.d.ts +0 -15
  302. package/src/components/listItem/index.d.ts +0 -52
  303. package/src/components/listItem/types.d.ts +0 -60
  304. package/src/components/loaderScreen/index.d.ts +0 -13
  305. package/src/components/loaderScreen/types.d.ts +0 -32
  306. package/src/components/marquee/index.d.ts +0 -5
  307. package/src/components/marquee/types.d.ts +0 -35
  308. package/src/components/maskedInput/index.d.ts +0 -5
  309. package/src/components/maskedInput/new.d.ts +0 -22
  310. package/src/components/modal/Modal.driver.new.d.ts +0 -8
  311. package/src/components/modal/TopBar.d.ts +0 -89
  312. package/src/components/modal/index.d.ts +0 -64
  313. package/src/components/numberInput/NumberInput.driver.d.ts +0 -6
  314. package/src/components/numberInput/Presenter.d.ts +0 -21
  315. package/src/components/numberInput/index.d.ts +0 -57
  316. package/src/components/overlay/index.d.ts +0 -68
  317. package/src/components/pageControl/index.d.ts +0 -56
  318. package/src/components/panView/index.d.ts +0 -21
  319. package/src/components/panView/panningUtil.d.ts +0 -38
  320. package/src/components/panView/usePanGesture.d.ts +0 -49
  321. package/src/components/picker/Picker.driver.new.d.ts +0 -44
  322. package/src/components/picker/PickerContext.d.ts +0 -4
  323. package/src/components/picker/PickerItem.d.ts +0 -11
  324. package/src/components/picker/PickerItemsList.d.ts +0 -4
  325. package/src/components/picker/PickerPresenter.d.ts +0 -7
  326. package/src/components/picker/PickerSelectionStatusBar.d.ts +0 -3
  327. package/src/components/picker/helpers/useFieldType.d.ts +0 -373
  328. package/src/components/picker/helpers/useImperativePickerHandle.d.ts +0 -5
  329. package/src/components/picker/helpers/useNewPickerProps.d.ts +0 -3
  330. package/src/components/picker/helpers/usePickerLabel.d.ts +0 -17
  331. package/src/components/picker/helpers/usePickerMigrationWarnings.d.ts +0 -4
  332. package/src/components/picker/helpers/usePickerSearch.d.ts +0 -9
  333. package/src/components/picker/helpers/usePickerSelection.d.ts +0 -16
  334. package/src/components/picker/index.d.ts +0 -15
  335. package/src/components/picker/types.d.ts +0 -321
  336. package/src/components/pieChart/PieSegment.d.ts +0 -34
  337. package/src/components/pieChart/index.d.ts +0 -15
  338. package/src/components/progressBar/index.d.ts +0 -65
  339. package/src/components/progressiveImage/index.d.ts +0 -23
  340. package/src/components/radioButton/RadioButton.driver.d.ts +0 -9
  341. package/src/components/radioButton/index.d.ts +0 -121
  342. package/src/components/radioGroup/RadioGroup.driver.d.ts +0 -13
  343. package/src/components/radioGroup/RadioGroupContext.d.ts +0 -14
  344. package/src/components/radioGroup/asRadioGroupChild.d.ts +0 -2
  345. package/src/components/radioGroup/index.d.ts +0 -47
  346. package/src/components/scrollBar/index.d.ts +0 -88
  347. package/src/components/searchInput/index.d.ts +0 -37
  348. package/src/components/searchInput/types.d.ts +0 -66
  349. package/src/components/sectionsWheelPicker/SectionsWheelPicker.driver.d.ts +0 -25
  350. package/src/components/sectionsWheelPicker/index.d.ts +0 -43
  351. package/src/components/segmentedControl/index.d.ts +0 -90
  352. package/src/components/segmentedControl/segment.d.ts +0 -111
  353. package/src/components/segmentedControl/useSegmentedControlPreset.d.ts +0 -10
  354. package/src/components/skeletonView/index.d.ts +0 -163
  355. package/src/components/slider/ColorSliderGroup.d.ts +0 -13
  356. package/src/components/slider/GradientSlider.d.ts +0 -20
  357. package/src/components/slider/SliderContext.d.ts +0 -8
  358. package/src/components/slider/Thumb.d.ts +0 -32
  359. package/src/components/slider/index.d.ts +0 -31
  360. package/src/components/slider/slider.driver.d.ts +0 -5
  361. package/src/components/slider/types.d.ts +0 -197
  362. package/src/components/sortableGridList/SortableItem.d.ts +0 -6
  363. package/src/components/sortableGridList/index.d.ts +0 -5
  364. package/src/components/sortableGridList/types.d.ts +0 -34
  365. package/src/components/sortableGridList/usePresenter.d.ts +0 -21
  366. package/src/components/sortableList/SortableList.driver.new.d.ts +0 -2
  367. package/src/components/sortableList/SortableListContext.d.ts +0 -19
  368. package/src/components/sortableList/SortableListItem.d.ts +0 -8
  369. package/src/components/sortableList/SortableListItem.driver.new.d.ts +0 -11
  370. package/src/components/sortableList/index.d.ts +0 -5
  371. package/src/components/sortableList/types.d.ts +0 -48
  372. package/src/components/sortableList/usePresenter.d.ts +0 -12
  373. package/src/components/stackAggregator/index.d.ts +0 -89
  374. package/src/components/stateScreen/index.d.ts +0 -5
  375. package/src/components/stateScreen/types.d.ts +0 -30
  376. package/src/components/stepper/index.d.ts +0 -47
  377. package/src/components/svgImage/index.d.ts +0 -14
  378. package/src/components/svgImage/index.web.d.ts +0 -18
  379. package/src/components/switch/index.d.ts +0 -102
  380. package/src/components/switch/switch.driver.d.ts +0 -18
  381. package/src/components/tabController/PageCarousel.d.ts +0 -9
  382. package/src/components/tabController/TabBar.d.ts +0 -97
  383. package/src/components/tabController/TabBarContext.d.ts +0 -18
  384. package/src/components/tabController/TabBarItem.d.ts +0 -105
  385. package/src/components/tabController/TabPage.d.ts +0 -33
  386. package/src/components/tabController/index.d.ts +0 -48
  387. package/src/components/tabController/useImperativeTabControllerHandle.d.ts +0 -6
  388. package/src/components/tabController/useScrollToItem.d.ts +0 -79
  389. package/src/components/text/Text.driver.d.ts +0 -7
  390. package/src/components/text/Text.driver.new.d.ts +0 -17
  391. package/src/components/text/index.d.ts +0 -195
  392. package/src/components/textField/CharCounter.d.ts +0 -7
  393. package/src/components/textField/ClearButton.d.ts +0 -4
  394. package/src/components/textField/FieldContext.d.ts +0 -4
  395. package/src/components/textField/FloatingPlaceholder.d.ts +0 -7
  396. package/src/components/textField/Input.d.ts +0 -8
  397. package/src/components/textField/Label.d.ts +0 -7
  398. package/src/components/textField/Presenter.d.ts +0 -7
  399. package/src/components/textField/TextField.driver.new.d.ts +0 -129
  400. package/src/components/textField/ValidationMessage.d.ts +0 -7
  401. package/src/components/textField/index.d.ts +0 -114
  402. package/src/components/textField/presets/outline.d.ts +0 -737
  403. package/src/components/textField/presets/underline.d.ts +0 -735
  404. package/src/components/textField/textInput/index.d.ts +0 -1
  405. package/src/components/textField/textInput/index.web.d.ts +0 -3
  406. package/src/components/textField/types.d.ts +0 -287
  407. package/src/components/textField/useFieldState.d.ts +0 -16
  408. package/src/components/textField/useImperativeInputHandle.d.ts +0 -4
  409. package/src/components/textField/usePreset.d.ts +0 -1696
  410. package/src/components/textField/validators.d.ts +0 -9
  411. package/src/components/textFieldOld/index.d.ts +0 -71
  412. package/src/components/timeline/Line.d.ts +0 -10
  413. package/src/components/timeline/Point.d.ts +0 -9
  414. package/src/components/timeline/index.d.ts +0 -11
  415. package/src/components/timeline/line.driver.d.ts +0 -10
  416. package/src/components/timeline/point.driver.d.ts +0 -8
  417. package/src/components/timeline/timeline.driver.d.ts +0 -25
  418. package/src/components/timeline/types.d.ts +0 -50
  419. package/src/components/touchableOpacity/index.d.ts +0 -50
  420. package/src/components/view/View.driver.new.d.ts +0 -7
  421. package/src/components/view/index.d.ts +0 -46
  422. package/src/components/wizard/WizardStates.d.ts +0 -2
  423. package/src/components/wizard/WizardStep.d.ts +0 -4
  424. package/src/components/wizard/index.d.ts +0 -31
  425. package/src/components/wizard/types.d.ts +0 -90
  426. package/src/helpers/AvatarHelper.d.ts +0 -9
  427. package/src/helpers/FormattingPresenter.d.ts +0 -6
  428. package/src/helpers/Profiler.d.ts +0 -22
  429. package/src/helpers/index.d.ts +0 -3
  430. package/src/hooks/index.d.ts +0 -14
  431. package/src/hooks/useCombinedRefs/index.d.ts +0 -3
  432. package/src/hooks/useDebounce/index.d.ts +0 -5
  433. package/src/hooks/useDidUpdate/index.d.ts +0 -6
  434. package/src/hooks/useHiddenLocation/index.d.ts +0 -13
  435. package/src/hooks/useHiddenLocation/index.web.d.ts +0 -13
  436. package/src/hooks/useKeyboardHeight/index.d.ts +0 -5
  437. package/src/hooks/useMeasure/index.d.ts +0 -15
  438. package/src/hooks/useModifiers/index.d.ts +0 -3
  439. package/src/hooks/useOrientation/index.d.ts +0 -7
  440. package/src/hooks/useScrollEnabler/index.d.ts +0 -23
  441. package/src/hooks/useScrollReached/index.d.ts +0 -28
  442. package/src/hooks/useScrollTo/index.d.ts +0 -37
  443. package/src/hooks/useScrollToItem/index.d.ts +0 -65
  444. package/src/hooks/useThemeProps/index.d.ts +0 -2
  445. package/src/hooks/useToggleValue/index.d.ts +0 -2
  446. package/src/incubator/TouchableOpacity.d.ts +0 -52
  447. package/src/incubator/calendar/Agenda.d.ts +0 -4
  448. package/src/incubator/calendar/CalendarContext.d.ts +0 -4
  449. package/src/incubator/calendar/CalendarItem.d.ts +0 -5
  450. package/src/incubator/calendar/Day.d.ts +0 -4
  451. package/src/incubator/calendar/Day_OLD.d.ts +0 -4
  452. package/src/incubator/calendar/Header.d.ts +0 -4
  453. package/src/incubator/calendar/Month.d.ts +0 -4
  454. package/src/incubator/calendar/TodayButton.d.ts +0 -4
  455. package/src/incubator/calendar/Week.d.ts +0 -4
  456. package/src/incubator/calendar/WeekDaysNames.d.ts +0 -4
  457. package/src/incubator/calendar/helpers/CalendarProcessor.d.ts +0 -2
  458. package/src/incubator/calendar/helpers/DataProcessor.d.ts +0 -2
  459. package/src/incubator/calendar/helpers/DateUtils.d.ts +0 -23
  460. package/src/incubator/calendar/index.d.ts +0 -7
  461. package/src/incubator/calendar/types.d.ts +0 -118
  462. package/src/incubator/expandableOverlay/ExpandableOverlay.driver.d.ts +0 -7
  463. package/src/incubator/expandableOverlay/index.d.ts +0 -83
  464. package/src/incubator/gradient/BorderGradient.d.ts +0 -4
  465. package/src/incubator/gradient/CircleGradient.d.ts +0 -4
  466. package/src/incubator/gradient/RectangleGradient.d.ts +0 -4
  467. package/src/incubator/gradient/index.d.ts +0 -5
  468. package/src/incubator/gradient/types.d.ts +0 -26
  469. package/src/incubator/gradient/useAngleTransform.d.ts +0 -27
  470. package/src/incubator/index.d.ts +0 -9
  471. package/src/incubator/slider/Slider.driver.d.ts +0 -5
  472. package/src/incubator/slider/SliderPresenter.d.ts +0 -6
  473. package/src/incubator/slider/Thumb.d.ts +0 -24
  474. package/src/incubator/slider/Track.d.ts +0 -13
  475. package/src/incubator/slider/index.d.ts +0 -139
  476. package/src/incubator/toast/Toast.driver.new.d.ts +0 -54
  477. package/src/incubator/toast/helpers/useToastAnimation.d.ts +0 -22
  478. package/src/incubator/toast/helpers/useToastPresets.d.ts +0 -8
  479. package/src/incubator/toast/helpers/useToastTimer.d.ts +0 -6
  480. package/src/incubator/toast/index.d.ts +0 -9
  481. package/src/incubator/toast/types.d.ts +0 -111
  482. package/src/index.d.ts +0 -92
  483. package/src/optionalDependencies/BlurViewPackage.d.ts +0 -2
  484. package/src/optionalDependencies/BlurViewPackage.web.d.ts +0 -2
  485. package/src/optionalDependencies/DateTimePickerPackage.d.ts +0 -2
  486. package/src/optionalDependencies/FlashListPackage.d.ts +0 -2
  487. package/src/optionalDependencies/HapticFeedbackPackage.d.ts +0 -2
  488. package/src/optionalDependencies/LinearGradientPackage.d.ts +0 -2
  489. package/src/optionalDependencies/MomentPackage.d.ts +0 -2
  490. package/src/optionalDependencies/NetInfoPackage.d.ts +0 -2
  491. package/src/optionalDependencies/PostCssPackage.d.ts +0 -5
  492. package/src/optionalDependencies/ShimmerPackage.d.ts +0 -2
  493. package/src/optionalDependencies/SvgPackage.d.ts +0 -3
  494. package/src/optionalDependencies/index.d.ts +0 -9
  495. package/src/optionalDependencies/index.web.d.ts +0 -7
  496. package/src/services/HapticService.d.ts +0 -15
  497. package/src/services/LogService.d.ts +0 -35
  498. package/src/services/index.d.ts +0 -2
  499. package/src/style/borderRadiuses.d.ts +0 -30
  500. package/src/style/colorName.d.ts +0 -8
  501. package/src/style/colorNameMap.d.ts +0 -2
  502. package/src/style/colors.d.ts +0 -274
  503. package/src/style/colorsPalette.d.ts +0 -101
  504. package/src/style/components.d.ts +0 -15
  505. package/src/style/componentsColors.d.ts +0 -5
  506. package/src/style/designTokens.d.ts +0 -69
  507. package/src/style/designTokensDM.d.ts +0 -69
  508. package/src/style/dividers.d.ts +0 -11
  509. package/src/style/index.d.ts +0 -13
  510. package/src/style/scheme.d.ts +0 -57
  511. package/src/style/shadows.d.ts +0 -223
  512. package/src/style/spacings.d.ts +0 -32
  513. package/src/style/themeManager.d.ts +0 -22
  514. package/src/style/typography.d.ts +0 -26
  515. package/src/style/typographyPresets.d.ts +0 -7
  516. package/src/testkit/Component.driver.d.ts +0 -30
  517. package/src/testkit/DriverException.d.ts +0 -12
  518. package/src/testkit/UniDriver.d.ts +0 -29
  519. package/src/testkit/drivers/TestingLibraryDriver.d.ts +0 -26
  520. package/src/testkit/index.d.ts +0 -25
  521. package/src/testkit/new/Component.driver.d.ts +0 -16
  522. package/src/testkit/new/useDraggable.driver.d.ts +0 -15
  523. package/src/testkit/new/usePressable.driver.d.ts +0 -14
  524. package/src/testkit/new/useScrollable.driver.d.ts +0 -13
  525. package/src/typings/assets.d.ts +0 -52
  526. package/src/typings/common.d.ts +0 -12
  527. package/src/typings/module.d.ts +0 -13
  528. package/src/typings/recorderTypes.d.ts +0 -13
  529. package/src/uilib-test-renderer/helper.d.ts +0 -8
  530. package/src/uilib-test-renderer/index.d.ts +0 -4
  531. package/src/uilib-test-renderer/scrollViewHelper.d.ts +0 -9
  532. package/src/utils/dateUtils.d.ts +0 -2
  533. package/src/utils/imageUtils.d.ts +0 -5
  534. package/src/utils/index.d.ts +0 -4
  535. package/src/utils/styleUtils.d.ts +0 -7
  536. package/src/utils/textUtils.d.ts +0 -8
  537. /package/{src → scripts/build}/.babelrc.exports.js +0 -0
@@ -0,0 +1,364 @@
1
+ import React, { useState } from 'react';
2
+ import { act, render, waitFor, screen } from '@testing-library/react-native';
3
+ import Picker from "../index";
4
+ import { PickerDriver } from "../Picker.driver.new";
5
+ const countries = [{
6
+ label: 'Israel',
7
+ value: 'IL'
8
+ }, {
9
+ label: 'United States',
10
+ value: 'US'
11
+ }, {
12
+ label: 'Germany',
13
+ value: 'DE'
14
+ }, {
15
+ label: 'Italy',
16
+ value: 'IT'
17
+ }, {
18
+ label: 'Spain',
19
+ value: 'ES '
20
+ }];
21
+ const testID = 'picker';
22
+ const TestCase = props => {
23
+ const [value, setValue] = useState(props?.value);
24
+ return <Picker testID={testID} {...props} onChange={setValue} value={value}>
25
+ {countries.map(country => {
26
+ return <Picker.Item key={country.value} value={country.value} label={country.label} testID={country.label} />;
27
+ })}
28
+ </Picker>;
29
+ };
30
+ const getDriver = props => {
31
+ const renderTree = render(<TestCase {...props} />);
32
+ return PickerDriver({
33
+ renderTree,
34
+ testID
35
+ }, props?.useDialog);
36
+ };
37
+ const onPress = jest.fn();
38
+ const onDismiss = jest.fn();
39
+ const onShow = jest.fn();
40
+ describe('Picker', () => {
41
+ beforeEach(() => {
42
+ jest.clearAllMocks();
43
+ });
44
+ describe('Items', () => {
45
+ const testItems = [{
46
+ key: 'one',
47
+ value: 1,
48
+ label: 'One',
49
+ testID: 'item_one'
50
+ }, {
51
+ key: 'two',
52
+ value: 2,
53
+ label: 'Two',
54
+ testID: 'item_two'
55
+ }];
56
+ const testItemExists = TestCase => {
57
+ const renderTree = render(<TestCase />);
58
+ const driver = PickerDriver({
59
+ renderTree,
60
+ testID
61
+ }, false);
62
+ driver.open();
63
+ const item = driver.itemDriver(testItems[0].testID);
64
+ expect(item.exists()).toBeTruthy();
65
+ };
66
+ it('should render picker items when passing children', () => {
67
+ const TestCase = () => {
68
+ return <Picker testID={testID}>
69
+ <Picker.Item {...testItems[0]} />
70
+ <Picker.Item {...testItems[1]} />
71
+ </Picker>;
72
+ };
73
+ testItemExists(TestCase);
74
+ });
75
+ it('should render picker items when passing items', () => {
76
+ const TestCase = () => {
77
+ return <Picker testID={testID} items={testItems} />;
78
+ };
79
+ testItemExists(TestCase);
80
+ });
81
+ it('should render picker items with one option when passing one child', () => {
82
+ const TestCase = () => {
83
+ return <Picker testID={testID}>
84
+ <Picker.Item {...testItems[0]} />
85
+ </Picker>;
86
+ };
87
+ testItemExists(TestCase);
88
+ });
89
+ it('should render picker with one option when passing one item', () => {
90
+ const TestCase = () => {
91
+ return <Picker testID={testID} items={[testItems[0]]} />;
92
+ };
93
+ testItemExists(TestCase);
94
+ });
95
+ });
96
+ describe('Modal', () => {
97
+ describe('Test open', () => {
98
+ it('Should open when enabled', () => {
99
+ const driver = getDriver();
100
+ expect(driver.isOpen()).toBeFalsy();
101
+ driver.open();
102
+ expect(driver.isOpen()).toBeTruthy();
103
+ });
104
+ it('Should not open when disabled', () => {
105
+ const driver = getDriver({
106
+ editable: false
107
+ });
108
+ expect(driver.isOpen()).toBeFalsy();
109
+ driver.open();
110
+ expect(driver.isOpen()).toBeFalsy();
111
+ });
112
+ });
113
+ it('Test close', () => {
114
+ const driver = getDriver();
115
+ driver.open();
116
+ expect(driver.isOpen()).toBeTruthy();
117
+ driver.cancel();
118
+ expect(driver.isOpen()).toBeFalsy();
119
+ });
120
+ describe('Test value', () => {
121
+ it('Get correct value of a single item', () => {
122
+ const driver = getDriver({
123
+ value: countries[2].value
124
+ });
125
+ expect(driver.getValue()).toEqual(countries[2].label);
126
+ });
127
+ it('Get correct value of multiple selected items', () => {
128
+ const driver = getDriver({
129
+ value: [countries[2].value, countries[4].value]
130
+ });
131
+ expect(driver.getValue()).toEqual(`${countries[2].label}, ${countries[4].label}`);
132
+ });
133
+ });
134
+ describe('Test selection', () => {
135
+ it('Should select a single item', () => {
136
+ const driver = getDriver();
137
+ expect(driver.getValue()).toEqual('');
138
+ driver.open();
139
+ expect(driver.isOpen()).toBeTruthy();
140
+ driver.selectItem(countries[2].label);
141
+ expect(driver.isOpen()).toBeFalsy();
142
+ expect(driver.getValue()).toEqual(countries[2].label);
143
+ });
144
+ it('Should select multiple items', () => {
145
+ const driver = getDriver({
146
+ mode: 'MULTI'
147
+ });
148
+ expect(driver.getValue()).toEqual('');
149
+ driver.open();
150
+ expect(driver.isOpen()).toBeTruthy();
151
+ driver.selectItem(countries[2].label);
152
+ driver.selectItem(countries[4].label);
153
+ driver.done();
154
+ expect(driver.getValue()).toEqual(`${countries[2].label}, ${countries[4].label}`);
155
+ });
156
+ });
157
+ it('Test onPress', () => {
158
+ const driver = getDriver({
159
+ onPress
160
+ });
161
+ driver.open();
162
+ expect(onPress).toHaveBeenCalled();
163
+ });
164
+ describe('Test pickerModalProps', () => {
165
+ it('Test onDismiss', () => {
166
+ const driver = getDriver({
167
+ pickerModalProps: {
168
+ onDismiss
169
+ }
170
+ });
171
+ driver.open();
172
+ expect(driver.isOpen()).toBeTruthy();
173
+ driver.cancel();
174
+ expect(driver.isOpen()).toBeFalsy();
175
+ expect(onDismiss).toHaveBeenCalledTimes(2); // TODO: this should be 1
176
+ });
177
+
178
+ // TODO: this test is not passing yet
179
+ // The onShow function get's called when the Modal is fully opened, tried to use act and waitFor to wait for fully open but it didn't work
180
+ it.skip('Test onShow passed via pickerModalProps', async () => {
181
+ const driver = getDriver({
182
+ pickerModalProps: {
183
+ onShow
184
+ }
185
+ });
186
+ expect(driver.isOpen()).toBeFalsy();
187
+ jest.useFakeTimers();
188
+ expect(driver.isOpen()).toBeTruthy();
189
+ expect(onShow).toHaveBeenCalled();
190
+ });
191
+ describe('Test Modal TopBar', () => {
192
+ const modalProps = {
193
+ mode: 'MULTI',
194
+ topBarProps: {
195
+ cancelLabel: 'Cancel'
196
+ }
197
+ };
198
+ it('should close and select items when pressing on done button', () => {
199
+ const driver = getDriver(modalProps);
200
+ driver.open();
201
+ expect(driver.isOpen()).toBeTruthy();
202
+ driver.selectItem(countries[2].label);
203
+ driver.selectItem(countries[4].label);
204
+ driver.done();
205
+ expect(driver.isOpen()).toBeFalsy();
206
+ expect(driver.getValue()).toEqual(`${countries[2].label}, ${countries[4].label}`);
207
+ });
208
+ it('should close without selecting items when pressing on cancel button', () => {
209
+ const driver = getDriver(modalProps);
210
+ driver.open();
211
+ expect(driver.isOpen()).toBeTruthy();
212
+ driver.selectItem(countries[2].label);
213
+ driver.selectItem(countries[4].label);
214
+ driver.cancel();
215
+ expect(driver.getValue()).toEqual(``);
216
+ expect(driver.isOpen()).toBeFalsy();
217
+ });
218
+ });
219
+ });
220
+ });
221
+ describe('Dialog', () => {
222
+ const dialogProps = {
223
+ useDialog: true
224
+ };
225
+ describe('Test value', () => {
226
+ it('Get correct value of a single item', () => {
227
+ const driver = getDriver({
228
+ ...dialogProps,
229
+ value: countries[2].value
230
+ });
231
+ expect(driver.getValue()).toEqual(countries[2].label);
232
+ });
233
+ it('Get correct value of multiple selected items', () => {
234
+ const driver = getDriver({
235
+ ...dialogProps,
236
+ value: [countries[2].value, countries[4].value]
237
+ });
238
+ expect(driver.getValue()).toEqual(`${countries[2].label}, ${countries[4].label}`);
239
+ });
240
+ });
241
+ describe('Test open/close', () => {
242
+ it('Should open when enabled', async () => {
243
+ const driver = getDriver(dialogProps);
244
+ expect(driver.isOpen()).toBeFalsy();
245
+ jest.useFakeTimers();
246
+ act(() => driver.open());
247
+ jest.runAllTimers();
248
+ await waitFor(() => expect(driver.isOpen()).toBeTruthy());
249
+ });
250
+ it('Should not open when disabled', () => {
251
+ const driver = getDriver({
252
+ ...dialogProps,
253
+ editable: false
254
+ });
255
+ expect(driver.isOpen()).toBeFalsy();
256
+ driver.open();
257
+ expect(driver.isOpen()).toBeFalsy();
258
+ });
259
+ it('Test close', async () => {
260
+ const driver = getDriver(dialogProps);
261
+ expect(driver.isOpen()).toBeFalsy();
262
+ act(() => driver.open());
263
+ await waitFor(() => expect(driver.isOpen()).toBeTruthy());
264
+ act(() => driver.dismissDialog());
265
+ await waitFor(() => expect(driver.isOpen()).toBeFalsy());
266
+ });
267
+ });
268
+ describe('Test selection', () => {
269
+ it('Should select a single item', async () => {
270
+ const driver = getDriver(dialogProps);
271
+ expect(driver.getValue()).toEqual('');
272
+ act(() => driver.open());
273
+ await waitFor(() => expect(driver.isOpen()).toBeTruthy());
274
+ driver.selectItem(countries[2].label);
275
+ await waitFor(() => expect(driver.isOpen()).toBeFalsy());
276
+ expect(driver.getValue()).toEqual(countries[2].label);
277
+ });
278
+ it('Should select multiple items', async () => {
279
+ const driver = getDriver({
280
+ ...dialogProps,
281
+ mode: 'MULTI'
282
+ });
283
+ expect(driver.getValue()).toEqual('');
284
+ expect(driver.isOpen()).toBeFalsy();
285
+ act(() => driver.open());
286
+ await waitFor(() => expect(driver.isOpen()).toBeTruthy());
287
+ driver.selectItem(countries[2].label);
288
+ driver.selectItem(countries[4].label);
289
+ driver.done();
290
+ await waitFor(() => expect(driver.isOpen()).toBeFalsy());
291
+ expect(driver.getValue()).toEqual(`${countries[2].label}, ${countries[4].label}`);
292
+ });
293
+ });
294
+ it('Test onDismiss', async () => {
295
+ const driver = getDriver({
296
+ ...dialogProps,
297
+ customPickerProps: {
298
+ dialogProps: {
299
+ onDismiss
300
+ }
301
+ }
302
+ });
303
+ expect(driver.isOpen()).toBeFalsy();
304
+ act(() => driver.open());
305
+ await waitFor(() => expect(driver.isOpen()).toBeTruthy());
306
+ act(() => driver.dismissDialog());
307
+ await waitFor(() => expect(driver.isOpen()).toBeFalsy());
308
+ expect(onDismiss).toHaveBeenCalledTimes(1);
309
+ });
310
+ });
311
+
312
+ // TODO: add tests for WheelPicker
313
+ // Note: the picker dialog should be opened and then the wheel picker should be rendered, this is the main issue with testing it for now
314
+ // describe.skip('WheelPicker', () => {
315
+ // });
316
+
317
+ //TODO: add more tests for different props
318
+ describe('Picker field types', () => {
319
+ describe('Test filter field type', () => {
320
+ const placeholderText = 'Select a Filter';
321
+ it('should render a filter picker', () => {
322
+ const driver = getDriver({
323
+ fieldType: 'filter',
324
+ placeholder: placeholderText
325
+ });
326
+ expect(driver.isOpen()).toBeFalsy();
327
+ const label = screen.getByTestId(`${testID}.filter.type.label`);
328
+ expect(label).toBeTruthy();
329
+ expect(label.props.children).toEqual(placeholderText);
330
+ });
331
+ });
332
+ describe('Test settings field type', () => {
333
+ const labelText = 'Settings';
334
+ const placeholderText = 'Select a setting';
335
+ it('should render a settings picker with label', async () => {
336
+ const driver = getDriver({
337
+ fieldType: 'settings',
338
+ label: labelText,
339
+ placeholder: placeholderText
340
+ });
341
+ const label = screen.getByTestId(`${testID}.settings.type.label`);
342
+ const placeholder = screen.getByTestId(`${testID}.settings.type.placeholder`);
343
+ expect(driver.isOpen()).toBeFalsy();
344
+ expect(label).toBeTruthy();
345
+ expect(placeholder).toBeTruthy();
346
+ expect(label.props.children).toEqual(labelText);
347
+ expect(placeholder.props.children).toEqual(placeholderText);
348
+ });
349
+ it('should render a settings picker with placeholder', async () => {
350
+ const driver = getDriver({
351
+ fieldType: 'settings',
352
+ placeholder: placeholderText
353
+ });
354
+ const label = screen.getByTestId(`${testID}.settings.type.label`);
355
+ const placeholder = screen.getByTestId(`${testID}.settings.type.placeholder`);
356
+ expect(driver.isOpen()).toBeFalsy();
357
+ expect(label).toBeTruthy();
358
+ expect(placeholder).toBeTruthy();
359
+ expect(label.props.children).toEqual(placeholderText);
360
+ expect(placeholder.props.children).toEqual(placeholderText);
361
+ });
362
+ });
363
+ });
364
+ });
@@ -0,0 +1,96 @@
1
+ import { renderHook } from '@testing-library/react-hooks';
2
+ import usePickerLabel from "../usePickerLabel";
3
+ const colors = [{
4
+ value: 'red',
5
+ label: 'Red'
6
+ }, {
7
+ value: 'green',
8
+ label: 'Green',
9
+ listItemProps: {
10
+ subtitle: 'Subtitle'
11
+ }
12
+ }, {
13
+ value: 'blue',
14
+ label: 'Blue',
15
+ listItemProps: {
16
+ subtitleLines: 2,
17
+ subtitle: 'Subtitle with\n2 lines of text'
18
+ }
19
+ }, {
20
+ value: 'purple',
21
+ label: 'Purple',
22
+ disabled: true
23
+ }, {
24
+ value: 'yellow',
25
+ label: 'Yellow'
26
+ }, {
27
+ value: 'grey',
28
+ label: 'Grey'
29
+ }];
30
+ describe('usePickerLabel hook tests', () => {
31
+ const makeSUT = ({
32
+ value,
33
+ items,
34
+ getLabel
35
+ // accessibilityLabel,
36
+ // accessibilityHint,
37
+ // placeholder
38
+ }) => {
39
+ return renderHook(() => usePickerLabel({
40
+ value,
41
+ items,
42
+ getLabel
43
+ // accessibilityLabel,
44
+ // accessibilityHint,
45
+ // placeholder
46
+ }));
47
+ };
48
+ it('expect label to equal an empty string when value is undefined', () => {
49
+ const sut = makeSUT({
50
+ items: colors,
51
+ value: undefined,
52
+ getLabel: undefined
53
+ });
54
+ expect(sut.result.current.label).toEqual('');
55
+ });
56
+ it('expect label to equal an empty string when value is null', () => {
57
+ const sut = makeSUT({
58
+ items: colors,
59
+ value: null,
60
+ getLabel: undefined
61
+ });
62
+ expect(sut.result.current.label).toEqual('');
63
+ });
64
+ it('expect label to equal returned string when getLabel passed', () => {
65
+ const sut = makeSUT({
66
+ items: colors,
67
+ value: null,
68
+ getLabel: () => 'Some label'
69
+ });
70
+ expect(sut.result.current.label).toEqual('Some label');
71
+ });
72
+ it('expect label to equal array of values when value is array', () => {
73
+ const sut = makeSUT({
74
+ items: colors,
75
+ value: ['red', 'green'],
76
+ getLabel: undefined
77
+ });
78
+ expect(sut.result.current.label).toEqual('Red, Green');
79
+ });
80
+ it('expect label to equal selected item label when value equals item value', () => {
81
+ const sut = makeSUT({
82
+ items: colors,
83
+ value: 'red',
84
+ getLabel: undefined
85
+ });
86
+ expect(sut.result.current.label).toEqual('Red');
87
+ });
88
+ it('expect label to equal empty string when no items passed', () => {
89
+ const sut = makeSUT({
90
+ items: undefined,
91
+ value: 'Some string',
92
+ getLabel: undefined
93
+ });
94
+ expect(sut.result.current.label).toEqual('');
95
+ });
96
+ });
@@ -0,0 +1,43 @@
1
+ import React from 'react';
2
+ import { RadioButtonDriver } from "../RadioButton.driver";
3
+ import { Assets, RadioButton } from "../../../index";
4
+ const testID = 'checkbox';
5
+ const TestCase = props => {
6
+ return <RadioButton {...props} testID={testID} />;
7
+ };
8
+ describe('RadioButton renderer test', () => {
9
+ afterEach(() => RadioButtonDriver.clear());
10
+ it('should render a RadioButton', async () => {
11
+ const component = <TestCase />;
12
+ const driver = new RadioButtonDriver({
13
+ component,
14
+ testID
15
+ });
16
+ expect(await driver.exists()).toBeTruthy();
17
+ });
18
+ it('should render a RadioButton with label', async () => {
19
+ const component = <TestCase label={'test'} />;
20
+ const driver = new RadioButtonDriver({
21
+ component,
22
+ testID
23
+ });
24
+ expect(await driver.hasLabel()).toBeTruthy();
25
+ });
26
+ it('should render a RadioButton with icon', async () => {
27
+ const component = <TestCase iconSource={Assets.internal.icons.x} />;
28
+ const driver = new RadioButtonDriver({
29
+ component,
30
+ testID
31
+ });
32
+ expect(await driver.hasIcon()).toBeTruthy();
33
+ });
34
+ it('should render a RadioButton with label and icon', async () => {
35
+ const component = <TestCase label={'test'} iconSource={Assets.internal.icons.x} />;
36
+ const driver = new RadioButtonDriver({
37
+ component,
38
+ testID
39
+ });
40
+ expect(await driver.hasLabel()).toBeTruthy();
41
+ expect(await driver.hasIcon()).toBeTruthy();
42
+ });
43
+ });
@@ -0,0 +1,96 @@
1
+ import React from 'react';
2
+ import RadioGroup from "../index";
3
+ import RadioButton from "../../radioButton/index";
4
+ import { RadioGroupDriver } from "../RadioGroup.driver";
5
+ const testID = 'radioGroup';
6
+ const testIDs = {
7
+ radioButtonUp: 'radioButtonUp',
8
+ radioButtonDown: 'radioButtonDown',
9
+ radioButtonLeft: 'radioButtonLeft',
10
+ radioButtonRight: 'radioButtonRight'
11
+ };
12
+ const onValueChangeMock = jest.fn();
13
+ const RadioGroupTestComponent = props => {
14
+ const {
15
+ shouldDisable,
16
+ ...others
17
+ } = props;
18
+ return <RadioGroup {...others} onValueChange={onValueChangeMock} testID={testID}>
19
+ <RadioButton value={'up'} label={'Up'} disabled={shouldDisable} testID={testIDs.radioButtonUp} />
20
+ <RadioButton value={'down'} label={'Down'} testID={testIDs.radioButtonDown} />
21
+ <RadioButton value={'left'} label={'Left'} testID={testIDs.radioButtonLeft} />
22
+ <RadioButton value={'right'} label={'Right'} testID={testIDs.radioButtonRight} />
23
+ </RadioGroup>;
24
+ };
25
+ describe('RadioGroup renderer test', () => {
26
+ beforeEach(() => {
27
+ jest.clearAllMocks();
28
+ });
29
+ afterEach(() => RadioGroupDriver.clear());
30
+ it('Press on radio button', async () => {
31
+ const props = {
32
+ onValueChangeMock
33
+ };
34
+ const component = <RadioGroupTestComponent {...props} />;
35
+ const driver = new RadioGroupDriver({
36
+ component,
37
+ testID,
38
+ testIDs
39
+ });
40
+ await driver.pressOn(testIDs.radioButtonUp);
41
+ expect(onValueChangeMock).toHaveBeenCalledTimes(1);
42
+ expect(onValueChangeMock).toHaveBeenCalledWith('up');
43
+ });
44
+ it('Press on disabled radio button', async () => {
45
+ const props = {
46
+ onValueChangeMock,
47
+ shouldDisable: true
48
+ };
49
+ const component = <RadioGroupTestComponent {...props} />;
50
+ const driver = new RadioGroupDriver({
51
+ component,
52
+ testID,
53
+ testIDs
54
+ });
55
+ await driver.pressOn(testIDs.radioButtonUp);
56
+ expect(onValueChangeMock).not.toHaveBeenCalled();
57
+ });
58
+ it('Press on selected radio button', async () => {
59
+ const props = {
60
+ onValueChangeMock,
61
+ initialValue: 'up'
62
+ };
63
+ const component = <RadioGroupTestComponent {...props} />;
64
+ const driver = new RadioGroupDriver({
65
+ component,
66
+ testID,
67
+ testIDs
68
+ });
69
+ await driver.pressOn(testIDs.radioButtonUp);
70
+ expect(onValueChangeMock).toHaveBeenCalledTimes(1);
71
+ expect(onValueChangeMock).toHaveBeenCalledWith('up');
72
+ });
73
+ it('Press multiple radio buttons', async () => {
74
+ const props = {
75
+ onValueChangeMock
76
+ };
77
+ const component = <RadioGroupTestComponent {...props} />;
78
+ const driver = new RadioGroupDriver({
79
+ component,
80
+ testID,
81
+ testIDs
82
+ });
83
+ await driver.pressOn(testIDs.radioButtonUp);
84
+ expect(onValueChangeMock).toHaveBeenCalledTimes(1);
85
+ expect(onValueChangeMock).toHaveBeenCalledWith('up');
86
+ await driver.pressOn(testIDs.radioButtonDown);
87
+ expect(onValueChangeMock).toHaveBeenCalledTimes(2);
88
+ expect(onValueChangeMock.mock.calls).toEqual([['up'], ['down']]);
89
+ await driver.pressOn(testIDs.radioButtonLeft);
90
+ expect(onValueChangeMock).toHaveBeenCalledTimes(3);
91
+ expect(onValueChangeMock.mock.calls).toEqual([['up'], ['down'], ['left']]);
92
+ await driver.pressOn(testIDs.radioButtonRight);
93
+ expect(onValueChangeMock).toHaveBeenCalledTimes(4);
94
+ expect(onValueChangeMock.mock.calls).toEqual([['up'], ['down'], ['left'], ['right']]);
95
+ });
96
+ });
@@ -0,0 +1,35 @@
1
+ import _map from "lodash/map";
2
+ import React from 'react';
3
+ import SectionsWheelPicker from "../index";
4
+ import { render } from '@testing-library/react-native';
5
+ import { SectionsWheelPickerDriver } from "../SectionsWheelPicker.driver";
6
+ import { sections, labels } from "./mockSections";
7
+ const testID = 'sectionsWheel';
8
+ const onChange = jest.fn();
9
+ const TestCase = props => {
10
+ return <SectionsWheelPicker testID={testID} numberOfVisibleRows={4} sections={sections} {...props} />;
11
+ };
12
+ describe('SectionsWheelPicker', () => {
13
+ beforeEach(() => {
14
+ onChange.mockClear();
15
+ });
16
+ it('should present 3 sections', () => {
17
+ const renderTree = render(<TestCase />);
18
+ const driver = SectionsWheelPickerDriver({
19
+ renderTree,
20
+ testID
21
+ });
22
+ expect(driver.sectionsDrivers.length).toBe(3);
23
+ });
24
+ it('should have 3 labels', () => {
25
+ const renderTree = render(<TestCase />);
26
+ const driver = SectionsWheelPickerDriver({
27
+ renderTree,
28
+ testID
29
+ });
30
+ const sectionsDrivers = driver.sectionsDrivers;
31
+ _map(sectionsDrivers, (sectionDriver, index) => {
32
+ expect(sectionDriver.getLabel()).toBe(labels[index]);
33
+ });
34
+ });
35
+ });
@@ -0,0 +1,28 @@
1
+ import _map from "lodash/map";
2
+ import _times from "lodash/times";
3
+ export const labels = ['Days', 'Hrs', 'Mins'];
4
+ const DAYS = _times(10, i => i);
5
+ const HOURS = _times(24, i => i);
6
+ const MINUTES = _times(60, i => i);
7
+ const getItems = values => {
8
+ return _map(values, item => ({
9
+ label: '' + item,
10
+ value: item
11
+ }));
12
+ };
13
+ const onDaysChange = jest.fn();
14
+ const onHoursChange = jest.fn();
15
+ const onMinutesChange = jest.fn();
16
+ export const sections = [{
17
+ items: getItems(DAYS),
18
+ onChange: onDaysChange,
19
+ label: labels[0]
20
+ }, {
21
+ items: getItems(HOURS),
22
+ onChange: onHoursChange,
23
+ label: labels[1]
24
+ }, {
25
+ items: getItems(MINUTES),
26
+ onChange: onMinutesChange,
27
+ label: labels[2]
28
+ }];
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react-native';
3
+ import SegmentedControl from "../index";
4
+ const testSegmentes = [{
5
+ label: 'Segmented 1'
6
+ }, {
7
+ label: 'Segmented 2'
8
+ }, {
9
+ label: 'Segmented 3'
10
+ }, {
11
+ label: 'Segmented 4'
12
+ }];
13
+ const TestCase = props => {
14
+ return <SegmentedControl segments={testSegmentes} {...props} />;
15
+ };
16
+ describe('SegmentedControl', () => {
17
+ it('should render', () => {
18
+ const renderTree = render(<TestCase />);
19
+ expect(renderTree).toBeTruthy();
20
+ });
21
+ it('should render with a label', () => {
22
+ const renderTree = render(<TestCase label="Test Label" />);
23
+ expect(renderTree.queryByText('Test Label')).toBeTruthy();
24
+ });
25
+ });