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,639 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { render } from '@testing-library/react-native';
|
|
3
|
+
import Constants from "../../../commons/Constants";
|
|
4
|
+
import Assets from "../../../assets";
|
|
5
|
+
import View from "../../../components/view";
|
|
6
|
+
import { TextFieldDriver } from "../TextField.driver.new";
|
|
7
|
+
import TextField from "../index";
|
|
8
|
+
const TEXT_FIELD_TEST_ID = 'text_field_test_id';
|
|
9
|
+
const placeholder = 'Placeholder';
|
|
10
|
+
const label = 'Label';
|
|
11
|
+
const hint = 'Hint';
|
|
12
|
+
const helperText = 'Helper Text';
|
|
13
|
+
function TestCase(textFieldProps) {
|
|
14
|
+
const [value, setValue] = useState(textFieldProps?.value);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
setValue(textFieldProps?.value);
|
|
17
|
+
}, [textFieldProps?.value]);
|
|
18
|
+
return <View>
|
|
19
|
+
<TextField {...textFieldProps} testID={TEXT_FIELD_TEST_ID} value={value} onChangeText={setValue} />
|
|
20
|
+
</View>;
|
|
21
|
+
}
|
|
22
|
+
const validate = jest.fn(value => {
|
|
23
|
+
return !!value;
|
|
24
|
+
});
|
|
25
|
+
describe('TextField', () => {
|
|
26
|
+
afterEach(() => {
|
|
27
|
+
jest.clearAllMocks();
|
|
28
|
+
});
|
|
29
|
+
describe.each(['outline', 'underline', undefined])('on %s preset', preset => {
|
|
30
|
+
const defaultProps = {
|
|
31
|
+
preset
|
|
32
|
+
};
|
|
33
|
+
describe('sanity', () => {
|
|
34
|
+
it('should render textField', () => {
|
|
35
|
+
const renderTree = render(<TestCase {...defaultProps} />);
|
|
36
|
+
const textFieldDriver = TextFieldDriver({
|
|
37
|
+
renderTree,
|
|
38
|
+
testID: TEXT_FIELD_TEST_ID
|
|
39
|
+
});
|
|
40
|
+
expect(textFieldDriver.exists()).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
it('should render textField with correct content', () => {
|
|
43
|
+
const renderTree = render(<TestCase {...defaultProps} value={'aa'} />);
|
|
44
|
+
const textFieldDriver = TextFieldDriver({
|
|
45
|
+
renderTree,
|
|
46
|
+
testID: TEXT_FIELD_TEST_ID
|
|
47
|
+
});
|
|
48
|
+
expect(textFieldDriver.getValue()).toEqual('aa');
|
|
49
|
+
});
|
|
50
|
+
it('should change the text correctly', () => {
|
|
51
|
+
const renderTree = render(<TestCase {...defaultProps} value={'aa'} />);
|
|
52
|
+
const textFieldDriver = TextFieldDriver({
|
|
53
|
+
renderTree,
|
|
54
|
+
testID: TEXT_FIELD_TEST_ID
|
|
55
|
+
});
|
|
56
|
+
expect(textFieldDriver.getValue()).toEqual('aa');
|
|
57
|
+
textFieldDriver.changeText('bb');
|
|
58
|
+
expect(textFieldDriver.getValue()).toEqual('bb');
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
describe('editable', () => {
|
|
62
|
+
it('should be editable', () => {
|
|
63
|
+
const renderTree = render(<TestCase {...defaultProps} />);
|
|
64
|
+
const textFieldDriver = TextFieldDriver({
|
|
65
|
+
renderTree,
|
|
66
|
+
testID: TEXT_FIELD_TEST_ID
|
|
67
|
+
});
|
|
68
|
+
expect(textFieldDriver.isEnabled()).toBe(true);
|
|
69
|
+
});
|
|
70
|
+
it('should render textField that is not editable', () => {
|
|
71
|
+
const renderTree = render(<TestCase {...defaultProps} editable={false} />);
|
|
72
|
+
const textFieldDriver = TextFieldDriver({
|
|
73
|
+
renderTree,
|
|
74
|
+
testID: TEXT_FIELD_TEST_ID
|
|
75
|
+
});
|
|
76
|
+
expect(textFieldDriver.isEnabled()).toBe(false);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe('readonly', () => {
|
|
80
|
+
it('should render textField that is not readonly', () => {
|
|
81
|
+
const renderTree = render(<TestCase {...defaultProps} />);
|
|
82
|
+
const textFieldDriver = TextFieldDriver({
|
|
83
|
+
renderTree,
|
|
84
|
+
testID: TEXT_FIELD_TEST_ID
|
|
85
|
+
});
|
|
86
|
+
expect(textFieldDriver.isEnabled()).toBe(true);
|
|
87
|
+
});
|
|
88
|
+
it('should be readonly', () => {
|
|
89
|
+
const renderTree = render(<TestCase {...defaultProps} readonly />);
|
|
90
|
+
const textFieldDriver = TextFieldDriver({
|
|
91
|
+
renderTree,
|
|
92
|
+
testID: TEXT_FIELD_TEST_ID
|
|
93
|
+
});
|
|
94
|
+
expect(textFieldDriver.isEnabled()).toBe(false);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe('placeholder', () => {
|
|
98
|
+
it('should render placeholder with correct text', () => {
|
|
99
|
+
const renderTree = render(<TestCase {...defaultProps} placeholder={'mock placeholder'} />);
|
|
100
|
+
const textFieldDriver = TextFieldDriver({
|
|
101
|
+
renderTree,
|
|
102
|
+
testID: TEXT_FIELD_TEST_ID
|
|
103
|
+
});
|
|
104
|
+
expect(textFieldDriver.getPlaceholder().exists()).toBe(true);
|
|
105
|
+
expect(textFieldDriver.getPlaceholder().getText()).toEqual('mock placeholder');
|
|
106
|
+
});
|
|
107
|
+
it('should not render placeholder', () => {
|
|
108
|
+
const renderTree = render(<TestCase {...defaultProps} />);
|
|
109
|
+
const textFieldDriver = TextFieldDriver({
|
|
110
|
+
renderTree,
|
|
111
|
+
testID: TEXT_FIELD_TEST_ID
|
|
112
|
+
});
|
|
113
|
+
expect(textFieldDriver.getPlaceholder().exists()).toBe(false);
|
|
114
|
+
});
|
|
115
|
+
it('should not render placeholder after user changing the input text (no floating prop)', () => {
|
|
116
|
+
const renderTree = render(<TestCase {...defaultProps} placeholder={'mock placeholder'} />);
|
|
117
|
+
const textFieldDriver = TextFieldDriver({
|
|
118
|
+
renderTree,
|
|
119
|
+
testID: TEXT_FIELD_TEST_ID
|
|
120
|
+
});
|
|
121
|
+
expect(textFieldDriver.getPlaceholder().exists()).toBe(true);
|
|
122
|
+
textFieldDriver.changeText('mock input value');
|
|
123
|
+
expect(textFieldDriver.getPlaceholder().exists()).toBe(false);
|
|
124
|
+
});
|
|
125
|
+
it('should render placeholder (floating) after user changing text if floatingPlaceholder prop sent', () => {
|
|
126
|
+
const renderTree = render(<TestCase {...defaultProps} placeholder={'mock placeholder'} floatingPlaceholder />);
|
|
127
|
+
const textFieldDriver = TextFieldDriver({
|
|
128
|
+
renderTree,
|
|
129
|
+
testID: TEXT_FIELD_TEST_ID
|
|
130
|
+
});
|
|
131
|
+
expect(textFieldDriver.getPlaceholder().exists()).toBe(true);
|
|
132
|
+
textFieldDriver.changeText('mock input value');
|
|
133
|
+
expect(textFieldDriver.getPlaceholder().exists()).toBe(true);
|
|
134
|
+
expect(textFieldDriver.getPlaceholder().getText()).toEqual('mock placeholder');
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
describe('label', () => {
|
|
138
|
+
it('should not render label if prop is not passed', () => {
|
|
139
|
+
const renderTree = render(<TestCase {...defaultProps} />);
|
|
140
|
+
const textFieldDriver = TextFieldDriver({
|
|
141
|
+
renderTree,
|
|
142
|
+
testID: TEXT_FIELD_TEST_ID
|
|
143
|
+
});
|
|
144
|
+
expect(textFieldDriver.getLabel().exists()).toBe(false);
|
|
145
|
+
});
|
|
146
|
+
it('should render a label', () => {
|
|
147
|
+
const renderTree = render(<TestCase {...defaultProps} label={'mock label'} />);
|
|
148
|
+
const textFieldDriver = TextFieldDriver({
|
|
149
|
+
renderTree,
|
|
150
|
+
testID: TEXT_FIELD_TEST_ID
|
|
151
|
+
});
|
|
152
|
+
expect(textFieldDriver.getLabel().exists()).toBe(true);
|
|
153
|
+
expect(textFieldDriver.getLabel().getText()).toEqual('mock label');
|
|
154
|
+
});
|
|
155
|
+
it('should not render label if floatingPlaceholder prop is passed', () => {
|
|
156
|
+
const renderTree = render(<TestCase {...defaultProps} label={'mock label'} floatingPlaceholder />);
|
|
157
|
+
const textFieldDriver = TextFieldDriver({
|
|
158
|
+
renderTree,
|
|
159
|
+
testID: TEXT_FIELD_TEST_ID
|
|
160
|
+
});
|
|
161
|
+
expect(textFieldDriver.getLabel().exists()).toBe(false);
|
|
162
|
+
});
|
|
163
|
+
});
|
|
164
|
+
describe('validation message', () => {
|
|
165
|
+
it('should not render validationMessage if enableErrors is undefined', () => {
|
|
166
|
+
const renderTree = render(<TestCase {...defaultProps} value={''} validationMessage={'mock message'} validateOnStart enableErrors={undefined} />);
|
|
167
|
+
const textFieldDriver = TextFieldDriver({
|
|
168
|
+
renderTree,
|
|
169
|
+
testID: TEXT_FIELD_TEST_ID
|
|
170
|
+
});
|
|
171
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(false);
|
|
172
|
+
});
|
|
173
|
+
it('should not render validationMessage if enableErrors is not passed (passed by the preset)', () => {
|
|
174
|
+
const renderTree = render(<TestCase {...defaultProps} value={''} validationMessage={'mock message'} validateOnStart />);
|
|
175
|
+
const textFieldDriver = TextFieldDriver({
|
|
176
|
+
renderTree,
|
|
177
|
+
testID: TEXT_FIELD_TEST_ID
|
|
178
|
+
});
|
|
179
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(!!defaultProps?.preset);
|
|
180
|
+
});
|
|
181
|
+
it('should render validationMessage if validationMessage passed and remove it when validationMessage is changed to undefined', () => {
|
|
182
|
+
const renderTree = render(<TestCase {...defaultProps} value={''} validationMessage={'mock message'} enableErrors />);
|
|
183
|
+
const textFieldDriver = TextFieldDriver({
|
|
184
|
+
renderTree,
|
|
185
|
+
testID: TEXT_FIELD_TEST_ID
|
|
186
|
+
});
|
|
187
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
|
|
188
|
+
expect(textFieldDriver.getValidationMessage().getText()).toEqual('mock message');
|
|
189
|
+
renderTree.rerender(<TestCase {...defaultProps} value={''} validationMessage={undefined} enableErrors />);
|
|
190
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(false);
|
|
191
|
+
});
|
|
192
|
+
it('should not render validationMessage if validationMessage is undefined and add it when validationMessage is passed', () => {
|
|
193
|
+
const renderTree = render(<TestCase {...defaultProps} value={''} validationMessage={undefined} enableErrors />);
|
|
194
|
+
const textFieldDriver = TextFieldDriver({
|
|
195
|
+
renderTree,
|
|
196
|
+
testID: TEXT_FIELD_TEST_ID
|
|
197
|
+
});
|
|
198
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(false);
|
|
199
|
+
renderTree.rerender(<TestCase {...defaultProps} value={''} validationMessage={'mock message'} enableErrors />);
|
|
200
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
|
|
201
|
+
expect(textFieldDriver.getValidationMessage().getText()).toEqual('mock message');
|
|
202
|
+
});
|
|
203
|
+
it('should render validationMessage on start if input required and validateOnStart passed', () => {
|
|
204
|
+
const renderTree = render(<TestCase {...defaultProps} value={''} validationMessage={'mock message'} enableErrors validateOnStart />);
|
|
205
|
+
const textFieldDriver = TextFieldDriver({
|
|
206
|
+
renderTree,
|
|
207
|
+
testID: TEXT_FIELD_TEST_ID
|
|
208
|
+
});
|
|
209
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
|
|
210
|
+
expect(textFieldDriver.getValidationMessage().getText()).toEqual('mock message');
|
|
211
|
+
});
|
|
212
|
+
it('should render validationMessage when input is requires after changing the input to empty string', () => {
|
|
213
|
+
const renderTree = render(<TestCase {...defaultProps} value={''} validate={'required'} validationMessage={'mock message'} enableErrors validateOnChange />);
|
|
214
|
+
const textFieldDriver = TextFieldDriver({
|
|
215
|
+
renderTree,
|
|
216
|
+
testID: TEXT_FIELD_TEST_ID
|
|
217
|
+
});
|
|
218
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(false);
|
|
219
|
+
expect(textFieldDriver.getValidationMessage().getText()).toEqual('');
|
|
220
|
+
textFieldDriver.changeText('');
|
|
221
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
|
|
222
|
+
expect(textFieldDriver.getValidationMessage().getText()).toEqual('mock message');
|
|
223
|
+
});
|
|
224
|
+
it('should render validationMessage when input is requires after changing the value to undefined', () => {
|
|
225
|
+
const renderTree = render(<TestCase {...defaultProps} value={'Some text'} validate={'required'} validationMessage={'mock message'} enableErrors validateOnChange />);
|
|
226
|
+
const textFieldDriver = TextFieldDriver({
|
|
227
|
+
renderTree,
|
|
228
|
+
testID: TEXT_FIELD_TEST_ID
|
|
229
|
+
});
|
|
230
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(false);
|
|
231
|
+
expect(textFieldDriver.getValidationMessage().getText()).toEqual('');
|
|
232
|
+
renderTree.rerender(<TestCase {...defaultProps} validate={'required'} validationMessage={'mock message'} enableErrors validateOnChange />);
|
|
233
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
|
|
234
|
+
expect(textFieldDriver.getValidationMessage().getText()).toEqual('mock message');
|
|
235
|
+
});
|
|
236
|
+
it('should display validation error message when validation fail after blur', () => {
|
|
237
|
+
const renderTree = render(<TestCase {...defaultProps} validate={'email'} validationMessage={'email is invalid'} enableErrors validateOnBlur />);
|
|
238
|
+
const textFieldDriver = TextFieldDriver({
|
|
239
|
+
renderTree,
|
|
240
|
+
testID: TEXT_FIELD_TEST_ID
|
|
241
|
+
});
|
|
242
|
+
textFieldDriver.changeText('invalidEmail');
|
|
243
|
+
textFieldDriver.blur();
|
|
244
|
+
expect(textFieldDriver.getValidationMessage().getText()).toEqual('email is invalid');
|
|
245
|
+
});
|
|
246
|
+
it('should remove validation error message after entering a valid input', () => {
|
|
247
|
+
const renderTree = render(<TestCase {...defaultProps} value={'invalid'} validate={'email'} validationMessage={'email is invalid'} enableErrors validateOnStart validateOnChange />);
|
|
248
|
+
const textFieldDriver = TextFieldDriver({
|
|
249
|
+
renderTree,
|
|
250
|
+
testID: TEXT_FIELD_TEST_ID
|
|
251
|
+
});
|
|
252
|
+
expect(textFieldDriver.getValidationMessage().getText()).toEqual('email is invalid');
|
|
253
|
+
textFieldDriver.changeText('mail@mail.com');
|
|
254
|
+
expect(textFieldDriver.getValidationMessage().exists()).toEqual(false);
|
|
255
|
+
});
|
|
256
|
+
});
|
|
257
|
+
describe('validateOnBlur', () => {
|
|
258
|
+
it('validate is called with undefined when defaultValue is not passed', () => {
|
|
259
|
+
const renderTree = render(<TestCase {...defaultProps} validateOnBlur validationMessage={'Not valid'} validate={[validate]} />);
|
|
260
|
+
const textFieldDriver = TextFieldDriver({
|
|
261
|
+
renderTree,
|
|
262
|
+
testID: TEXT_FIELD_TEST_ID
|
|
263
|
+
});
|
|
264
|
+
textFieldDriver.focus();
|
|
265
|
+
textFieldDriver.blur();
|
|
266
|
+
expect(validate).toHaveBeenCalledTimes(1);
|
|
267
|
+
expect(validate).toHaveBeenCalledWith(undefined);
|
|
268
|
+
});
|
|
269
|
+
it('validate is called with defaultValue when defaultValue is passed', () => {
|
|
270
|
+
const defaultValue = '1';
|
|
271
|
+
const renderTree = render(<TestCase {...defaultProps} validateOnBlur validationMessage={'Not valid'} validate={[validate]} defaultValue={defaultValue} />);
|
|
272
|
+
const textFieldDriver = TextFieldDriver({
|
|
273
|
+
renderTree,
|
|
274
|
+
testID: TEXT_FIELD_TEST_ID
|
|
275
|
+
});
|
|
276
|
+
textFieldDriver.focus();
|
|
277
|
+
textFieldDriver.blur();
|
|
278
|
+
expect(validate).toHaveBeenCalledTimes(1);
|
|
279
|
+
expect(validate).toHaveBeenCalledWith(defaultValue);
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
describe('validationIcon', () => {
|
|
283
|
+
it('should display validationIcon', () => {
|
|
284
|
+
const renderTree = render(<TestCase {...defaultProps} enableErrors validateOnStart validate={'required'} validationMessage={'This field is required'} validationIcon={{
|
|
285
|
+
source: Assets.internal.icons.check
|
|
286
|
+
}} />);
|
|
287
|
+
const textFieldDriver = TextFieldDriver({
|
|
288
|
+
renderTree,
|
|
289
|
+
testID: TEXT_FIELD_TEST_ID
|
|
290
|
+
});
|
|
291
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
|
|
292
|
+
expect(textFieldDriver.getValidationIcon().exists()).toBe(true);
|
|
293
|
+
});
|
|
294
|
+
it('should not display validationIcon', () => {
|
|
295
|
+
const renderTree = render(<TestCase {...defaultProps} enableErrors validateOnStart validate={'required'} validationMessage={'This field is required'} />);
|
|
296
|
+
const textFieldDriver = TextFieldDriver({
|
|
297
|
+
renderTree,
|
|
298
|
+
testID: TEXT_FIELD_TEST_ID
|
|
299
|
+
});
|
|
300
|
+
expect(textFieldDriver.getValidationMessage().exists()).toBe(true);
|
|
301
|
+
expect(textFieldDriver.getValidationIcon().exists()).toBe(false);
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
describe('defaultValue', () => {
|
|
305
|
+
const props = {
|
|
306
|
+
...defaultProps,
|
|
307
|
+
testID: TEXT_FIELD_TEST_ID,
|
|
308
|
+
placeholder: 'Placeholder',
|
|
309
|
+
defaultValue: 'someDefaultValue',
|
|
310
|
+
value: 'someValue'
|
|
311
|
+
};
|
|
312
|
+
it('value should equal defaultValue on first render when value not passed', () => {
|
|
313
|
+
const renderTree = render(<TestCase {...props} value={undefined} />);
|
|
314
|
+
const textFieldDriver = TextFieldDriver({
|
|
315
|
+
renderTree,
|
|
316
|
+
testID: TEXT_FIELD_TEST_ID
|
|
317
|
+
});
|
|
318
|
+
expect(textFieldDriver.getValue()).toEqual('someDefaultValue');
|
|
319
|
+
});
|
|
320
|
+
it('value should equal value on first render when passed', () => {
|
|
321
|
+
const renderTree = render(<TestCase {...props} defaultValue={undefined} />);
|
|
322
|
+
const textFieldDriver = TextFieldDriver({
|
|
323
|
+
renderTree,
|
|
324
|
+
testID: TEXT_FIELD_TEST_ID
|
|
325
|
+
});
|
|
326
|
+
expect(textFieldDriver.getValue()).toEqual('someValue');
|
|
327
|
+
});
|
|
328
|
+
it.each`
|
|
329
|
+
platform | isWeb
|
|
330
|
+
${'web'} | ${true}
|
|
331
|
+
${'native'} | ${false}
|
|
332
|
+
`('on $platform should reset defaultValue when prop changed after first render', args => {
|
|
333
|
+
Constants.isWeb = args.isWeb;
|
|
334
|
+
const renderTree = render(<TestCase {...props} value={undefined} />);
|
|
335
|
+
const textFieldDriver = TextFieldDriver({
|
|
336
|
+
renderTree,
|
|
337
|
+
testID: TEXT_FIELD_TEST_ID
|
|
338
|
+
});
|
|
339
|
+
renderTree.rerender(<TestCase {...props} value={undefined} defaultValue={'someUpdatedDefaultValue'} />);
|
|
340
|
+
expect(textFieldDriver.getValue()).toEqual('someUpdatedDefaultValue');
|
|
341
|
+
});
|
|
342
|
+
});
|
|
343
|
+
describe('char counter', () => {
|
|
344
|
+
it('should render char counter', () => {
|
|
345
|
+
const renderTree = render(<TestCase {...defaultProps} maxLength={10} showCharCounter />);
|
|
346
|
+
const textFieldDriver = TextFieldDriver({
|
|
347
|
+
renderTree,
|
|
348
|
+
testID: TEXT_FIELD_TEST_ID
|
|
349
|
+
});
|
|
350
|
+
expect(textFieldDriver.getCharCounter().exists()).toBe(true);
|
|
351
|
+
});
|
|
352
|
+
it('should not render counter if maxLength prop not supplied', () => {
|
|
353
|
+
const renderTree = render(<TestCase {...defaultProps} showCharCounter />);
|
|
354
|
+
const textFieldDriver = TextFieldDriver({
|
|
355
|
+
renderTree,
|
|
356
|
+
testID: TEXT_FIELD_TEST_ID
|
|
357
|
+
});
|
|
358
|
+
expect(textFieldDriver.getCharCounter().exists()).toBe(false);
|
|
359
|
+
});
|
|
360
|
+
it('should not render counter if showCharCounter prop not supplied', () => {
|
|
361
|
+
const renderTree = render(<TestCase {...defaultProps} maxLength={10} />);
|
|
362
|
+
const textFieldDriver = TextFieldDriver({
|
|
363
|
+
renderTree,
|
|
364
|
+
testID: TEXT_FIELD_TEST_ID
|
|
365
|
+
});
|
|
366
|
+
expect(textFieldDriver.getCharCounter().exists()).toBe(false);
|
|
367
|
+
});
|
|
368
|
+
it('should render char counter with "0/10" if value not supplied', () => {
|
|
369
|
+
const renderTree = render(<TestCase {...defaultProps} maxLength={10} showCharCounter />);
|
|
370
|
+
const textFieldDriver = TextFieldDriver({
|
|
371
|
+
renderTree,
|
|
372
|
+
testID: TEXT_FIELD_TEST_ID
|
|
373
|
+
});
|
|
374
|
+
expect(textFieldDriver.getCharCounter().getText()).toEqual('0/10');
|
|
375
|
+
});
|
|
376
|
+
it('should render char counter with correct content', () => {
|
|
377
|
+
const renderTree = render(<TestCase {...defaultProps} value={'abc'} maxLength={10} showCharCounter />);
|
|
378
|
+
const textFieldDriver = TextFieldDriver({
|
|
379
|
+
renderTree,
|
|
380
|
+
testID: TEXT_FIELD_TEST_ID
|
|
381
|
+
});
|
|
382
|
+
expect(textFieldDriver.getCharCounter().getText()).toEqual('3/10');
|
|
383
|
+
});
|
|
384
|
+
it('should update char counter after changing the text', () => {
|
|
385
|
+
const renderTree = render(<TestCase {...defaultProps} value={'ab'} maxLength={10} showCharCounter />);
|
|
386
|
+
const textFieldDriver = TextFieldDriver({
|
|
387
|
+
renderTree,
|
|
388
|
+
testID: TEXT_FIELD_TEST_ID
|
|
389
|
+
});
|
|
390
|
+
expect(textFieldDriver.getCharCounter().getText()).toEqual('2/10');
|
|
391
|
+
textFieldDriver.changeText('abcd');
|
|
392
|
+
expect(textFieldDriver.getCharCounter().getText()).toEqual('4/10');
|
|
393
|
+
});
|
|
394
|
+
});
|
|
395
|
+
describe('hint', () => {
|
|
396
|
+
it('should hint text replace placeholder when input is focused', () => {
|
|
397
|
+
const renderTree = render(<TestCase {...defaultProps} hint={hint} placeholder={placeholder} />);
|
|
398
|
+
const textFieldDriver = TextFieldDriver({
|
|
399
|
+
renderTree,
|
|
400
|
+
testID: TEXT_FIELD_TEST_ID
|
|
401
|
+
});
|
|
402
|
+
expect(textFieldDriver.getPlaceholder().getText()).toEqual(placeholder);
|
|
403
|
+
textFieldDriver.focus();
|
|
404
|
+
expect(textFieldDriver.getPlaceholder().getText()).toEqual(hint);
|
|
405
|
+
});
|
|
406
|
+
it('should not show hint when hint prop not passed', () => {
|
|
407
|
+
const renderTree = render(<TestCase {...defaultProps} placeholder={placeholder} />);
|
|
408
|
+
const textFieldDriver = TextFieldDriver({
|
|
409
|
+
renderTree,
|
|
410
|
+
testID: TEXT_FIELD_TEST_ID
|
|
411
|
+
});
|
|
412
|
+
expect(textFieldDriver.getPlaceholder().getText()).toEqual(placeholder);
|
|
413
|
+
textFieldDriver.focus();
|
|
414
|
+
expect(textFieldDriver.getPlaceholder().getText()).toEqual(placeholder);
|
|
415
|
+
});
|
|
416
|
+
});
|
|
417
|
+
describe('helperText', () => {
|
|
418
|
+
it('should display helperText', () => {
|
|
419
|
+
const renderTree = render(<TestCase {...defaultProps} placeholder={placeholder} hint={hint} helperText={helperText} />);
|
|
420
|
+
const textFieldDriver = TextFieldDriver({
|
|
421
|
+
renderTree,
|
|
422
|
+
testID: TEXT_FIELD_TEST_ID
|
|
423
|
+
});
|
|
424
|
+
expect(textFieldDriver.getHelperText().exists()).toBe(true);
|
|
425
|
+
});
|
|
426
|
+
it('should not display helperText', () => {
|
|
427
|
+
const renderTree = render(<TestCase {...defaultProps} placeholder={placeholder} />);
|
|
428
|
+
const textFieldDriver = TextFieldDriver({
|
|
429
|
+
renderTree,
|
|
430
|
+
testID: TEXT_FIELD_TEST_ID
|
|
431
|
+
});
|
|
432
|
+
expect(textFieldDriver.getHelperText().exists()).toBe(false);
|
|
433
|
+
});
|
|
434
|
+
});
|
|
435
|
+
describe('clear button', () => {
|
|
436
|
+
it('should not render clear button', async () => {
|
|
437
|
+
const renderTree = render(<TestCase {...defaultProps} />);
|
|
438
|
+
const textFieldDriver = TextFieldDriver({
|
|
439
|
+
renderTree,
|
|
440
|
+
testID: TEXT_FIELD_TEST_ID
|
|
441
|
+
});
|
|
442
|
+
expect(await textFieldDriver.getClearButton().exists()).toBe(false);
|
|
443
|
+
});
|
|
444
|
+
it('should not display clear button when value is undefined', async () => {
|
|
445
|
+
const renderTree = render(<TestCase {...defaultProps} showClearButton />);
|
|
446
|
+
const textFieldDriver = TextFieldDriver({
|
|
447
|
+
renderTree,
|
|
448
|
+
testID: TEXT_FIELD_TEST_ID
|
|
449
|
+
});
|
|
450
|
+
const clearButtonDriver = textFieldDriver.getClearButton();
|
|
451
|
+
expect(await clearButtonDriver.exists()).toBe(true);
|
|
452
|
+
expect(await clearButtonDriver.visible()).toBe(false);
|
|
453
|
+
});
|
|
454
|
+
it('should not display clear button when value is empty', async () => {
|
|
455
|
+
const renderTree = render(<TestCase {...defaultProps} showClearButton value={''} />);
|
|
456
|
+
const textFieldDriver = TextFieldDriver({
|
|
457
|
+
renderTree,
|
|
458
|
+
testID: TEXT_FIELD_TEST_ID
|
|
459
|
+
});
|
|
460
|
+
const clearButtonDriver = textFieldDriver.getClearButton();
|
|
461
|
+
expect(await clearButtonDriver.exists()).toBe(true);
|
|
462
|
+
expect(await clearButtonDriver.visible()).toBe(false);
|
|
463
|
+
});
|
|
464
|
+
it('should display clear button when has value', async () => {
|
|
465
|
+
const renderTree = render(<TestCase {...defaultProps} showClearButton value={'value'} />);
|
|
466
|
+
const textFieldDriver = TextFieldDriver({
|
|
467
|
+
renderTree,
|
|
468
|
+
testID: TEXT_FIELD_TEST_ID
|
|
469
|
+
});
|
|
470
|
+
const clearButtonDriver = textFieldDriver.getClearButton();
|
|
471
|
+
expect(await clearButtonDriver.exists()).toBe(true);
|
|
472
|
+
expect(await clearButtonDriver.visible()).toBe(true);
|
|
473
|
+
});
|
|
474
|
+
it('should toggle clear button when value changes', async () => {
|
|
475
|
+
const renderTree = render(<TestCase {...defaultProps} showClearButton />);
|
|
476
|
+
const textFieldDriver = TextFieldDriver({
|
|
477
|
+
renderTree,
|
|
478
|
+
testID: TEXT_FIELD_TEST_ID
|
|
479
|
+
});
|
|
480
|
+
const clearButtonDriver = textFieldDriver.getClearButton();
|
|
481
|
+
expect(clearButtonDriver.exists()).toBe(true);
|
|
482
|
+
expect(await clearButtonDriver.visible()).toBe(false);
|
|
483
|
+
textFieldDriver.changeText('b');
|
|
484
|
+
expect(await clearButtonDriver.visible()).toBe(true);
|
|
485
|
+
textFieldDriver.changeText('');
|
|
486
|
+
expect(await clearButtonDriver.visible()).toBe(false);
|
|
487
|
+
});
|
|
488
|
+
it('should clear value when pressed', () => {
|
|
489
|
+
const renderTree = render(<TestCase {...defaultProps} showClearButton value={'value'} />);
|
|
490
|
+
const textFieldDriver = TextFieldDriver({
|
|
491
|
+
renderTree,
|
|
492
|
+
testID: TEXT_FIELD_TEST_ID
|
|
493
|
+
});
|
|
494
|
+
const clearButtonDriver = textFieldDriver.getClearButton();
|
|
495
|
+
expect(clearButtonDriver.exists()).toBe(true);
|
|
496
|
+
clearButtonDriver.press();
|
|
497
|
+
expect(textFieldDriver.getValue()).toEqual('');
|
|
498
|
+
});
|
|
499
|
+
});
|
|
500
|
+
describe('formatter', () => {
|
|
501
|
+
const priceFormatter = Intl.NumberFormat('en-US');
|
|
502
|
+
const props = {
|
|
503
|
+
...defaultProps,
|
|
504
|
+
value: '10000',
|
|
505
|
+
formatter: value => priceFormatter.format(Number(value))
|
|
506
|
+
};
|
|
507
|
+
it('should format value while not focused based on formatter prop', () => {
|
|
508
|
+
const renderTree = render(<TestCase {...props} />);
|
|
509
|
+
const textFieldDriver = TextFieldDriver({
|
|
510
|
+
renderTree,
|
|
511
|
+
testID: TEXT_FIELD_TEST_ID
|
|
512
|
+
});
|
|
513
|
+
expect(textFieldDriver.getValue()).toEqual('10,000');
|
|
514
|
+
});
|
|
515
|
+
it('should not format value while focused', () => {
|
|
516
|
+
const renderTree = render(<TestCase {...props} />);
|
|
517
|
+
const textFieldDriver = TextFieldDriver({
|
|
518
|
+
renderTree,
|
|
519
|
+
testID: TEXT_FIELD_TEST_ID
|
|
520
|
+
});
|
|
521
|
+
textFieldDriver.focus();
|
|
522
|
+
expect(textFieldDriver.getValue()).toEqual('10000');
|
|
523
|
+
});
|
|
524
|
+
});
|
|
525
|
+
describe('Mandatory Indication', () => {
|
|
526
|
+
const getTestCaseDriver = props => {
|
|
527
|
+
const renderTree = render(<TestCase {...defaultProps} {...props} />);
|
|
528
|
+
return TextFieldDriver({
|
|
529
|
+
renderTree,
|
|
530
|
+
testID: TEXT_FIELD_TEST_ID
|
|
531
|
+
});
|
|
532
|
+
};
|
|
533
|
+
const starReg = /.*\*$/;
|
|
534
|
+
describe('label', () => {
|
|
535
|
+
it('should show mandatory indication on the label when required validate passed', () => {
|
|
536
|
+
const textFieldDriver = getTestCaseDriver({
|
|
537
|
+
label,
|
|
538
|
+
validate: 'required',
|
|
539
|
+
showMandatoryIndication: true
|
|
540
|
+
});
|
|
541
|
+
const labelContent = textFieldDriver.getLabel().getText();
|
|
542
|
+
expect(labelContent).toMatch(starReg);
|
|
543
|
+
});
|
|
544
|
+
it('should show mandatory indication on the label when required is passed in validate array', () => {
|
|
545
|
+
const textFieldDriver = getTestCaseDriver({
|
|
546
|
+
label,
|
|
547
|
+
validate: ['required'],
|
|
548
|
+
showMandatoryIndication: true
|
|
549
|
+
});
|
|
550
|
+
const labelContent = textFieldDriver.getLabel().getText();
|
|
551
|
+
expect(labelContent).toMatch(starReg);
|
|
552
|
+
});
|
|
553
|
+
it('should show mandatory indication when required is passed in validate array with other validations', () => {
|
|
554
|
+
const textFieldDriver = getTestCaseDriver({
|
|
555
|
+
label,
|
|
556
|
+
validate: ['email', 'required'],
|
|
557
|
+
showMandatoryIndication: true
|
|
558
|
+
});
|
|
559
|
+
const labelContent = textFieldDriver.getLabel().getText();
|
|
560
|
+
expect(labelContent).toMatch(starReg);
|
|
561
|
+
});
|
|
562
|
+
it('should not show mandatory indication on label when validate not passed', () => {
|
|
563
|
+
const textFieldDriver = getTestCaseDriver({
|
|
564
|
+
label,
|
|
565
|
+
showMandatoryIndication: true
|
|
566
|
+
});
|
|
567
|
+
const labelText = textFieldDriver.getLabel().getText();
|
|
568
|
+
expect(labelText).not.toMatch(starReg);
|
|
569
|
+
});
|
|
570
|
+
it('should not show mandatory indication on label when showMandatoryIndication not passed', () => {
|
|
571
|
+
const textFieldDriver = getTestCaseDriver({
|
|
572
|
+
label,
|
|
573
|
+
validate: 'required'
|
|
574
|
+
});
|
|
575
|
+
const labelText = textFieldDriver.getLabel().getText();
|
|
576
|
+
expect(labelText).not.toMatch(starReg);
|
|
577
|
+
});
|
|
578
|
+
it('should have mandatory indication on the label and not on the placeholder', () => {
|
|
579
|
+
const textFieldDriver = getTestCaseDriver({
|
|
580
|
+
placeholder,
|
|
581
|
+
label,
|
|
582
|
+
validate: 'required',
|
|
583
|
+
showMandatoryIndication: true
|
|
584
|
+
});
|
|
585
|
+
const labelText = textFieldDriver.getLabel().getText();
|
|
586
|
+
const placeholderText = textFieldDriver.getPlaceholder().getText();
|
|
587
|
+
expect(labelText).toMatch(starReg);
|
|
588
|
+
expect(placeholderText).not.toMatch(starReg);
|
|
589
|
+
});
|
|
590
|
+
});
|
|
591
|
+
describe('placeholder', () => {
|
|
592
|
+
it('should have mandatory indication on the placeholder', () => {
|
|
593
|
+
const textFieldDriver = getTestCaseDriver({
|
|
594
|
+
placeholder,
|
|
595
|
+
showMandatoryIndication: true,
|
|
596
|
+
validate: 'required'
|
|
597
|
+
});
|
|
598
|
+
const placeholderText = textFieldDriver.getPlaceholder().getText();
|
|
599
|
+
expect(placeholderText).toMatch(starReg);
|
|
600
|
+
});
|
|
601
|
+
it('should not have mandatory indication on the placeholder when validate not passed', () => {
|
|
602
|
+
const textFieldDriver = getTestCaseDriver({
|
|
603
|
+
placeholder,
|
|
604
|
+
label,
|
|
605
|
+
showMandatoryIndication: true
|
|
606
|
+
});
|
|
607
|
+
const placeholderText = textFieldDriver.getPlaceholder().getText();
|
|
608
|
+
const labelText = textFieldDriver.getLabel().getText();
|
|
609
|
+
expect(placeholderText).not.toMatch(starReg);
|
|
610
|
+
expect(labelText).not.toMatch(starReg);
|
|
611
|
+
});
|
|
612
|
+
it('should not have mandatory indication on the placeholder when showMandatoryIndication not passed', () => {
|
|
613
|
+
const textFieldDriver = getTestCaseDriver({
|
|
614
|
+
placeholder,
|
|
615
|
+
label,
|
|
616
|
+
validate: 'required'
|
|
617
|
+
});
|
|
618
|
+
const placeholderText = textFieldDriver.getPlaceholder().getText();
|
|
619
|
+
const labelText = textFieldDriver.getLabel().getText();
|
|
620
|
+
expect(placeholderText).not.toMatch(starReg);
|
|
621
|
+
expect(labelText).not.toMatch(starReg);
|
|
622
|
+
});
|
|
623
|
+
});
|
|
624
|
+
describe('floating placeholder', () => {
|
|
625
|
+
it('should have mandatory indication on the floating placeholder', () => {
|
|
626
|
+
const textFieldDriver = getTestCaseDriver({
|
|
627
|
+
placeholder,
|
|
628
|
+
floatingPlaceholder: true,
|
|
629
|
+
floatOnFocus: true,
|
|
630
|
+
showMandatoryIndication: true,
|
|
631
|
+
validate: 'required'
|
|
632
|
+
});
|
|
633
|
+
const placeholderText = textFieldDriver.getPlaceholder().getText();
|
|
634
|
+
expect(placeholderText).toMatch(starReg);
|
|
635
|
+
});
|
|
636
|
+
});
|
|
637
|
+
});
|
|
638
|
+
});
|
|
639
|
+
});
|