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.
- package/jestSetup/jest-setup.js +154 -0
- package/lib/components/DynamicFonts/FontDownloader.d.js +1 -0
- package/lib/components/DynamicFonts/FontLoader.d.js +1 -0
- package/lib/components/DynamicFonts/NoPermissionsAcquirer.d.js +1 -0
- package/lib/components/DynamicFonts/PermissionsAcquirer.android.d.js +1 -0
- package/lib/components/DynamicFonts/PermissionsAcquirer.ios.d.js +2 -0
- package/lib/components/DynamicFonts/PermissionsAcquirer.web.d.js +2 -0
- package/lib/components/DynamicFonts/RNFSPackage.d.js +1 -0
- package/lib/components/DynamicFonts/index.d.js +3 -0
- package/lib/components/HighlighterOverlayView/index.d.js +1 -0
- package/lib/components/HighlighterOverlayView/index.web.d.js +1 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.android.d.js +2 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardView.ios.d.js +2 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/CustomKeyboardViewBase.d.js +2 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.d.js +1 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/CustomKeyboardView/index.web.d.js +1 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/EventEmitterManager/index.d.js +1 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/index.d.js +5 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardUtils/index.d.js +1 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.android.d.js +1 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/TextInputKeyboardManager.ios.d.js +1 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/TextInputKeyboardManager/index.d.js +1 -0
- package/lib/components/Keyboard/KeyboardAccessoryView/index.d.js +7 -0
- package/lib/components/Keyboard/KeyboardAwareInsetsView/index.d.js +1 -0
- package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.android.d.js +1 -0
- package/lib/components/Keyboard/KeyboardTrackingView/KeyboardTrackingView.ios.d.js +10 -0
- package/lib/components/Keyboard/KeyboardTrackingView/index.d.js +1 -0
- package/lib/components/Keyboard/KeyboardTrackingView/index.web.d.js +1 -0
- package/lib/components/Keyboard/index.d.js +4 -0
- package/lib/components/SafeArea/SafeAreaInsetsManager.d.js +1 -0
- package/lib/components/SafeArea/SafeAreaSpacerView.d.js +1 -0
- package/lib/components/SafeArea/SafeAreaSpacerView.web.d.js +1 -0
- package/lib/components/SafeArea/index.d.js +1 -0
- package/lib/components/index.d.js +6 -0
- package/lib/scripts/releaseNative.js +72 -0
- package/lib/specs/HighlighterViewNativeComponent.d.js +1 -0
- package/lib/specs/HighlighterViewNativeComponent.d.ts +61 -0
- package/lib/specs/HighlighterViewNativeComponent.js +8 -0
- package/lib/specs/KeyboardTrackingViewNativeComponent.d.js +1 -0
- package/lib/specs/KeyboardTrackingViewNativeComponent.d.ts +58 -0
- package/lib/specs/KeyboardTrackingViewNativeComponent.js +8 -0
- package/package.json +7 -31
- package/scripts/build/build.js +35 -0
- package/scripts/build/buildPackages/buildComponentsPackages.js +18 -0
- package/scripts/build/buildPackages/buildCustomPackages.js +106 -0
- package/scripts/build/buildPackages/index.js +6 -0
- package/scripts/createCalendarMockData.js +37 -0
- package/scripts/docs/buildDocs.js +1 -0
- package/scripts/prepush.js +71 -0
- package/scripts/release/prReleaseNotes.js +6 -0
- package/scripts/release/release.js +99 -0
- package/scripts/updateWebAssets.js +88 -0
- package/scripts/utils.js +21 -0
- package/src/assets/__tests__/Assets.spec.js +110 -0
- package/src/commons/__tests__/baseComponent.spec.js +36 -0
- package/src/commons/__tests__/constants.spec.js +202 -0
- package/src/commons/__tests__/modifiers.spec.js +453 -0
- package/src/components/WheelPicker/__tests__/index.spec.js +121 -0
- package/src/components/WheelPicker/__tests__/useListMiddleIndex.spec.js +40 -0
- package/src/components/WheelPicker/__tests__/usePresenter.spec.js +87 -0
- package/src/components/avatar/__tests__/index.spec.js +25 -0
- package/src/components/badge/__tests__/index.spec.js +84 -0
- package/src/components/button/__tests__/index.driver.spec.js +209 -0
- package/src/components/button/__tests__/index.spec.js +287 -0
- package/src/components/button/index.js +30 -8
- package/src/components/card/__tests__/CardPresenter.spec.js +35 -0
- package/src/components/carousel/__tests__/CarouselPresenter.spec.js +52 -0
- package/src/components/carousel/__tests__/index.spec.js +89 -0
- package/src/components/carousel/index.js +2 -1
- package/src/components/checkbox/__tests__/index.spec.js +357 -0
- package/src/components/chip/__tests__/index.spec.js +63 -0
- package/src/components/colorSwatch/index.js +1 -1
- package/src/components/connectionStatusBar/__tests__/index.spec.js +41 -0
- package/src/components/dateTimePicker/__tests__/index.spec.js +44 -0
- package/src/components/dialog/__tests__/index.new.spec.js +118 -0
- package/src/components/featureHighlight/__tests__/index.spec.js +76 -0
- package/src/components/floatingButton/__tests__/index.spec.js +229 -0
- package/src/components/floatingButton/index.js +66 -35
- package/src/components/hint/__tests__/index.spec.js +108 -0
- package/src/components/image/__tests__/index.spec.js +56 -0
- package/src/components/image/image.api.json +193 -1
- package/src/components/maskedInput/__tests__/maskedInput.new.spec.js +19 -0
- package/src/components/maskedInput/__tests__/maskedInput.old.spec.js +20 -0
- package/src/components/modal/__tests__/index.spec.js +58 -0
- package/src/components/numberInput/__tests__/Presenter.spec.js +374 -0
- package/src/components/numberInput/__tests__/index.spec.js +38 -0
- package/src/components/numberInput/numberInput.api.json +131 -6
- package/src/components/overlay/index.js +2 -1
- package/src/components/pageControl/pageControl.api.json +175 -1
- package/src/components/panView/__tests__/panningUtil.spec.js +693 -0
- package/src/components/picker/__tests__/PickerPresenter.spec.js +15 -0
- package/src/components/picker/__tests__/index.spec.js +364 -0
- package/src/components/picker/helpers/__tests__/usePickerLabel.spec.js +96 -0
- package/src/components/radioButton/__tests__/index.spec.js +43 -0
- package/src/components/radioGroup/__tests__/index.spec.js +96 -0
- package/src/components/sectionsWheelPicker/__tests__/index.spec.js +35 -0
- package/src/components/sectionsWheelPicker/__tests__/mockSections.js +28 -0
- package/src/components/segmentedControl/__tests__/index.spec.js +25 -0
- package/src/components/slider/__tests__/index.spec.js +35 -0
- package/src/components/slider/index.js +12 -1
- package/src/components/slider/slider.api.json +11 -0
- package/src/components/sortableGridList/__tests__/index.spec.js +51 -0
- package/src/components/sortableGridList/__tests__/usePresenter.spec.js +231 -0
- package/src/components/sortableGridList/sortableGridList.api.json +44 -1
- package/src/components/sortableList/SortableList.api.json +51 -3
- package/src/components/sortableList/__tests__/index.spec.js +105 -0
- package/src/components/stackAggregator/assets/arrow-down.png +0 -0
- package/src/components/stackAggregator/assets/arrow-down@2x.png +0 -0
- package/src/components/stackAggregator/assets/arrow-down@3x.png +0 -0
- package/src/components/switch/__tests__/index.spec.js +96 -0
- package/src/components/text/__tests__/index.driver.spec.js +124 -0
- package/src/components/text/__tests__/index.spec.js +245 -0
- package/src/components/textField/__tests__/Presenter.spec.js +240 -0
- package/src/components/textField/__tests__/index.driver.spec.js +639 -0
- package/src/components/timeline/__tests__/driver.index.spec.js +133 -0
- package/src/helpers/__tests__/AvatarHelper.spec.js +170 -0
- package/src/hooks/useDidUpdate/__tests__/useDidUpdate.spec.js +80 -0
- package/src/hooks/useOrientation/__tests__/useOrientation.spec.js +70 -0
- package/src/hooks/useToggleValue/__tests__/useToggleValue.spec.js +89 -0
- package/src/incubator/calendar/__tests__/DateUtils.spec.js +367 -0
- package/src/incubator/expandableOverlay/__tests__/index.spec.js +114 -0
- package/src/incubator/gradient/__tests__/useAngleTransform.spec.js +126 -0
- package/src/incubator/slider/__tests__/SliderPresenter.spec.js +43 -0
- package/src/incubator/slider/__tests__/index.spec.js +34 -0
- package/src/incubator/slider/slider.api.json +11 -0
- package/src/incubator/toast/__tests__/index.spec.js +64 -0
- package/src/style/__tests__/colors.spec.js +313 -0
- package/src/style/__tests__/scheme.spec.js +119 -0
- package/src/style/typographyPresets.js +26 -23
- package/src/utils/__tests__/Playground.perf.js +14 -0
- package/src/utils/__tests__/imageUtils.spec.js +54 -0
- package/src/utils/__tests__/textUtils.spec.js +446 -0
- package/.eslintrc.js +0 -56
- package/babel.config.js +0 -35
- package/index.js +0 -10
- package/lib/android/build.gradle +0 -32
- package/lib/android/src/main/AndroidManifest.xml +0 -4
- package/lib/android/src/main/java/com/wix/reactnativeuilib/UiLibPackageList.java +0 -28
- package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontModule.java +0 -139
- package/lib/android/src/main/java/com/wix/reactnativeuilib/dynamicfont/DynamicFontPackage.java +0 -28
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightFrame.java +0 -33
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlightViewTagParams.java +0 -50
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterView.java +0 -167
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewManager.java +0 -131
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/HighlighterViewPackage.java +0 -28
- package/lib/android/src/main/java/com/wix/reactnativeuilib/highlighterview/UiUtils.java +0 -50
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/AppContextHolder.java +0 -52
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardLayout.java +0 -213
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootView.java +0 -39
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewManager.java +0 -29
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/CustomKeyboardRootViewShadow.java +0 -29
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputModule.java +0 -34
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/KeyboardInputPackage.java +0 -49
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactContextHolder.java +0 -16
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactScreenMonitor.java +0 -83
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/ReactSoftKeyboardMonitor.java +0 -163
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/PredicateFunc.java +0 -5
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/RuntimeUtils.java +0 -33
- package/lib/android/src/main/java/com/wix/reactnativeuilib/keyboardinput/utils/ViewUtils.java +0 -65
- package/lib/android/src/main/java/com/wix/reactnativeuilib/utils/LogForwarder.java +0 -45
- package/lib/android/src/main/res/layout/wheel_picker.xml +0 -9
- package/lib/android/src/main/res/values/colors.xml +0 -9
- package/lib/android/src/main/res/values/styles.xml +0 -9
- package/lib/components/Keyboard/KeyboardAccessoryView/KeyboardRegistry/keyboardRegistry.api.json +0 -50
- package/lib/components/Keyboard/KeyboardAccessoryView/keyboardAccessoryView.api.json +0 -58
- package/lib/components/Keyboard/KeyboardAwareInsetsView/keyboardAwareInsetsView.api.json +0 -14
- package/lib/components/Keyboard/KeyboardTrackingView/keyboardTrackingView.api.json +0 -86
- package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.h +0 -9
- package/lib/ios/reactnativeuilib/dynamicfont/DynamicFont.m +0 -115
- package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.h +0 -19
- package/lib/ios/reactnativeuilib/highlighterview/HighlighterView.m +0 -216
- package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.h +0 -6
- package/lib/ios/reactnativeuilib/highlighterview/HighlighterViewManager.m +0 -28
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.h +0 -39
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/Color+Interpolation.m +0 -160
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.h +0 -36
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNAnimatorTemp.m +0 -121
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.h +0 -48
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolable.m +0 -27
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/LNInterpolation.h +0 -16
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.h +0 -19
- package/lib/ios/reactnativeuilib/keyboardinput/lninterpolation/NSValue+Interpolation.mm +0 -155
- package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.h +0 -16
- package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomInputControllerTemp.m +0 -450
- package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.h +0 -18
- package/lib/ios/reactnativeuilib/keyboardinput/rctcustomInputcontroller/RCTCustomKeyboardViewControllerTemp.m +0 -99
- package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.h +0 -14
- package/lib/ios/reactnativeuilib/keyboardtrackingview/KeyboardTrackingViewTempManager.m +0 -827
- package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.h +0 -44
- package/lib/ios/reactnativeuilib/keyboardtrackingview/ObservingInputAccessoryViewTemp.m +0 -171
- package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.h +0 -6
- package/lib/ios/reactnativeuilib/keyboardtrackingview/UIResponder+FirstResponderTemp.m +0 -17
- package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.h +0 -6
- package/lib/ios/reactnativeuilib/safearea/SafeAreaManager.m +0 -105
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.h +0 -5
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerShadowView.m +0 -20
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.h +0 -7
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerView.m +0 -76
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.h +0 -9
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewLocalData.m +0 -14
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.h +0 -5
- package/lib/ios/reactnativeuilib/safearea/SafeAreaSpacerViewManager.m +0 -26
- package/lib/ios/reactnativeuilib.xcodeproj/project.pbxproj +0 -435
- package/metro.config.js +0 -23
- package/src/.babelrc.json +0 -23
- package/src/assets/Assets.d.ts +0 -5
- package/src/assets/emojis/index.d.ts +0 -1343
- package/src/assets/index.d.ts +0 -3
- package/src/assets/internal/index.d.ts +0 -4
- package/src/commons/Config.d.ts +0 -24
- package/src/commons/Constants.d.ts +0 -54
- package/src/commons/UIComponent.d.ts +0 -4
- package/src/commons/asBaseComponent.d.ts +0 -15
- package/src/commons/baseComponent.d.ts +0 -2
- package/src/commons/forwardRef.d.ts +0 -8
- package/src/commons/modifiers.d.ts +0 -118
- package/src/commons/new.d.ts +0 -8
- package/src/commons/withScrollEnabler.d.ts +0 -13
- package/src/commons/withScrollReached.d.ts +0 -35
- package/src/components/WheelPicker/Item.d.ts +0 -28
- package/src/components/WheelPicker/WheelPicker.driver.d.ts +0 -18
- package/src/components/WheelPicker/WheelPickerItem.driver.d.ts +0 -8
- package/src/components/WheelPicker/helpers/useListMiddleIndex.d.ts +0 -6
- package/src/components/WheelPicker/index.d.ts +0 -88
- package/src/components/WheelPicker/types.d.ts +0 -6
- package/src/components/WheelPicker/usePresenter.d.ts +0 -21
- package/src/components/actionBar/index.d.ts +0 -35
- package/src/components/actionSheet/index.d.ts +0 -80
- package/src/components/animatedImage/index.d.ts +0 -28
- package/src/components/avatar/index.d.ts +0 -382
- package/src/components/badge/index.d.ts +0 -879
- package/src/components/baseInput/Validators.d.ts +0 -8
- package/src/components/baseInput/index.d.ts +0 -29
- package/src/components/button/Button.driver.new.d.ts +0 -34
- package/src/components/button/ButtonConstants.d.ts +0 -26
- package/src/components/button/index.d.ts +0 -572
- package/src/components/button/types.d.ts +0 -153
- package/src/components/card/CardContext.d.ts +0 -3
- package/src/components/card/CardImage.d.ts +0 -20
- package/src/components/card/CardPresenter.d.ts +0 -12
- package/src/components/card/CardSection.d.ts +0 -79
- package/src/components/card/asCardChild.d.ts +0 -6
- package/src/components/card/index.d.ts +0 -120
- package/src/components/carousel/Carousel.driver.new.d.ts +0 -9
- package/src/components/carousel/CarouselPresenter.d.ts +0 -9
- package/src/components/carousel/index.d.ts +0 -73
- package/src/components/carousel/types.d.ts +0 -107
- package/src/components/checkbox/Checkbox.driver.d.ts +0 -15
- package/src/components/checkbox/index.d.ts +0 -129
- package/src/components/chip/chip.driver.d.ts +0 -33
- package/src/components/chip/index.d.ts +0 -209
- package/src/components/chipsInput/index.d.ts +0 -55
- package/src/components/colorPalette/index.d.ts +0 -116
- package/src/components/colorPicker/ColorPickerDialog.d.ts +0 -39
- package/src/components/colorPicker/ColorPickerDialogHeader.d.ts +0 -9
- package/src/components/colorPicker/ColorPickerDialogSliders.d.ts +0 -10
- package/src/components/colorPicker/ColorPickerPresenter.d.ts +0 -16
- package/src/components/colorPicker/ColorPickerPreview.d.ts +0 -12
- package/src/components/colorPicker/index.d.ts +0 -45
- package/src/components/colorSwatch/index.d.ts +0 -50
- package/src/components/connectionStatusBar/index.d.ts +0 -33
- package/src/components/connectionStatusBar/types.d.ts +0 -28
- package/src/components/dash/index.d.ts +0 -19
- package/src/components/dateTimePicker/DateTimePicker.driver.d.ts +0 -7
- package/src/components/dateTimePicker/index.d.ts +0 -288
- package/src/components/dateTimePicker/useOldApi.d.ts +0 -27
- package/src/components/dialog/Dialog.driver.new.d.ts +0 -6
- package/src/components/dialog/DialogHeader.d.ts +0 -4
- package/src/components/dialog/index.d.ts +0 -15
- package/src/components/dialog/types.d.ts +0 -138
- package/src/components/dialog/useDialogContent.d.ts +0 -13
- package/src/components/drawer/Swipeable.d.ts +0 -94
- package/src/components/drawer/index.d.ts +0 -161
- package/src/components/expandableSection/index.d.ts +0 -40
- package/src/components/fadedScrollView/index.d.ts +0 -59
- package/src/components/fader/index.d.ts +0 -37
- package/src/components/featureHighlight/index.d.ts +0 -147
- package/src/components/floatingButton/index.d.ts +0 -85
- package/src/components/gradient/index.d.ts +0 -19
- package/src/components/gridList/index.d.ts +0 -5
- package/src/components/gridList/types.d.ts +0 -29
- package/src/components/gridList/useGridLayout.d.ts +0 -15
- package/src/components/gridListItem/index.d.ts +0 -132
- package/src/components/gridView/index.d.ts +0 -80
- package/src/components/hint/Hint.driver.d.ts +0 -6
- package/src/components/hint/Hint.driver.new.d.ts +0 -19
- package/src/components/hint/HintAnchor.d.ts +0 -13
- package/src/components/hint/HintBubble.d.ts +0 -12
- package/src/components/hint/HintMockChildren.d.ts +0 -8
- package/src/components/hint/HintOld.d.ts +0 -196
- package/src/components/hint/hooks/useHintAccessibility.d.ts +0 -10
- package/src/components/hint/hooks/useHintLayout.d.ts +0 -13
- package/src/components/hint/hooks/useHintPosition.d.ts +0 -29
- package/src/components/hint/hooks/useHintVisibility.d.ts +0 -6
- package/src/components/hint/index.d.ts +0 -14
- package/src/components/hint/types.d.ts +0 -106
- package/src/components/icon/index.d.ts +0 -97
- package/src/components/image/Image.driver.d.ts +0 -4
- package/src/components/image/Image.driver.new.d.ts +0 -2
- package/src/components/image/index.d.ts +0 -192
- package/src/components/listItem/ListItemPart.d.ts +0 -15
- package/src/components/listItem/index.d.ts +0 -52
- package/src/components/listItem/types.d.ts +0 -60
- package/src/components/loaderScreen/index.d.ts +0 -13
- package/src/components/loaderScreen/types.d.ts +0 -32
- package/src/components/marquee/index.d.ts +0 -5
- package/src/components/marquee/types.d.ts +0 -35
- package/src/components/maskedInput/index.d.ts +0 -5
- package/src/components/maskedInput/new.d.ts +0 -22
- package/src/components/modal/Modal.driver.new.d.ts +0 -8
- package/src/components/modal/TopBar.d.ts +0 -89
- package/src/components/modal/index.d.ts +0 -64
- package/src/components/numberInput/NumberInput.driver.d.ts +0 -6
- package/src/components/numberInput/Presenter.d.ts +0 -21
- package/src/components/numberInput/index.d.ts +0 -57
- package/src/components/overlay/index.d.ts +0 -68
- package/src/components/pageControl/index.d.ts +0 -56
- package/src/components/panView/index.d.ts +0 -21
- package/src/components/panView/panningUtil.d.ts +0 -38
- package/src/components/panView/usePanGesture.d.ts +0 -49
- package/src/components/picker/Picker.driver.new.d.ts +0 -44
- package/src/components/picker/PickerContext.d.ts +0 -4
- package/src/components/picker/PickerItem.d.ts +0 -11
- package/src/components/picker/PickerItemsList.d.ts +0 -4
- package/src/components/picker/PickerPresenter.d.ts +0 -7
- package/src/components/picker/PickerSelectionStatusBar.d.ts +0 -3
- package/src/components/picker/helpers/useFieldType.d.ts +0 -373
- package/src/components/picker/helpers/useImperativePickerHandle.d.ts +0 -5
- package/src/components/picker/helpers/useNewPickerProps.d.ts +0 -3
- package/src/components/picker/helpers/usePickerLabel.d.ts +0 -17
- package/src/components/picker/helpers/usePickerMigrationWarnings.d.ts +0 -4
- package/src/components/picker/helpers/usePickerSearch.d.ts +0 -9
- package/src/components/picker/helpers/usePickerSelection.d.ts +0 -16
- package/src/components/picker/index.d.ts +0 -15
- package/src/components/picker/types.d.ts +0 -321
- package/src/components/pieChart/PieSegment.d.ts +0 -34
- package/src/components/pieChart/index.d.ts +0 -15
- package/src/components/progressBar/index.d.ts +0 -65
- package/src/components/progressiveImage/index.d.ts +0 -23
- package/src/components/radioButton/RadioButton.driver.d.ts +0 -9
- package/src/components/radioButton/index.d.ts +0 -121
- package/src/components/radioGroup/RadioGroup.driver.d.ts +0 -13
- package/src/components/radioGroup/RadioGroupContext.d.ts +0 -14
- package/src/components/radioGroup/asRadioGroupChild.d.ts +0 -2
- package/src/components/radioGroup/index.d.ts +0 -47
- package/src/components/scrollBar/index.d.ts +0 -88
- package/src/components/searchInput/index.d.ts +0 -37
- package/src/components/searchInput/types.d.ts +0 -66
- package/src/components/sectionsWheelPicker/SectionsWheelPicker.driver.d.ts +0 -25
- package/src/components/sectionsWheelPicker/index.d.ts +0 -43
- package/src/components/segmentedControl/index.d.ts +0 -90
- package/src/components/segmentedControl/segment.d.ts +0 -111
- package/src/components/segmentedControl/useSegmentedControlPreset.d.ts +0 -10
- package/src/components/skeletonView/index.d.ts +0 -163
- package/src/components/slider/ColorSliderGroup.d.ts +0 -13
- package/src/components/slider/GradientSlider.d.ts +0 -20
- package/src/components/slider/SliderContext.d.ts +0 -8
- package/src/components/slider/Thumb.d.ts +0 -32
- package/src/components/slider/index.d.ts +0 -31
- package/src/components/slider/slider.driver.d.ts +0 -5
- package/src/components/slider/types.d.ts +0 -197
- package/src/components/sortableGridList/SortableItem.d.ts +0 -6
- package/src/components/sortableGridList/index.d.ts +0 -5
- package/src/components/sortableGridList/types.d.ts +0 -34
- package/src/components/sortableGridList/usePresenter.d.ts +0 -21
- package/src/components/sortableList/SortableList.driver.new.d.ts +0 -2
- package/src/components/sortableList/SortableListContext.d.ts +0 -19
- package/src/components/sortableList/SortableListItem.d.ts +0 -8
- package/src/components/sortableList/SortableListItem.driver.new.d.ts +0 -11
- package/src/components/sortableList/index.d.ts +0 -5
- package/src/components/sortableList/types.d.ts +0 -48
- package/src/components/sortableList/usePresenter.d.ts +0 -12
- package/src/components/stackAggregator/index.d.ts +0 -89
- package/src/components/stateScreen/index.d.ts +0 -5
- package/src/components/stateScreen/types.d.ts +0 -30
- package/src/components/stepper/index.d.ts +0 -47
- package/src/components/svgImage/index.d.ts +0 -14
- package/src/components/svgImage/index.web.d.ts +0 -18
- package/src/components/switch/index.d.ts +0 -102
- package/src/components/switch/switch.driver.d.ts +0 -18
- package/src/components/tabController/PageCarousel.d.ts +0 -9
- package/src/components/tabController/TabBar.d.ts +0 -97
- package/src/components/tabController/TabBarContext.d.ts +0 -18
- package/src/components/tabController/TabBarItem.d.ts +0 -105
- package/src/components/tabController/TabPage.d.ts +0 -33
- package/src/components/tabController/index.d.ts +0 -48
- package/src/components/tabController/useImperativeTabControllerHandle.d.ts +0 -6
- package/src/components/tabController/useScrollToItem.d.ts +0 -79
- package/src/components/text/Text.driver.d.ts +0 -7
- package/src/components/text/Text.driver.new.d.ts +0 -17
- package/src/components/text/index.d.ts +0 -195
- package/src/components/textField/CharCounter.d.ts +0 -7
- package/src/components/textField/ClearButton.d.ts +0 -4
- package/src/components/textField/FieldContext.d.ts +0 -4
- package/src/components/textField/FloatingPlaceholder.d.ts +0 -7
- package/src/components/textField/Input.d.ts +0 -8
- package/src/components/textField/Label.d.ts +0 -7
- package/src/components/textField/Presenter.d.ts +0 -7
- package/src/components/textField/TextField.driver.new.d.ts +0 -129
- package/src/components/textField/ValidationMessage.d.ts +0 -7
- package/src/components/textField/index.d.ts +0 -114
- package/src/components/textField/presets/outline.d.ts +0 -737
- package/src/components/textField/presets/underline.d.ts +0 -735
- package/src/components/textField/textInput/index.d.ts +0 -1
- package/src/components/textField/textInput/index.web.d.ts +0 -3
- package/src/components/textField/types.d.ts +0 -287
- package/src/components/textField/useFieldState.d.ts +0 -16
- package/src/components/textField/useImperativeInputHandle.d.ts +0 -4
- package/src/components/textField/usePreset.d.ts +0 -1696
- package/src/components/textField/validators.d.ts +0 -9
- package/src/components/textFieldOld/index.d.ts +0 -71
- package/src/components/timeline/Line.d.ts +0 -10
- package/src/components/timeline/Point.d.ts +0 -9
- package/src/components/timeline/index.d.ts +0 -11
- package/src/components/timeline/line.driver.d.ts +0 -10
- package/src/components/timeline/point.driver.d.ts +0 -8
- package/src/components/timeline/timeline.driver.d.ts +0 -25
- package/src/components/timeline/types.d.ts +0 -50
- package/src/components/touchableOpacity/index.d.ts +0 -50
- package/src/components/view/View.driver.new.d.ts +0 -7
- package/src/components/view/index.d.ts +0 -46
- package/src/components/wizard/WizardStates.d.ts +0 -2
- package/src/components/wizard/WizardStep.d.ts +0 -4
- package/src/components/wizard/index.d.ts +0 -31
- package/src/components/wizard/types.d.ts +0 -90
- package/src/helpers/AvatarHelper.d.ts +0 -9
- package/src/helpers/FormattingPresenter.d.ts +0 -6
- package/src/helpers/Profiler.d.ts +0 -22
- package/src/helpers/index.d.ts +0 -3
- package/src/hooks/index.d.ts +0 -14
- package/src/hooks/useCombinedRefs/index.d.ts +0 -3
- package/src/hooks/useDebounce/index.d.ts +0 -5
- package/src/hooks/useDidUpdate/index.d.ts +0 -6
- package/src/hooks/useHiddenLocation/index.d.ts +0 -13
- package/src/hooks/useHiddenLocation/index.web.d.ts +0 -13
- package/src/hooks/useKeyboardHeight/index.d.ts +0 -5
- package/src/hooks/useMeasure/index.d.ts +0 -15
- package/src/hooks/useModifiers/index.d.ts +0 -3
- package/src/hooks/useOrientation/index.d.ts +0 -7
- package/src/hooks/useScrollEnabler/index.d.ts +0 -23
- package/src/hooks/useScrollReached/index.d.ts +0 -28
- package/src/hooks/useScrollTo/index.d.ts +0 -37
- package/src/hooks/useScrollToItem/index.d.ts +0 -65
- package/src/hooks/useThemeProps/index.d.ts +0 -2
- package/src/hooks/useToggleValue/index.d.ts +0 -2
- package/src/incubator/TouchableOpacity.d.ts +0 -52
- package/src/incubator/calendar/Agenda.d.ts +0 -4
- package/src/incubator/calendar/CalendarContext.d.ts +0 -4
- package/src/incubator/calendar/CalendarItem.d.ts +0 -5
- package/src/incubator/calendar/Day.d.ts +0 -4
- package/src/incubator/calendar/Day_OLD.d.ts +0 -4
- package/src/incubator/calendar/Header.d.ts +0 -4
- package/src/incubator/calendar/Month.d.ts +0 -4
- package/src/incubator/calendar/TodayButton.d.ts +0 -4
- package/src/incubator/calendar/Week.d.ts +0 -4
- package/src/incubator/calendar/WeekDaysNames.d.ts +0 -4
- package/src/incubator/calendar/helpers/CalendarProcessor.d.ts +0 -2
- package/src/incubator/calendar/helpers/DataProcessor.d.ts +0 -2
- package/src/incubator/calendar/helpers/DateUtils.d.ts +0 -23
- package/src/incubator/calendar/index.d.ts +0 -7
- package/src/incubator/calendar/types.d.ts +0 -118
- package/src/incubator/expandableOverlay/ExpandableOverlay.driver.d.ts +0 -7
- package/src/incubator/expandableOverlay/index.d.ts +0 -83
- package/src/incubator/gradient/BorderGradient.d.ts +0 -4
- package/src/incubator/gradient/CircleGradient.d.ts +0 -4
- package/src/incubator/gradient/RectangleGradient.d.ts +0 -4
- package/src/incubator/gradient/index.d.ts +0 -5
- package/src/incubator/gradient/types.d.ts +0 -26
- package/src/incubator/gradient/useAngleTransform.d.ts +0 -27
- package/src/incubator/index.d.ts +0 -9
- package/src/incubator/slider/Slider.driver.d.ts +0 -5
- package/src/incubator/slider/SliderPresenter.d.ts +0 -6
- package/src/incubator/slider/Thumb.d.ts +0 -24
- package/src/incubator/slider/Track.d.ts +0 -13
- package/src/incubator/slider/index.d.ts +0 -139
- package/src/incubator/toast/Toast.driver.new.d.ts +0 -54
- package/src/incubator/toast/helpers/useToastAnimation.d.ts +0 -22
- package/src/incubator/toast/helpers/useToastPresets.d.ts +0 -8
- package/src/incubator/toast/helpers/useToastTimer.d.ts +0 -6
- package/src/incubator/toast/index.d.ts +0 -9
- package/src/incubator/toast/types.d.ts +0 -111
- package/src/index.d.ts +0 -92
- package/src/optionalDependencies/BlurViewPackage.d.ts +0 -2
- package/src/optionalDependencies/BlurViewPackage.web.d.ts +0 -2
- package/src/optionalDependencies/DateTimePickerPackage.d.ts +0 -2
- package/src/optionalDependencies/FlashListPackage.d.ts +0 -2
- package/src/optionalDependencies/HapticFeedbackPackage.d.ts +0 -2
- package/src/optionalDependencies/LinearGradientPackage.d.ts +0 -2
- package/src/optionalDependencies/MomentPackage.d.ts +0 -2
- package/src/optionalDependencies/NetInfoPackage.d.ts +0 -2
- package/src/optionalDependencies/PostCssPackage.d.ts +0 -5
- package/src/optionalDependencies/ShimmerPackage.d.ts +0 -2
- package/src/optionalDependencies/SvgPackage.d.ts +0 -3
- package/src/optionalDependencies/index.d.ts +0 -9
- package/src/optionalDependencies/index.web.d.ts +0 -7
- package/src/services/HapticService.d.ts +0 -15
- package/src/services/LogService.d.ts +0 -35
- package/src/services/index.d.ts +0 -2
- package/src/style/borderRadiuses.d.ts +0 -30
- package/src/style/colorName.d.ts +0 -8
- package/src/style/colorNameMap.d.ts +0 -2
- package/src/style/colors.d.ts +0 -274
- package/src/style/colorsPalette.d.ts +0 -101
- package/src/style/components.d.ts +0 -15
- package/src/style/componentsColors.d.ts +0 -5
- package/src/style/designTokens.d.ts +0 -69
- package/src/style/designTokensDM.d.ts +0 -69
- package/src/style/dividers.d.ts +0 -11
- package/src/style/index.d.ts +0 -13
- package/src/style/scheme.d.ts +0 -57
- package/src/style/shadows.d.ts +0 -223
- package/src/style/spacings.d.ts +0 -32
- package/src/style/themeManager.d.ts +0 -22
- package/src/style/typography.d.ts +0 -26
- package/src/style/typographyPresets.d.ts +0 -7
- package/src/testkit/Component.driver.d.ts +0 -30
- package/src/testkit/DriverException.d.ts +0 -12
- package/src/testkit/UniDriver.d.ts +0 -29
- package/src/testkit/drivers/TestingLibraryDriver.d.ts +0 -26
- package/src/testkit/index.d.ts +0 -25
- package/src/testkit/new/Component.driver.d.ts +0 -16
- package/src/testkit/new/useDraggable.driver.d.ts +0 -15
- package/src/testkit/new/usePressable.driver.d.ts +0 -14
- package/src/testkit/new/useScrollable.driver.d.ts +0 -13
- package/src/typings/assets.d.ts +0 -52
- package/src/typings/common.d.ts +0 -12
- package/src/typings/module.d.ts +0 -13
- package/src/typings/recorderTypes.d.ts +0 -13
- package/src/uilib-test-renderer/helper.d.ts +0 -8
- package/src/uilib-test-renderer/index.d.ts +0 -4
- package/src/uilib-test-renderer/scrollViewHelper.d.ts +0 -9
- package/src/utils/dateUtils.d.ts +0 -2
- package/src/utils/imageUtils.d.ts +0 -5
- package/src/utils/index.d.ts +0 -4
- package/src/utils/styleUtils.d.ts +0 -7
- package/src/utils/textUtils.d.ts +0 -8
- /package/{src → scripts/build}/.babelrc.exports.js +0 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import _times from "lodash/times";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { render /* , act, waitFor */ } from '@testing-library/react-native';
|
|
4
|
+
import { Colors } from "../../../style";
|
|
5
|
+
import WheelPicker from "../index";
|
|
6
|
+
import { WheelPickerDriver } from "../WheelPicker.driver";
|
|
7
|
+
import { WheelPickerItemDriver } from "../WheelPickerItem.driver";
|
|
8
|
+
const ITEM_HEIGHT = 50;
|
|
9
|
+
const NUM_OF_ROWS = 10;
|
|
10
|
+
const testID = 'wheel';
|
|
11
|
+
const onChange = jest.fn();
|
|
12
|
+
const TestCase = props => {
|
|
13
|
+
return <WheelPicker testID={testID} items={_times(60, i => i).map(item => ({
|
|
14
|
+
label: `item #${item}`,
|
|
15
|
+
value: item,
|
|
16
|
+
testID: `${item}`
|
|
17
|
+
}))} initialValue={0} onChange={onChange} numberOfVisibleRows={NUM_OF_ROWS} itemHeight={ITEM_HEIGHT} activeTextColor={Colors.red30} inactiveTextColor={Colors.blue30} {...props} />;
|
|
18
|
+
};
|
|
19
|
+
describe('WheelPicker', () => {
|
|
20
|
+
beforeEach(() => {
|
|
21
|
+
onChange.mockClear();
|
|
22
|
+
});
|
|
23
|
+
describe('FlatList', () => {
|
|
24
|
+
it('should present $NUM_OF_ROWS rows', () => {
|
|
25
|
+
const renderTree = render(<TestCase />);
|
|
26
|
+
const driver = WheelPickerDriver({
|
|
27
|
+
renderTree,
|
|
28
|
+
testID
|
|
29
|
+
});
|
|
30
|
+
expect(driver.getListHeight()).toBe(NUM_OF_ROWS * ITEM_HEIGHT);
|
|
31
|
+
});
|
|
32
|
+
it('should call onChange after scrolling ends with default itemHeight and numberOfRows', () => {
|
|
33
|
+
const props = {
|
|
34
|
+
itemHeight: undefined,
|
|
35
|
+
numberOfVisibleRows: undefined
|
|
36
|
+
};
|
|
37
|
+
const renderTree = render(<TestCase {...props} />);
|
|
38
|
+
const driver = WheelPickerDriver({
|
|
39
|
+
renderTree,
|
|
40
|
+
testID
|
|
41
|
+
});
|
|
42
|
+
driver.moveToItem(4);
|
|
43
|
+
expect(onChange).toHaveBeenCalledWith(4, 4);
|
|
44
|
+
driver.moveToItem(7);
|
|
45
|
+
expect(onChange).toHaveBeenCalledWith(7, 7);
|
|
46
|
+
});
|
|
47
|
+
it('should call onChange after scrolling ends', () => {
|
|
48
|
+
const renderTree = render(<TestCase />);
|
|
49
|
+
const driver = WheelPickerDriver({
|
|
50
|
+
renderTree,
|
|
51
|
+
testID
|
|
52
|
+
});
|
|
53
|
+
driver.moveToItem(4, ITEM_HEIGHT);
|
|
54
|
+
expect(onChange).toHaveBeenCalledWith(4, 4);
|
|
55
|
+
driver.moveToItem(7, ITEM_HEIGHT);
|
|
56
|
+
expect(onChange).toHaveBeenCalledWith(7, 7);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
describe('initialValue', () => {
|
|
60
|
+
it('should not call onChange when initialValue is updated', () => {
|
|
61
|
+
const renderTree = render(<TestCase />);
|
|
62
|
+
renderTree.rerender(<TestCase initialValue={2} />);
|
|
63
|
+
expect(onChange).not.toHaveBeenCalled();
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('label', () => {
|
|
67
|
+
it('should return label', () => {
|
|
68
|
+
const label = 'Hours';
|
|
69
|
+
const renderTree = render(<TestCase label={label} />);
|
|
70
|
+
const driver = WheelPickerDriver({
|
|
71
|
+
renderTree,
|
|
72
|
+
testID
|
|
73
|
+
});
|
|
74
|
+
expect(driver.getLabel()).toEqual(label);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
describe('PickerItem', () => {
|
|
78
|
+
it('should get first item\'s label', () => {
|
|
79
|
+
const renderTree = render(<TestCase />);
|
|
80
|
+
const index = 0;
|
|
81
|
+
const driver = WheelPickerItemDriver({
|
|
82
|
+
renderTree,
|
|
83
|
+
testID: `${index}`
|
|
84
|
+
});
|
|
85
|
+
expect(driver.getLabel()).toEqual('item #0');
|
|
86
|
+
});
|
|
87
|
+
it('should get first item\'s text style when no active/inactive colors', () => {
|
|
88
|
+
const renderTree = render(<TestCase textStyle={{
|
|
89
|
+
color: Colors.green30
|
|
90
|
+
}} />);
|
|
91
|
+
const index = 0;
|
|
92
|
+
const driver = WheelPickerItemDriver({
|
|
93
|
+
renderTree,
|
|
94
|
+
testID: `${index}`
|
|
95
|
+
});
|
|
96
|
+
expect(driver.getLabelStyle()?.color).toEqual(Colors.green30);
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
//TODO: Fix these test's using AnimatedStyle mocking
|
|
100
|
+
// it('should call onChange after second item is pressed', async () => {
|
|
101
|
+
// const renderTree = render(<TestCase/>);
|
|
102
|
+
// const index = 1;
|
|
103
|
+
// const driver = WheelPickerItemDriver({renderTree, testID: `${index}`});
|
|
104
|
+
|
|
105
|
+
// driver.press();
|
|
106
|
+
|
|
107
|
+
// expect(await onChange).toHaveBeenCalledTimes(1);
|
|
108
|
+
// expect(onChange).toHaveBeenCalledWith(1);
|
|
109
|
+
// });
|
|
110
|
+
|
|
111
|
+
// it('should not call onChange after first item is pressed', async () => {
|
|
112
|
+
// const renderTree = render(<TestCase/>);
|
|
113
|
+
// const index = 0;
|
|
114
|
+
// const driver = WheelPickerItemDriver({renderTree, testID: `${index}`});
|
|
115
|
+
|
|
116
|
+
// driver.press();
|
|
117
|
+
|
|
118
|
+
// expect(onChange).not.toHaveBeenCalledTimes(1);
|
|
119
|
+
// });
|
|
120
|
+
});
|
|
121
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import useMiddleIndex from '../helpers/useListMiddleIndex';
|
|
2
|
+
|
|
3
|
+
describe('Finds list\'s middle index', () => {
|
|
4
|
+
|
|
5
|
+
it('When list is at offset 0, it should return the index of the first item', () => {
|
|
6
|
+
const sut = useMiddleIndex({itemHeight: 50, listSize: 10});
|
|
7
|
+
const offset = 0;
|
|
8
|
+
expect(sut(offset)).toEqual(0);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
it('When list is at offset 100, it means we are at passed on 2 items', () => {
|
|
12
|
+
const sut = useMiddleIndex({itemHeight: 50, listSize: 10});
|
|
13
|
+
const offset = 100;
|
|
14
|
+
expect(sut(offset)).toEqual(2);
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it('Make sure calculation changes on the middle of the item height', () => {
|
|
18
|
+
const sut = useMiddleIndex({itemHeight: 50, listSize: 10});
|
|
19
|
+
let offset = 24;
|
|
20
|
+
expect(sut(offset)).toEqual(0);
|
|
21
|
+
|
|
22
|
+
offset = 26;
|
|
23
|
+
expect(sut(offset)).toEqual(1);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('Make sure calculation does not exceeds the number of items', () => {
|
|
27
|
+
const sut = useMiddleIndex({itemHeight: 50, listSize: 10});
|
|
28
|
+
let offset = 501;
|
|
29
|
+
expect(sut(offset)).toEqual(9);
|
|
30
|
+
|
|
31
|
+
offset = 600;
|
|
32
|
+
expect(sut(offset)).toEqual(9);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it('Make sure calculation does not less then 0', () => {
|
|
36
|
+
const sut = useMiddleIndex({itemHeight: 50, listSize: 10});
|
|
37
|
+
const offset = -100;
|
|
38
|
+
expect(sut(offset)).toEqual(0);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import usePresenter from '../usePresenter';
|
|
2
|
+
import {renderHook} from '@testing-library/react-hooks';
|
|
3
|
+
|
|
4
|
+
describe('WheelPicker presenter tests', () => {
|
|
5
|
+
jest.spyOn(global.console, 'warn');
|
|
6
|
+
|
|
7
|
+
const makeSUT = ({items = makeItems(9), children, initialValue, itemHeight = 10, preferredNumVisibleRows = 20}) => {
|
|
8
|
+
return renderHook(() =>
|
|
9
|
+
usePresenter({
|
|
10
|
+
items,
|
|
11
|
+
children,
|
|
12
|
+
initialValue,
|
|
13
|
+
itemHeight,
|
|
14
|
+
preferredNumVisibleRows
|
|
15
|
+
}));
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
const makeItems = (count, stringValue) => {
|
|
19
|
+
const items = [];
|
|
20
|
+
while (count >= items.length) {
|
|
21
|
+
const someData = stringValue ? stringValue + items.length : items.length;
|
|
22
|
+
const item = {value: someData, label: someData};
|
|
23
|
+
items.push(item);
|
|
24
|
+
}
|
|
25
|
+
return items;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
it('expect height of the content-view to be itemHeight * preferredNumVisibleRows', () => {
|
|
29
|
+
let sut = makeSUT({items: makeItems(44), itemHeight: 10, preferredNumVisibleRows: 5});
|
|
30
|
+
expect(sut.result.current.height).toEqual(50);
|
|
31
|
+
|
|
32
|
+
sut = makeSUT({items: makeItems(10), itemHeight: 20, preferredNumVisibleRows: 3});
|
|
33
|
+
expect(sut.result.current.height).toEqual(60);
|
|
34
|
+
|
|
35
|
+
sut = makeSUT({items: makeItems(10), itemHeight: 0, preferredNumVisibleRows: 0});
|
|
36
|
+
expect(sut.result.current.height).toEqual(0);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('Expect to find items by their string types', () => {
|
|
40
|
+
let sut = makeSUT({items: makeItems(15, 'a'), initialValue: 'a2'});
|
|
41
|
+
expect(sut.result.current.index).toEqual(2);
|
|
42
|
+
|
|
43
|
+
sut = makeSUT({items: makeItems(100, 'bbb'), initialValue: 'bbb71'});
|
|
44
|
+
expect(sut.result.current.index).toEqual(71);
|
|
45
|
+
|
|
46
|
+
// no data found
|
|
47
|
+
sut = makeSUT({items: makeItems(10, 'b'), initialValue: '$$$'});
|
|
48
|
+
expect(sut.result.current.index).toEqual(-1);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('Expect to find items by their number types', () => {
|
|
52
|
+
let sut = makeSUT({items: makeItems(11), initialValue: 0});
|
|
53
|
+
expect(sut.result.current.index).toEqual(0);
|
|
54
|
+
|
|
55
|
+
sut = makeSUT({items: makeItems(8), initialValue: 4});
|
|
56
|
+
expect(sut.result.current.index).toEqual(4);
|
|
57
|
+
|
|
58
|
+
sut = makeSUT({items: makeItems(18), initialValue: 18});
|
|
59
|
+
expect(sut.result.current.index).toEqual(18);
|
|
60
|
+
|
|
61
|
+
sut = makeSUT({items: makeItems(18), initialValue: 99});
|
|
62
|
+
expect(sut.result.current.index).toEqual(-1);
|
|
63
|
+
|
|
64
|
+
sut = makeSUT({items: makeItems(0), initialValue: 99});
|
|
65
|
+
expect(sut.result.current.index).toEqual(-1);
|
|
66
|
+
|
|
67
|
+
sut = makeSUT({items: makeItems(0), initialValue: 0});
|
|
68
|
+
expect(sut.result.current.index).toEqual(0);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it('Expect to find items by their object of {value, label} types', () => {
|
|
72
|
+
const {result} = makeSUT({items: makeItems(15, 'b'), initialValue: {value: 'b6', label: 'abc'}});
|
|
73
|
+
expect(result.current.index).toEqual(6);
|
|
74
|
+
expect(console.warn).toHaveBeenCalledWith('UILib WheelPicker will stop supporting initialValue prop type as an object (ItemProps). Please pass string or number only');
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it('Expect getRowItemAtOffset to return the right row for offset', () => {
|
|
78
|
+
let sut = makeSUT({initialValue: 2, itemHeight: 100});
|
|
79
|
+
|
|
80
|
+
let offset = 300;
|
|
81
|
+
expect(sut.result.current.getRowItemAtOffset(offset).value).toEqual(3);
|
|
82
|
+
|
|
83
|
+
sut = makeSUT({initialValue: 0, itemHeight: 100});
|
|
84
|
+
offset = 0;
|
|
85
|
+
expect(sut.result.current.getRowItemAtOffset(offset).value).toEqual(0);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {StyleSheet} from 'react-native';
|
|
3
|
+
import {render} from '@testing-library/react-native';
|
|
4
|
+
import {Avatar} from '../index';
|
|
5
|
+
|
|
6
|
+
function verifyBadgeSize(renderTree, expectedSize) {
|
|
7
|
+
const badge = renderTree.getByTestId('avatar.onlineBadge');
|
|
8
|
+
const style = StyleSheet.flatten(badge.props.style);
|
|
9
|
+
expect(style.width).toEqual(expectedSize);
|
|
10
|
+
expect(style.height).toEqual(expectedSize);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
describe('Avatar Badge', () => {
|
|
14
|
+
describe('badgeProps.size supports number', () => {
|
|
15
|
+
it('should return 99 as the size number given', () => {
|
|
16
|
+
const renderTree = render(<Avatar testID={'avatar'} badgeProps={{size: 99}}/>);
|
|
17
|
+
verifyBadgeSize(renderTree, 99);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('should return default when passing 0 as size', () => {
|
|
21
|
+
const renderTree = render(<Avatar testID={'avatar'} badgeProps={{size: 0}}/>);
|
|
22
|
+
verifyBadgeSize(renderTree, 10);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
});
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import {Badge} from '../index';
|
|
2
|
+
|
|
3
|
+
describe('Badge', () => {
|
|
4
|
+
describe('Badge Label', () => {
|
|
5
|
+
it('Should return the label sent (unformatted)', () => {
|
|
6
|
+
const uut = new Badge({label: '10'});
|
|
7
|
+
expect(uut.getFormattedLabel()).toEqual('10');
|
|
8
|
+
});
|
|
9
|
+
it('Should return original label if it is NaN (string) ', () => {
|
|
10
|
+
const uut = new Badge({label: 'a'});
|
|
11
|
+
expect(uut.getFormattedLabel()).toEqual('a');
|
|
12
|
+
});
|
|
13
|
+
it('Should return original label if it is NaN (number with +) ', () => {
|
|
14
|
+
const uut = new Badge({label: '99+'});
|
|
15
|
+
expect(uut.getFormattedLabel()).toEqual('99+');
|
|
16
|
+
});
|
|
17
|
+
it('Should return formatted label according to given labelFormatterLimit prop (1) ', () => {
|
|
18
|
+
const uut = new Badge({label: '10000', labelFormatterLimit: 1});
|
|
19
|
+
expect(uut.getFormattedLabel()).toEqual('9+');
|
|
20
|
+
});
|
|
21
|
+
it('Should return formatted label according to given labelFormatterLimit prop (2) ', () => {
|
|
22
|
+
const uut = new Badge({label: '10000', labelFormatterLimit: 2});
|
|
23
|
+
expect(uut.getFormattedLabel()).toEqual('99+');
|
|
24
|
+
});
|
|
25
|
+
it('Should return formatted label according to given labelFormatterLimit prop (3) ', () => {
|
|
26
|
+
const uut = new Badge({label: '10000', labelFormatterLimit: 3});
|
|
27
|
+
expect(uut.getFormattedLabel()).toEqual('999+');
|
|
28
|
+
});
|
|
29
|
+
it('Should return formatted label according to given labelFormatterLimit prop (4) ', () => {
|
|
30
|
+
const uut = new Badge({label: '10000', labelFormatterLimit: 4});
|
|
31
|
+
expect(uut.getFormattedLabel()).toEqual('9999+');
|
|
32
|
+
});
|
|
33
|
+
it('Should not format label if it is not larger than maxLabelNumber', () => {
|
|
34
|
+
const uut = new Badge({label: '999', labelFormatterLimit: 3});
|
|
35
|
+
expect(uut.getFormattedLabel()).toEqual('999');
|
|
36
|
+
});
|
|
37
|
+
it('Should return original label when labelFormatterLimit prop is not included in LABEL_FORMATTER_VALUES array', () => {
|
|
38
|
+
const uut = new Badge({label: '9', labelFormatterLimit: 'a'});
|
|
39
|
+
expect(uut.getFormattedLabel()).toEqual('9');
|
|
40
|
+
});
|
|
41
|
+
it('Should return original label when label is NaN and labelFormatterLimit prop is valid ', () => {
|
|
42
|
+
const uut = new Badge({label: 'a', labelFormatterLimit: 3});
|
|
43
|
+
expect(uut.getFormattedLabel()).toEqual('a');
|
|
44
|
+
});
|
|
45
|
+
it('Should return original label when labelFormatterLimit prop is undefined', () => {
|
|
46
|
+
const uut = new Badge({label: '9', labelFormatterLimit: undefined});
|
|
47
|
+
expect(uut.getFormattedLabel()).toEqual('9');
|
|
48
|
+
});
|
|
49
|
+
it('Should return original label when labelFormatterLimit prop is not included in LABEL_FORMATTER_VALUES array', () => {
|
|
50
|
+
const uut = new Badge({label: '9', labelFormatterLimit: 5});
|
|
51
|
+
expect(uut.getFormattedLabel()).toEqual('9');
|
|
52
|
+
});
|
|
53
|
+
it('Should return original label when labelFormatterLimit prop is not included in LABEL_FORMATTER_VALUES array', () => {
|
|
54
|
+
const uut = new Badge({label: '9', labelFormatterLimit: 0});
|
|
55
|
+
expect(uut.getFormattedLabel()).toEqual('9');
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
describe('Badge Size', () => {
|
|
60
|
+
it('Should return pimple badge when no size and no label passed', () => {
|
|
61
|
+
const uut = new Badge({});
|
|
62
|
+
console.log(`uut.size`, uut.size);
|
|
63
|
+
expect(uut.size).toEqual(10);
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('Should return pimple badge when no label and size undefined', () => {
|
|
67
|
+
const uut = new Badge({label: undefined, size: undefined});
|
|
68
|
+
console.log(`uut.size`, uut.size);
|
|
69
|
+
expect(uut.size).toEqual(10);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('Shouldn\'t return pimple badge when label is undefined and size passed', () => {
|
|
73
|
+
const uut = new Badge({label: undefined, size: 20});
|
|
74
|
+
console.log(`uut.size`, uut.size);
|
|
75
|
+
expect(uut.size).toEqual(20);
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it('Should return size when label is empty string', () => {
|
|
79
|
+
const uut = new Badge({label: '', size: 20});
|
|
80
|
+
console.log(`uut.size`, uut.size);
|
|
81
|
+
expect(uut.size).toEqual(20);
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
});
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { waitFor, render } from '@testing-library/react-native';
|
|
3
|
+
import View from "../../view";
|
|
4
|
+
import Text from "../../text";
|
|
5
|
+
import { TextDriver } from "../../text/Text.driver.new";
|
|
6
|
+
import { ButtonDriver } from "../Button.driver.new";
|
|
7
|
+
import Button from "../index";
|
|
8
|
+
const BUTTON_ID = 'button_test_id';
|
|
9
|
+
const CHILDREN_TEXT_ID = 'children_test_id';
|
|
10
|
+
const CHILDREN_TEXT = 'custom button text';
|
|
11
|
+
|
|
12
|
+
// TODO: This tests are flaky and only fail on CI - we should investigate why
|
|
13
|
+
describe('Button', () => {
|
|
14
|
+
it('should render a button', async () => {
|
|
15
|
+
const renderTree = render(<WrapperScreenWithButton />);
|
|
16
|
+
const buttonDriver = ButtonDriver({
|
|
17
|
+
renderTree,
|
|
18
|
+
testID: 'button_test_id'
|
|
19
|
+
});
|
|
20
|
+
expect(await buttonDriver.exists()).toBeTruthy();
|
|
21
|
+
});
|
|
22
|
+
describe('style', () => {
|
|
23
|
+
it('should render a button with custom style', async () => {
|
|
24
|
+
const style = {
|
|
25
|
+
borderWidth: 2,
|
|
26
|
+
borderColor: 'green'
|
|
27
|
+
};
|
|
28
|
+
const renderTree = render(<WrapperScreenWithButton style={style} />);
|
|
29
|
+
const buttonDriver = ButtonDriver({
|
|
30
|
+
renderTree,
|
|
31
|
+
testID: 'button_test_id'
|
|
32
|
+
});
|
|
33
|
+
expect(buttonDriver.exists()).toBeTruthy();
|
|
34
|
+
expect(await buttonDriver.getStyle().borderWidth).toEqual(style.borderWidth);
|
|
35
|
+
expect(await buttonDriver.getStyle().borderColor).toEqual(style.borderColor);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe('custom button', () => {
|
|
39
|
+
it('should render a custom button', async () => {
|
|
40
|
+
const renderTree = render(<WrapperScreenWithCustomButton />);
|
|
41
|
+
const buttonDriver = ButtonDriver({
|
|
42
|
+
renderTree,
|
|
43
|
+
testID: 'button_test_id'
|
|
44
|
+
});
|
|
45
|
+
expect(buttonDriver.exists()).toBeTruthy();
|
|
46
|
+
});
|
|
47
|
+
it('should render the children with correct text', async () => {
|
|
48
|
+
const renderTree = render(<WrapperScreenWithCustomButton />);
|
|
49
|
+
const buttonDriver = ButtonDriver({
|
|
50
|
+
renderTree,
|
|
51
|
+
testID: 'button_test_id'
|
|
52
|
+
});
|
|
53
|
+
expect(buttonDriver.exists()).toBeTruthy();
|
|
54
|
+
const childrenTextDriver = TextDriver({
|
|
55
|
+
renderTree,
|
|
56
|
+
testID: CHILDREN_TEXT_ID
|
|
57
|
+
});
|
|
58
|
+
expect(await childrenTextDriver.getText()).toEqual(CHILDREN_TEXT);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
describe('onPress', () => {
|
|
62
|
+
let onPressCallback;
|
|
63
|
+
beforeEach(() => onPressCallback = jest.fn());
|
|
64
|
+
afterEach(() => onPressCallback.mockClear());
|
|
65
|
+
it('should trigger onPress callback', async () => {
|
|
66
|
+
const props = {
|
|
67
|
+
onPress: onPressCallback
|
|
68
|
+
};
|
|
69
|
+
const renderTree = render(<WrapperScreenWithButton {...props} />);
|
|
70
|
+
const buttonDriver = ButtonDriver({
|
|
71
|
+
renderTree,
|
|
72
|
+
testID: 'button_test_id'
|
|
73
|
+
});
|
|
74
|
+
buttonDriver.press();
|
|
75
|
+
await waitFor(() => expect(onPressCallback).toHaveBeenCalledTimes(1));
|
|
76
|
+
});
|
|
77
|
+
it('should not trigger onPress callback if button disabled', async () => {
|
|
78
|
+
const props = {
|
|
79
|
+
disabled: true,
|
|
80
|
+
onPress: onPressCallback
|
|
81
|
+
};
|
|
82
|
+
const renderTree = render(<WrapperScreenWithButton {...props} />);
|
|
83
|
+
const buttonDriver = ButtonDriver({
|
|
84
|
+
renderTree,
|
|
85
|
+
testID: 'button_test_id'
|
|
86
|
+
});
|
|
87
|
+
buttonDriver.press();
|
|
88
|
+
await waitFor(() => expect(onPressCallback).toHaveBeenCalledTimes(0));
|
|
89
|
+
});
|
|
90
|
+
it.each([true, false])(`button should be disabled when disabled is %s`, disabled => {
|
|
91
|
+
const renderTree = render(<WrapperScreenWithButton disabled={disabled} />);
|
|
92
|
+
const buttonDriver = ButtonDriver({
|
|
93
|
+
renderTree,
|
|
94
|
+
testID: 'button_test_id'
|
|
95
|
+
});
|
|
96
|
+
expect(buttonDriver.isDisabled()).toBe(disabled);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
describe('label', () => {
|
|
100
|
+
const LABEL = 'mock label';
|
|
101
|
+
it('should render a button with correct content', async () => {
|
|
102
|
+
const props = {
|
|
103
|
+
label: LABEL
|
|
104
|
+
};
|
|
105
|
+
const renderTree = render(<WrapperScreenWithButton {...props} />);
|
|
106
|
+
const buttonDriver = ButtonDriver({
|
|
107
|
+
renderTree,
|
|
108
|
+
testID: 'button_test_id'
|
|
109
|
+
});
|
|
110
|
+
expect(await buttonDriver.getLabel().getText()).toEqual(LABEL);
|
|
111
|
+
});
|
|
112
|
+
it('should render a button with correct label content. ', async () => {
|
|
113
|
+
const props = {
|
|
114
|
+
label: LABEL
|
|
115
|
+
};
|
|
116
|
+
const renderTree = render(<WrapperScreenWithButton {...props} />);
|
|
117
|
+
const buttonDriver = ButtonDriver({
|
|
118
|
+
renderTree,
|
|
119
|
+
testID: 'button_test_id'
|
|
120
|
+
});
|
|
121
|
+
expect(await buttonDriver.getLabel().getText()).toEqual(LABEL);
|
|
122
|
+
});
|
|
123
|
+
it('should render a button without label. ', async () => {
|
|
124
|
+
const renderTree = render(<WrapperScreenWithButton />);
|
|
125
|
+
const buttonDriver = ButtonDriver({
|
|
126
|
+
renderTree,
|
|
127
|
+
testID: 'button_test_id'
|
|
128
|
+
});
|
|
129
|
+
expect(await buttonDriver.getLabel().exists()).toBeFalsy();
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
describe('icon', () => {
|
|
133
|
+
it('should render a button without an icon. ', async () => {
|
|
134
|
+
const renderTree = render(<WrapperScreenWithButton />);
|
|
135
|
+
const buttonDriver = ButtonDriver({
|
|
136
|
+
renderTree,
|
|
137
|
+
testID: 'button_test_id'
|
|
138
|
+
});
|
|
139
|
+
expect(await buttonDriver.getIcon().exists()).toBeFalsy();
|
|
140
|
+
});
|
|
141
|
+
it('should render a button with icon. ', async () => {
|
|
142
|
+
const ICON = 12;
|
|
143
|
+
const props = {
|
|
144
|
+
iconSource: ICON
|
|
145
|
+
};
|
|
146
|
+
const renderTree = render(<WrapperScreenWithButton {...props} />);
|
|
147
|
+
const buttonDriver = ButtonDriver({
|
|
148
|
+
renderTree,
|
|
149
|
+
testID: 'button_test_id'
|
|
150
|
+
});
|
|
151
|
+
expect(await buttonDriver.getIcon().exists()).toBeTruthy();
|
|
152
|
+
});
|
|
153
|
+
});
|
|
154
|
+
describe('more complicated screen', () => {
|
|
155
|
+
//todo take it out of this file. to the demo screens maybe
|
|
156
|
+
it('should change text values according to state changes from buttons pressing', async () => {
|
|
157
|
+
const renderTree = render(StatefulScreen());
|
|
158
|
+
const text1Driver = TextDriver({
|
|
159
|
+
testID: `text_1`,
|
|
160
|
+
renderTree
|
|
161
|
+
});
|
|
162
|
+
const text2Driver = TextDriver({
|
|
163
|
+
testID: `text_2`,
|
|
164
|
+
renderTree
|
|
165
|
+
});
|
|
166
|
+
const button2Driver = ButtonDriver({
|
|
167
|
+
testID: `${BUTTON_ID}2`,
|
|
168
|
+
renderTree
|
|
169
|
+
});
|
|
170
|
+
const button1Driver = ButtonDriver({
|
|
171
|
+
testID: `${BUTTON_ID}1`,
|
|
172
|
+
renderTree
|
|
173
|
+
});
|
|
174
|
+
expect(await text1Driver.getText()).toBe('button 1 pressed 0 times');
|
|
175
|
+
expect(await text2Driver.getText()).toBe('button 2 pressed 0 times');
|
|
176
|
+
await button1Driver.press();
|
|
177
|
+
await button1Driver.press();
|
|
178
|
+
await button2Driver.press();
|
|
179
|
+
await waitFor(async () => expect(await text1Driver.getText()).toBe('button 1 pressed 2 times'));
|
|
180
|
+
await waitFor(async () => expect(await text2Driver.getText()).toBe('button 2 pressed 1 times'));
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
function WrapperScreenWithButton(buttonProps = {}) {
|
|
185
|
+
return <View testID={'wrapper_screen_test_id'}>
|
|
186
|
+
<Button {...buttonProps} testID={BUTTON_ID} />
|
|
187
|
+
</View>;
|
|
188
|
+
}
|
|
189
|
+
function WrapperScreenWithCustomButton(buttonProps = {}) {
|
|
190
|
+
const {
|
|
191
|
+
onPress
|
|
192
|
+
} = buttonProps;
|
|
193
|
+
return <View testID={'wrapper_screen_test_id'}>
|
|
194
|
+
<Button testID={BUTTON_ID} onPress={onPress}>
|
|
195
|
+
<Text testID={CHILDREN_TEXT_ID}>{CHILDREN_TEXT}</Text>
|
|
196
|
+
</Button>
|
|
197
|
+
</View>;
|
|
198
|
+
}
|
|
199
|
+
const StatefulScreen = () => <StatefulScreenWithTextsAndButtons />;
|
|
200
|
+
const StatefulScreenWithTextsAndButtons = () => {
|
|
201
|
+
const [count1, setCount1] = useState(0);
|
|
202
|
+
const [count2, setCount2] = useState(0);
|
|
203
|
+
return <View testID={'stateful_wrapper_screen_test_id'}>
|
|
204
|
+
<Text testID={'text_1'}>{`button 1 pressed ${count1} times`}</Text>
|
|
205
|
+
<Text testID={'text_2'}>{`button 2 pressed ${count2} times`}</Text>
|
|
206
|
+
<Button testID={`${BUTTON_ID}1`} onPress={() => setCount1(count1 + 1)} />
|
|
207
|
+
<Button testID={`${BUTTON_ID}2`} onPress={() => setCount2(count2 + 1)} />
|
|
208
|
+
</View>;
|
|
209
|
+
};
|