dimsum-e2e-tests 3.22.0-next.36
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/CHANGELOG.md +10 -0
- package/DSStorybook/DSStorybook.smoke.deprecado.js +33 -0
- package/DSStorybook/DSStorybookCO.js +47 -0
- package/DSStorybook/baseline.js +2123 -0
- package/DSStorybook/print.js +25 -0
- package/PageObject.js +25 -0
- package/ds-accessibility/ds-skip-to/DSSkipTo.visual.spec.js +24 -0
- package/ds-accessibility/ds-skip-to/DSSkipToCO.js +16 -0
- package/ds-accordion/DSAccordion.axe-core.func.spec.js +121 -0
- package/ds-accordion/DSAccordion.func.spec.js +137 -0
- package/ds-accordion/DSAccordion.visual.spec.js +160 -0
- package/ds-accordion/DSAccordionCO.js +86 -0
- package/ds-apppicker/DSAppPicker.smoke.spec.js +52 -0
- package/ds-apppicker/DSAppPickerCO.js +51 -0
- package/ds-apppicker/basic/DSAppPicker.basic.axe-core.spec.js +38 -0
- package/ds-apppicker/basic/DSAppPicker.basic.func.spec.js +43 -0
- package/ds-apppicker/basic/DSAppPicker.basic.keyboard-nav.func.spec.js +50 -0
- package/ds-apppicker/basic/DSAppPicker.basic.visual.spec.js +32 -0
- package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.axe-core.spec.js +32 -0
- package/ds-apppicker/closeAfterSelection/DSAppPicker.closeAfterSelection.func.spec.js +31 -0
- package/ds-apppicker/maxHeight/DSAppPicker.max-height.visual.spec.js +60 -0
- package/ds-apppicker/minHeight/DSAppPicker.minHeight.visual.spec.js +28 -0
- package/ds-apppicker/truncation/DSAppPicker.truncation.visual.spec.js +46 -0
- package/ds-autocomplete/DSAutocomplete.axe-core.func.spec.js +45 -0
- package/ds-autocomplete/DSAutocomplete.func.spec.js +63 -0
- package/ds-autocomplete/DSAutocompleteCO.js +36 -0
- package/ds-banner/DSBanner.axe-core.func.spec.js +79 -0
- package/ds-banner/DSBanner.func.spec.js +71 -0
- package/ds-banner/DSBanner.visual.spec.js +116 -0
- package/ds-banner/DSBannerCO.js +61 -0
- package/ds-breadcrumb/DSBreadcrumb.axe-core.func.spec.js +87 -0
- package/ds-breadcrumb/DSBreadcrumb.func.spec.js +48 -0
- package/ds-breadcrumb/DSBreadcrumb.keyboard.navigation.func.spec.js +55 -0
- package/ds-breadcrumb/DSBreadcrumb.visual.spec.js +104 -0
- package/ds-breadcrumb/DSBreadcrumbCO.js +60 -0
- package/ds-button-group/DSButtonGropu.visual.spec.js +16 -0
- package/ds-button-group/DSButtonGroupCO.js +20 -0
- package/ds-button-v1/DSButton.func.spec.js +23 -0
- package/ds-button-v1/DSButton.visual.spec.js +16 -0
- package/ds-button-v1/DSButtonCO.js +38 -0
- package/ds-button-v2/DSButtonV2.axe-core.func.spec.js +22 -0
- package/ds-button-v2/DSButtonV2.func.spec.js +139 -0
- package/ds-button-v2/DSButtonV2.visual.spec.js +153 -0
- package/ds-button-v2/DSButtonV2CO.js +43 -0
- package/ds-card/DSCard.axe-core.func.spec.js +100 -0
- package/ds-card/DSCard.func.spec.js +65 -0
- package/ds-card/DSCard.visual.spec.js +132 -0
- package/ds-card/DSCardCO.js +81 -0
- package/ds-card-navigation/CardNavigationCO.js +21 -0
- package/ds-card-navigation/DSCardNavigation.axe-core.func.spec.js +24 -0
- package/ds-card-navigation/DSCardNavigation.visual.spec.js +23 -0
- package/ds-chat/DSChat-bubble.axe-core.func.spec.js +37 -0
- package/ds-chat/DSChat-bubble.visual.spec.js +51 -0
- package/ds-chat/DSChat-composer.func.spec.js +127 -0
- package/ds-chat/DSChat-composer.visual.spec.js +87 -0
- package/ds-chat/DSChat-container.func.spec.js +77 -0
- package/ds-chat/DSChat-floating-button.visual.spec.js +40 -0
- package/ds-chat/DSChat-header.func.spec.js +33 -0
- package/ds-chat/DSChat-header.visual.spec.js +34 -0
- package/ds-chat/DSChat-loadmore.func.spec.js +54 -0
- package/ds-chat/DSChat-loadmore.visual.spec.js +27 -0
- package/ds-chat/DSChat-tile.func.spec.js +32 -0
- package/ds-chat/DSChat-tile.visual.spec.js +43 -0
- package/ds-chat/DSChat-tooltip.visual.spec.js +33 -0
- package/ds-chat/DSChat.func.spec.js +181 -0
- package/ds-chat/DSChat.mobile.visual.spec.js +16 -0
- package/ds-chat/DSChat.smoke.spec.js +274 -0
- package/ds-chat/DSChat.visual.spec.js +318 -0
- package/ds-chat/DSChatCO.js +128 -0
- package/ds-chat/components/BubbleCO.js +59 -0
- package/ds-chat/components/ComposerCO.js +41 -0
- package/ds-chat/components/FloatingButtonCO.js +16 -0
- package/ds-chat/components/HeaderCO.js +40 -0
- package/ds-chat/components/StoryBtnsCO.js +15 -0
- package/ds-chat/components/TileCO.js +29 -0
- package/ds-chat/components/index.js +7 -0
- package/ds-chat/helpers/getElementByDataTestId.js +1 -0
- package/ds-chat/helpers/index.js +1 -0
- package/ds-chip/DSChip.axe-core.func.spec.js +64 -0
- package/ds-chip/DSChip.visual.spec.js +83 -0
- package/ds-chip/DSChipCO.js +36 -0
- package/ds-circular-indeterminate-indicator/DSCircularIndicator.axe-core.func.spec.js +45 -0
- package/ds-circular-indeterminate-indicator/DSCircularIndicator.func.spec.js +17 -0
- package/ds-circular-indeterminate-indicator/DSCircularIndicator.visual.spec.js +37 -0
- package/ds-circular-indeterminate-indicator/DSCircularIndicatorCO.js +33 -0
- package/ds-codeeditor/DSCodeEditor.visual.spec.js +28 -0
- package/ds-codeeditor/DSCodeEditorCO.js +17 -0
- package/ds-comments-card/DSComments.axe-core.func.spec.js +66 -0
- package/ds-comments-card/DSComments.func.spec.js +56 -0
- package/ds-comments-card/DSComments.visual.spec.js +68 -0
- package/ds-comments-card/DSCommentsCO.js +41 -0
- package/ds-controlled-form/ds-combobox/DSComboboxCO.js +206 -0
- package/ds-controlled-form/ds-combobox/DSComboboxbox.axe-core.spec.js +36 -0
- package/ds-controlled-form/ds-combobox/DSComboboxbox.func.spec.js +28 -0
- package/ds-controlled-form/ds-combobox/DSComboboxbox.smoke.spec.js +374 -0
- package/ds-controlled-form/ds-combobox/creatable/DSComboboxbox.creatable.axe-core.spec.js +38 -0
- package/ds-controlled-form/ds-combobox/creatable/DSComboboxbox.creatable.visual.spec.js +48 -0
- package/ds-controlled-form/ds-combobox/creatable/DSComboboxbox.keyboard-creatable.func.spec.js +55 -0
- package/ds-controlled-form/ds-combobox/disabled/DSComboboxbox.disabled.axe-core.spec.js +26 -0
- package/ds-controlled-form/ds-combobox/disabled/DSComboboxbox.disabled.visual.spec.js +27 -0
- package/ds-controlled-form/ds-combobox/error-state/DSComboboxbox.with-form-item-block.axe-core.spec.js +42 -0
- package/ds-controlled-form/ds-combobox/error-state/DSComboboxbox.with-form-item-block.visual.spec.js +67 -0
- package/ds-controlled-form/ds-combobox/inline/DSComboboxbox.inline.axe-core.spec.js +30 -0
- package/ds-controlled-form/ds-combobox/inline/DSComboboxbox.inline.keyboard.func.spec.js +140 -0
- package/ds-controlled-form/ds-combobox/inline/DSComboboxbox.inline.mouse-touch.func.spec.js +115 -0
- package/ds-controlled-form/ds-combobox/inline/DSComboboxbox.inline.visual.spec.js +36 -0
- package/ds-controlled-form/ds-combobox/inside-dialog/DSComboboxbox.inside-dialog.axe-core.spec.js +33 -0
- package/ds-controlled-form/ds-combobox/inside-dialog/DSComboboxbox.inside-dialog.visual.spec.js +50 -0
- package/ds-controlled-form/ds-combobox/inside-form/DSComboboxbox.inside-form.axe-core.spec.js +25 -0
- package/ds-controlled-form/ds-combobox/inside-form/DSComboboxbox.inside-form.visual.spec.js +18 -0
- package/ds-controlled-form/ds-combobox/loading/DSComboboxbox.loading.axe-core.spec.js +27 -0
- package/ds-controlled-form/ds-combobox/multi-select/DSComboboxbox.keyboard-multi-select.func.spec.js +215 -0
- package/ds-controlled-form/ds-combobox/multi-select/DSComboboxbox.mouse-touch-multi-select.func.spec.js +223 -0
- package/ds-controlled-form/ds-combobox/multi-select/DSComboboxbox.multi-select.axe-core.spec.js +47 -0
- package/ds-controlled-form/ds-combobox/multi-select/DSComboboxbox.multi.visual.spec.js +142 -0
- package/ds-controlled-form/ds-combobox/multi-select/DSComboboxbox.ten-thousand-options.func.spec.js +47 -0
- package/ds-controlled-form/ds-combobox/only-selectable/DSComboboxbox.only-selectable.axe-core.spec.js +31 -0
- package/ds-controlled-form/ds-combobox/only-selectable/DSComboboxbox.only-selectable.func.spec.js +24 -0
- package/ds-controlled-form/ds-combobox/single-select/DSComboboxbox.keyboard-single-select.func.spec.js +153 -0
- package/ds-controlled-form/ds-combobox/single-select/DSComboboxbox.single-select.visual.spec.js +48 -0
- package/ds-controlled-form/ds-controlled-checkbox/Basic/DSControlledCheckbox.axe-core.basic.func.spec.js +42 -0
- package/ds-controlled-form/ds-controlled-checkbox/Basic/DSControlledCheckbox.basic.func.spec.js +46 -0
- package/ds-controlled-form/ds-controlled-checkbox/DSControlledCheckbox.smoke.spec.js +125 -0
- package/ds-controlled-form/ds-controlled-checkbox/DSControlledCheckboxCO.js +67 -0
- package/ds-controlled-form/ds-controlled-checkbox/Disabled/DSControlledCheckbox.axe-core.disabled.func.spec.js +24 -0
- package/ds-controlled-form/ds-controlled-checkbox/Disabled/DSControlledCheckbox.disabled.visual.spec.js +18 -0
- package/ds-controlled-form/ds-controlled-checkbox/HasError/DSControlledCheckbox.axe-core.hasError.func.spec.js +42 -0
- package/ds-controlled-form/ds-controlled-checkbox/HasError/DSControlledCheckbox.has-error.visual.spec.js +20 -0
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.axe-core.mixed.func.spec.js +42 -0
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.func.spec.js +89 -0
- package/ds-controlled-form/ds-controlled-checkbox/Mixed/DSControlledCheckbox.mixed.visual.spec.js +20 -0
- package/ds-controlled-form/ds-controlled-checkbox/ReadOnly/DSControlledCheckbox.axe-core.read-only.func.spec.js +34 -0
- package/ds-controlled-form/ds-controlled-checkbox/ReadOnly/DSControlledCheckbox.read-only.func.spec.js +60 -0
- package/ds-controlled-form/ds-controlled-checkbox/ReadOnly/DSControlledCheckbox.read-only.visual.spec.js +21 -0
- package/ds-controlled-form/ds-controlled-checkbox/WithTooltip/DSControlledCheckbox.axe-core.with-tooltip.func.spec.js +22 -0
- package/ds-controlled-form/ds-controlled-checkbox/WithTooltip/DSControlledCheckbox.with-tooltip.visual.spec.js +20 -0
- package/ds-controlled-form/ds-controlled-checkbox/WrapLabel/DSControlledCheckbox.axe-core.wrap-label.func.spec.js +22 -0
- package/ds-controlled-form/ds-controlled-checkbox/WrapLabel/DSControlledCheckbox.wrap-label.visual.spec.js +17 -0
- package/ds-controlled-form/ds-controlled-checkbox-group/DSControlledCheckboxGroup.axe-core.func.spec.js +41 -0
- package/ds-controlled-form/ds-controlled-checkbox-group/DSControlledCheckboxGroup.func.spec.js +36 -0
- package/ds-controlled-form/ds-controlled-checkbox-group/DSControlledCheckboxGroup.visual.spec.js +18 -0
- package/ds-controlled-form/ds-controlled-checkbox-group/DSControlledCheckboxGroupCO.js +11 -0
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePicker.DateInput.visual.spec.js +54 -0
- package/ds-controlled-form/ds-controlled-date-range-picker/DSControlledDateRangePickerCO.js +53 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/DSControlledDateTimePicker.DateInput.visual.spec.js +43 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/DSControlledDateTimePicker.smoke.spec.js +162 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/DSControlledDateTimePickerCO.js +260 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-input/DateInput.auto-advance.func.spec.js +137 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-input/DateInput.func.spec.js +101 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-input/DateInput.keyboard-nav.func.spec.js +154 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-time-picker/DateTimePicker.custom.attributes.spec.js +94 -0
- package/ds-controlled-form/ds-controlled-date-time-picker/date-time-picker/DateTimePicker.func.spec.js +87 -0
- package/ds-controlled-form/ds-controlled-inputgroup/DSControlledInputGroupCO.js +74 -0
- package/ds-controlled-form/ds-controlled-inputgroup/autocomplete/DSControlledInputGroup.autocomplete.axe-core.func.spec.js +51 -0
- package/ds-controlled-form/ds-controlled-inputgroup/basic/DSControlledInputGroup.basic.axe-core.func.spec.js +29 -0
- package/ds-controlled-form/ds-controlled-inputgroup/basic/DSControlledInputGroup.basic.visual.spec.js +33 -0
- package/ds-controlled-form/ds-controlled-inputgroup/combobox/DSControlledInputGroup.combobox.axe-core.func.spec.js +51 -0
- package/ds-controlled-form/ds-controlled-inputgroup/form-item-layout/DSControlledInputGroup.form-item-layout.axe-core.func.spec.js +23 -0
- package/ds-controlled-form/ds-controlled-inputgroup/form-item-layout/DSControlledInputGroup.form-item-layout.func.spec.js +20 -0
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.axe-core.func.spec.js +37 -0
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.func.spec.js +25 -0
- package/ds-controlled-form/ds-controlled-inputgroup/protected/DSControlledInputGroup.protected.visual.spec.js +40 -0
- package/ds-controlled-form/ds-controlled-large-input-text/DSLargeInputTextCO.js +55 -0
- package/ds-controlled-form/ds-controlled-large-input-text/dialog/DSLargeInputText.dialog.visual.spec.js +23 -0
- package/ds-controlled-form/ds-controlled-large-input-text/disabled/DSLargeInputText.disabled.axe-core.func.spec.js +23 -0
- package/ds-controlled-form/ds-controlled-large-input-text/disabled/DSLargeInputText.disabled.visual.spec.js +18 -0
- package/ds-controlled-form/ds-controlled-large-input-text/hasError/DSLargeInputText.has-error.axe-core.func.spec.js +23 -0
- package/ds-controlled-form/ds-controlled-large-input-text/hasError/DSLargeInputText.has-error.visual.spec.js +22 -0
- package/ds-controlled-form/ds-controlled-large-input-text/innerRef/DSLargeInputText.innerRef.func.spec.js +23 -0
- package/ds-controlled-form/ds-controlled-large-input-text/label-counter/DSLargeInputText.label-counter.func.spec.js +46 -0
- package/ds-controlled-form/ds-controlled-large-input-text/label-counter/DSLargeInputText.label-counter.visual.spec.js +20 -0
- package/ds-controlled-form/ds-controlled-large-input-text/max-height/DSLargeInputText.max-height.axe-core.func.spec.js +23 -0
- package/ds-controlled-form/ds-controlled-large-input-text/max-height/DSLargeInputText.max-height.visual.spec.js +63 -0
- package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.axe-core.func.spec.js +23 -0
- package/ds-controlled-form/ds-controlled-large-input-text/read-only/DSLargeInputText.read-only.visual.spec.js +18 -0
- package/ds-controlled-form/ds-controlled-large-input-text/rows/DSLargeInputText.rows.visual.spec.js +60 -0
- package/ds-controlled-form/ds-controlled-radio/DSControlledRadio.axe-core.func.spec.js +70 -0
- package/ds-controlled-form/ds-controlled-radio/DSControlledRadio.func.spec.js +22 -0
- package/ds-controlled-form/ds-controlled-radio/DSControlledRadio.visual.spec.js +96 -0
- package/ds-controlled-form/ds-controlled-radio/DSControlledRadioCO.js +42 -0
- package/ds-controlled-form/ds-controlled-toggle/DSControlledToggle.func.spec.js +124 -0
- package/ds-controlled-form/ds-controlled-toggle/DSControlledToggle.visual.spec.js +55 -0
- package/ds-controlled-form/ds-controlled-toggle/DSControlledToggleCO.js +61 -0
- package/ds-controlled-form/ds-input-text/DSInputText.axe-core.func.spec.js +86 -0
- package/ds-controlled-form/ds-input-text/DSInputText.clearable.keyboard.func.spec.js +45 -0
- package/ds-controlled-form/ds-input-text/DSInputText.func.spec.js +127 -0
- package/ds-controlled-form/ds-input-text/DSInputText.smoke.spec.js +29 -0
- package/ds-controlled-form/ds-input-text/DSInputText.visual.spec.js +127 -0
- package/ds-controlled-form/ds-input-text/DSInputTextCO.js +51 -0
- package/ds-controlled-form/react-hook-form/ReactHook.func.spec.js +74 -0
- package/ds-controlled-form/react-hook-form/ReactHook.visual.spec.js +52 -0
- package/ds-controlled-form/react-hook-form/ReactHookCO.js +79 -0
- package/ds-controlled-form/useMask/Number/UseNumberMask.func.spec.js +192 -0
- package/ds-controlled-form/useMask/Number/UseNumberMask.visual.spec.js +35 -0
- package/ds-controlled-form/useMask/Phone/UsePhoneMask.func.spec.js +49 -0
- package/ds-controlled-form/useMask/Phone/UsePhoneMask.visual.spec.js +30 -0
- package/ds-controlled-form/useMask/ReackHookFormWithMask/ReactHookFormWithMask.func.spec.js +51 -0
- package/ds-controlled-form/useMask/ReackHookFormWithMask/ReactHookFormWithMask.visual.spec.js +39 -0
- package/ds-controlled-form/useMask/RegExp/UseRegExpMask.func.spec.js +37 -0
- package/ds-controlled-form/useMask/SSN/UseSsnMask.func.spec.js +53 -0
- package/ds-controlled-form/useMask/ZipCode/UseZipCodeMask.func.spec.js +37 -0
- package/ds-controlled-form/useMask/useMaskCO.js +56 -0
- package/ds-data-table-async/DSDataTable.smoke.spec.js +312 -0
- package/ds-data-table-async/DSDataTableCO.js +249 -0
- package/ds-data-table-async/basic/DSDataTable.basic.axe-core.func.spec.js +120 -0
- package/ds-data-table-async/basic/DSDataTable.basic.func.spec.js +78 -0
- package/ds-data-table-async/basic/DSDataTable.basic.visual.spec.js +144 -0
- package/ds-data-table-async/basic/DSDataTable.usecases.func.spec.js +315 -0
- package/ds-data-table-async/basic/DSDataTable.usecases.visual.spec.js +226 -0
- package/ds-data-table-async/components/CellCO.js +25 -0
- package/ds-data-table-async/components/DateSwitcherCO.js +44 -0
- package/ds-data-table-async/components/ExportCsvCO.js +22 -0
- package/ds-data-table-async/components/FilterBarCO.js +60 -0
- package/ds-data-table-async/components/FiltersCO.js +127 -0
- package/ds-data-table-async/components/FiltersCOextra.js +39 -0
- package/ds-data-table-async/components/HeaderCO.js +39 -0
- package/ds-data-table-async/components/OnRowClickCO.js +26 -0
- package/ds-data-table-async/components/PaginationNavCO.js +31 -0
- package/ds-data-table-async/components/RowCO.js +72 -0
- package/ds-data-table-async/components/index.js +10 -0
- package/ds-data-table-async/date-filters/DSDataTable.date-filters.func.spec.js +65 -0
- package/ds-data-table-async/date-filters/DSDataTable.date-switcher.range.func.spec.js +69 -0
- package/ds-data-table-async/date-filters/DSDataTable.date-switcher.single.func.spec.js +87 -0
- package/ds-data-table-async/date-filters/DSDataTable.date-switcher.visual.spec.js +50 -0
- package/ds-data-table-async/date-filters/DSDataTable.dates.axe-core.func.spec.js +59 -0
- package/ds-data-table-async/dnd/DSDataTable.dnd.axe-core.func.spec.js +60 -0
- package/ds-data-table-async/dnd/DSDataTable.dnd.func.spec.js +216 -0
- package/ds-data-table-async/dnd/DSDataTable.dnd.visual.spec.js +182 -0
- package/ds-data-table-async/editable-cell/DSDataTable.editablecells.axe-core.func.spec.js +42 -0
- package/ds-data-table-async/editable-cell/DSDataTable.editablecells.func.spec.js +40 -0
- package/ds-data-table-async/editable-cell/DSDataTable.editablecells.visual.spec.js +59 -0
- package/ds-data-table-async/empty-state/DSDataTable.empty-state.axe-core.func.spec.js +24 -0
- package/ds-data-table-async/empty-state/DSDataTable.empty-state.visual.spec.js +49 -0
- package/ds-data-table-async/expandable/DSDataTable.expandable.axe-core.func.spec.js +29 -0
- package/ds-data-table-async/expandable/DSDataTable.expandable.func.spec.js +92 -0
- package/ds-data-table-async/expandable/DSDataTable.expandable.visual.spec.js +101 -0
- package/ds-data-table-async/filters/DSDataTable.currency-number-filters.func.spec.js +66 -0
- package/ds-data-table-async/filters/DSDataTable.filteredMultipleTables.visual.spec.js +22 -0
- package/ds-data-table-async/filters/DSDataTable.filters-creatable.func.spec.js +112 -0
- package/ds-data-table-async/filters/DSDataTable.filters-creatable.visual.spec.js +61 -0
- package/ds-data-table-async/filters/DSDataTable.filters.axe-core.func.spec.js +135 -0
- package/ds-data-table-async/filters/DSDataTable.filters.empty-value.func.spec.js +82 -0
- package/ds-data-table-async/filters/DSDataTable.filters.empty-value.keybooard-nav.func.spec.js +73 -0
- package/ds-data-table-async/filters/DSDataTable.filters.empty-value.visual.spec.js +76 -0
- package/ds-data-table-async/filters/DSDataTable.filters.keybooard-nav.func.spec.js +40 -0
- package/ds-data-table-async/filters/DSDataTable.filters.visual.spec.js +188 -0
- package/ds-data-table-async/filters/DSDataTable.text-filterbar-controlled.func.spec.js +42 -0
- package/ds-data-table-async/filters/DSDataTable.text-filters.func.spec.js +230 -0
- package/ds-data-table-async/helpers/asyncFilter.js +4 -0
- package/ds-data-table-async/helpers/asyncShiftPress.js +19 -0
- package/ds-data-table-async/helpers/getElementBoundingRect.js +2 -0
- package/ds-data-table-async/helpers/getElementByIndex.js +12 -0
- package/ds-data-table-async/helpers/getElementDragHandler.js +3 -0
- package/ds-data-table-async/helpers/getRadioValue.js +1 -0
- package/ds-data-table-async/helpers/index.js +7 -0
- package/ds-data-table-async/helpers/throttleTyping.js +6 -0
- package/ds-data-table-async/more/DSDataTable.custom.func.spec.js +31 -0
- package/ds-data-table-async/more/DSDataTable.headers.visual.spec.js +70 -0
- package/ds-data-table-async/more/DSDataTable.more.axe-core.func.spec.js +40 -0
- package/ds-data-table-async/pagination/DSDataTable.pagination.axe-core.func.spec.js +52 -0
- package/ds-data-table-async/pagination/DSDataTable.pagination.func.spec.js +152 -0
- package/ds-data-table-async/pagination/DSDataTable.pagination.visual.spec.js +46 -0
- package/ds-data-table-async/resizable/DSDataTable.resizable.axe-core.func.spec.js +40 -0
- package/ds-data-table-async/resizable/DSDataTable.resizable.func.spec.js +47 -0
- package/ds-data-table-async/resizable/DSDataTable.resizable.visual.spec.js +156 -0
- package/ds-data-table-async/row-variant/DSDataTable.row-styling.visual.spec.js +62 -0
- package/ds-data-table-async/row-variant/DSDataTable.row-variant.axe-core.func.spec.js +27 -0
- package/ds-data-table-async/row-variant/DSDataTable.row-variant.func.spec.js +101 -0
- package/ds-data-table-async/select/DSDataTable.select.axe-core.func.spec.js +152 -0
- package/ds-data-table-async/select/DSDataTable.select.func.spec.js +174 -0
- package/ds-data-table-async/select/DSDataTable.select.visual.spec.js +119 -0
- package/ds-data-table-async/skeleton/DSDataTable.skeleton.axe-core.func.spec.js +58 -0
- package/ds-data-table-async/skeleton/DSDataTable.skeleton.visual.spec.js +51 -0
- package/ds-data-table-async/toolbar/DSDataTable.Toolbar.func.spec.js +184 -0
- package/ds-data-table-async/toolbar/DSDataTable.Toolbar.visual.spec.js +33 -0
- package/ds-data-table-async/toolbar/DSDataTable.toolbar.axe-core.func.spec.js +27 -0
- package/ds-data-table-async/vissibility/DSDataTable.responsive.visual.spec.js +17 -0
- package/ds-data-table-async/vissibility/DSDataTable.vissibility.axe-core.func.spec.js +32 -0
- package/ds-data-table-async/vissibility/DSDataTable.vissibility.visual.spec.js +81 -0
- package/ds-datagrids/DSDataGrids-selectable-default.func.spec.js +27 -0
- package/ds-datagrids/DSDatagrid-basic.visual.spec.js +16 -0
- package/ds-datagrids/DSDatagrid-editable.func.spec.js +62 -0
- package/ds-datagrids/DSDatagrid-empty-state.visual.spec.js +16 -0
- package/ds-datagrids/DSDatagrid-pui-5550.func.spec.js +15 -0
- package/ds-datagrids/DSDatagrid-selectable-multi.visual.spec.js +16 -0
- package/ds-datagrids/DSDatagrid-sortable.func.spec.js +43 -0
- package/ds-datagrids/DSDatagrid.func.spec.js +56 -0
- package/ds-datagrids/DSDatagrids-cell-renders.visual.spec.js +43 -0
- package/ds-datagrids/DSDatagrids-control-focus.visual.spec.js +30 -0
- package/ds-datagrids/DSDatagrids-filterable-dates.func.spec.js +300 -0
- package/ds-datagrids/DSDatagrids-filterable-default-filters.func.spec.js +27 -0
- package/ds-datagrids/DSDatagrids-filterable-default-filters.visual.spec.js +16 -0
- package/ds-datagrids/DSDatagrids-filterable.func.spec.js +213 -0
- package/ds-datagrids/DSDatagrids-header.visual.spec.js +16 -0
- package/ds-datagrids/DSDatagrids-infinite-scrolling.func.spec.js +24 -0
- package/ds-datagrids/DSDatagrids-pagination.func.spec.js +85 -0
- package/ds-datagrids/DSDatagrids-pagination.visual.spec.js +30 -0
- package/ds-datagrids/DSDatagrids-performance.func.spec.js +23 -0
- package/ds-datagrids/DSDatagrids-selectable-multi.func.spec.js +21 -0
- package/ds-datagrids/DSDatagrids-toolbar.visual.spec.js +17 -0
- package/ds-datagrids/DSDatagrids-virtualization-dynamic-rows.func.spec.js +18 -0
- package/ds-datagrids/DSDatagrids-virtualization.func.spec.js +15 -0
- package/ds-datagrids/DSDatagrids-wrapping.visual.spec.js +28 -0
- package/ds-datagrids/DatagridObject.js +397 -0
- package/ds-datagrids/page-objects/Editable.componentObject.js +67 -0
- package/ds-datagrids/page-objects/Pagination.componentObject.js +72 -0
- package/ds-dataviz/DSDataViz.area.visual.spec.js +40 -0
- package/ds-dataviz/DSDataViz.axis.visual.spec.js +80 -0
- package/ds-dataviz/DSDataViz.bars.visual.spec.js +103 -0
- package/ds-dataviz/DSDataViz.extra.visual.spec.js +118 -0
- package/ds-dataviz/DSDataViz.func.spec.js +40 -0
- package/ds-dataviz/DSDataViz.legend.visual.spec.js +53 -0
- package/ds-dataviz/DSDataViz.lines.visual.spec.js +40 -0
- package/ds-dataviz/DSDataViz.pie.visual.spec.js +82 -0
- package/ds-dataviz/DSDataViz.scroll.visual.spec.js +135 -0
- package/ds-dataviz/DSDataViz.singlestackedbar.visual.spec.js +67 -0
- package/ds-dataviz/DSDataViz.smoke.spec.js +40 -0
- package/ds-dataviz/DSDataViz.ticks.func.spec.js +19 -0
- package/ds-dataviz/DSDataViz.ticks.visual.spec.js +76 -0
- package/ds-dataviz/DSDataVizCO.js +187 -0
- package/ds-dataviz/axecore/DSDataViz.area.axe-core.func.spec.js +36 -0
- package/ds-dataviz/axecore/DSDataViz.axis.axe-core.func.spec.js +42 -0
- package/ds-dataviz/axecore/DSDataViz.bars.axe-core.func.spec.js +95 -0
- package/ds-dataviz/axecore/DSDataViz.extra.axe-core.func.spec.js +78 -0
- package/ds-dataviz/axecore/DSDataViz.legend.axe-core.func.spec.js +40 -0
- package/ds-dataviz/axecore/DSDataViz.lines.axe-core.func.spec.js +49 -0
- package/ds-dataviz/axecore/DSDataViz.pie.axe-core.func.spec.js +70 -0
- package/ds-dataviz/axecore/DSDataViz.scroll.axe-core.func.spec.js +59 -0
- package/ds-dataviz/axecore/DSDataViz.singlestackedbar.axe-core.func.spec.js +24 -0
- package/ds-dataviz/axecore/DSDataViz.ticks.axe-core.func.spec.js +36 -0
- package/ds-date-picker/DSDatePicker.func.spec.js +275 -0
- package/ds-date-picker/DSDatePickerCO.js +104 -0
- package/ds-date-range-picker/DSDateRangePicker.func.spec.js +114 -0
- package/ds-date-range-picker/DSDateRangePicker.visual.spec.js +14 -0
- package/ds-date-range-picker/DSDateRangePickerCO.js +99 -0
- package/ds-date-time-picker/DSDateTimePicker.func.spec.js +210 -0
- package/ds-date-time-picker/DateTimePickerCO.js +140 -0
- package/ds-dialog/DSDialog.cases.visual.spec.js +122 -0
- package/ds-dialog/DSDialog.func.spec.js +133 -0
- package/ds-dialog/DSDialog.smoke.spec.js +133 -0
- package/ds-dialog/DSDialog.visual.spec.js +178 -0
- package/ds-dialog/DSDialogCO.js +75 -0
- package/ds-dialog/components/DialogFormsCO.js +22 -0
- package/ds-dialog/components/DialogShuttleCO.js +12 -0
- package/ds-dialog/components/index.js +2 -0
- package/ds-dialog/helpers/getElementByIndex.js +12 -0
- package/ds-dialog/helpers/index.js +1 -0
- package/ds-drag-and-drop/DSDragAndDrop.axe-core.func.spec.js +72 -0
- package/ds-drag-and-drop/DSDragAndDrop.func.spec.js +186 -0
- package/ds-drag-and-drop/DSDragAndDrop.visual.spec.js +45 -0
- package/ds-drag-and-drop/DSDragAndDropCO.js +54 -0
- package/ds-dropdownmenu/DSDropddownMenu-loading.visual.spec.js +28 -0
- package/ds-dropdownmenu/DSDropddownMenu.func.spec.js +38 -0
- package/ds-dropdownmenu/DSDropdownMenu-basic.visual.spec.js +30 -0
- package/ds-dropdownmenu/DSDropdownMenu-withselect.visual.spec.js +24 -0
- package/ds-dropdownmenu/DropdownMenuCO.js +57 -0
- package/ds-dropdownmenu-v2/DSDDMenuV2.axe-core.func.spec.js +109 -0
- package/ds-dropdownmenu-v2/DSDDMenuV2.func.spec.js +222 -0
- package/ds-dropdownmenu-v2/DSDDMenuV2.visual.spec.js +153 -0
- package/ds-dropdownmenu-v2/DSDDMenuV2CO.js +69 -0
- package/ds-dropzone/DSDropzone.func.spec.js +24 -0
- package/ds-dropzone/DSDropzoneCO.js +17 -0
- package/ds-eol/ds-date-range-selector/DSDateRangeSelector.func.spec.js +22 -0
- package/ds-eol/ds-date-range-selector/DSDateRangeSelector.visual.spec.js +71 -0
- package/ds-eol/ds-date-range-selector/DSDateRangeSelectorCO.js +35 -0
- package/ds-filterbar/DSFilterBar-basic.func.spec.js +15 -0
- package/ds-filterbar/DSFilterBar-dropdown-multipill.visual.spec.js +55 -0
- package/ds-filterbar/FilterbarCO.js +53 -0
- package/ds-form/Checkbox/DSCheckbox.func.spec.js +69 -0
- package/ds-form/Checkbox/DSCheckbox.keyboard.navigation.func.spec.js +64 -0
- package/ds-form/Checkbox/DSCheckbox.visual.spec.js +37 -0
- package/ds-form/Checkbox/DSCheckboxCO.js +60 -0
- package/ds-form/Combobox/DSCombobox.accessibility.func.spec.js +150 -0
- package/ds-form/Combobox/DSCombobox.basic.func.spec.js +238 -0
- package/ds-form/Combobox/DSCombobox.freesolo.func.spec.js +98 -0
- package/ds-form/Combobox/DSCombobox.freesolo.visual.spec.js +25 -0
- package/ds-form/Combobox/DSCombobox.multi.func.spec.js +121 -0
- package/ds-form/Combobox/DSCombobox.multi.visual.spec.js +54 -0
- package/ds-form/Combobox/DSCombobox.tablet.func.spec.js +30 -0
- package/ds-form/Combobox/DSCombobox.visual.spec.js +93 -0
- package/ds-form/Combobox/DSComboboxCO.js +206 -0
- package/ds-form/DateInput/DSDateInputCO.js +51 -0
- package/ds-form/DateInput/DateInput.func.spec.js +217 -0
- package/ds-form/DateInput/DateInput.states.func.spec.js +55 -0
- package/ds-form/FormatItemLayout/FormItemLayout.func.spec.js +46 -0
- package/ds-form/FormatItemLayout/FormatItemLayout.js +53 -0
- package/ds-form/FormatItemLayout/FormatItemLayout.visual.spec.js +94 -0
- package/ds-form/InputGroup/DSInputGroup.visual.spec.js +15 -0
- package/ds-form/InputGroup/DSInputGroupCO.js +19 -0
- package/ds-form/InputMask/AlphaNumeric.InputMask.func.spec.js +41 -0
- package/ds-form/InputMask/AutoCorrectedDate.InputMask.func.spec.js +18 -0
- package/ds-form/InputMask/DSInputMask.visual.spec.js +21 -0
- package/ds-form/InputMask/DSInputMaskCO.js +92 -0
- package/ds-form/InputMask/Date.InputMask.func.spec.js +48 -0
- package/ds-form/InputMask/DateTime.InputMask.func.spec.js +48 -0
- package/ds-form/InputMask/Decimal.InputMask.func.spec.js +119 -0
- package/ds-form/InputMask/Number.InputMask.func.spec.js +98 -0
- package/ds-form/InputMask/Percent.InputMask.func.spec.js +54 -0
- package/ds-form/InputMask/Phone.InputMask.func.spec.js +48 -0
- package/ds-form/InputMask/PhoneInternational.InputMask.func.spec.js +60 -0
- package/ds-form/InputMask/Ssn.InputMask.func.spec.js +60 -0
- package/ds-form/InputMask/UsZipCode.InputMask.func.spec.js +46 -0
- package/ds-form/InputProtected/DSInputProtected.func.spec.js +19 -0
- package/ds-form/InputProtected/DSInputProtected.visual.spec.js +18 -0
- package/ds-form/InputProtected/DSInputProtectedCO.js +45 -0
- package/ds-form/LargeInputText/DSLargeInputText.func.spec.js +37 -0
- package/ds-form/LargeInputText/DSLargeInputText.visual.spec.js +18 -0
- package/ds-form/LargeInputText/DSLargeInputTextCO.js +45 -0
- package/ds-form/Radio/DSRadio.func.spec.js +13 -0
- package/ds-form/Radio/DSRadio.visual.spec.js +39 -0
- package/ds-form/Radio/DSRadioCO.js +49 -0
- package/ds-form/SearchBox/DSSearchBox.func.spec.js +90 -0
- package/ds-form/SearchBox/DSSearchBox.visual.spec.js +61 -0
- package/ds-form/SearchBox/DSSearchBoxCO.js +75 -0
- package/ds-form/Toggle/DSToggle.func.spec.js +70 -0
- package/ds-form/Toggle/DSToggle.visual.spec.js +21 -0
- package/ds-form/Toggle/DSToggleCO.js +45 -0
- package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItem.axe-core.func.spec.js +144 -0
- package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItem.func.spec.js +203 -0
- package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItem.visual.spec.js +155 -0
- package/ds-form-layout-blocks/form-layout-block-item/DSFormLayoutBlockItemCO.js +116 -0
- package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroup.visual.spec.js +13 -0
- package/ds-form-layout-blocks/form-layout-checkbox-group/DSFormLayoutCheckboxGroupCO.js +14 -0
- package/ds-form-layout-label/DSFormLayoutLabel.func.spec.js +24 -0
- package/ds-form-layout-label/DSFormLayoutLabelCO.js +17 -0
- package/ds-global-header/GlobalHeader.func.spec.js +34 -0
- package/ds-global-header/GlobalHeader.visual.spec.js +140 -0
- package/ds-global-header/GlobalHeaderCO.js +65 -0
- package/ds-grid/DSGrid.axe-core.func.spec.js +93 -0
- package/ds-grid/DSGrid.visual.mobile.spec.js +65 -0
- package/ds-grid/DSGrid.visual.spec.js +52 -0
- package/ds-grid/DSGridCO.js +81 -0
- package/ds-grid/border/DSGrid.border.visual.spec.js +37 -0
- package/ds-grid/breakpoints/DSGrid.breakpoints.visual.spec.js +25 -0
- package/ds-grid/columnsnrows/DSGrid.columnsnrows.visual.spec.js +66 -0
- package/ds-grid/display/DSGrid.layout.visual.spec.js +39 -0
- package/ds-grid/tables/DSGrid.tables.visual.spec.js +27 -0
- package/ds-group-box/DSGroupBox.visual.spec.js +15 -0
- package/ds-group-box/DSGroupBoxCO.js +23 -0
- package/ds-header/DSHeaderCO.js +16 -0
- package/ds-hooks/DSHook.UseFontSizeDetector.visual.spec.js +57 -0
- package/ds-hooks/DSHook.UseFontSizeMedia.visual.spec.js +28 -0
- package/ds-hooks/DSHook.func.spec.js +86 -0
- package/ds-hooks/DSHook.useAsDsTree.func.spec.js +128 -0
- package/ds-hooks/DSHook.usetree.func.spec.js +114 -0
- package/ds-hooks/DSHookCO.js +196 -0
- package/ds-icon/DSIcon.visual.spec.js +58 -0
- package/ds-icon/DSIconCO.js +29 -0
- package/ds-image/DSImage.func.spec.js +40 -0
- package/ds-image/DSImage.visual.spec.js +42 -0
- package/ds-image/DSImageCO.js +33 -0
- package/ds-leftnavigation/LeftNavigation.axe-core.func.spec.js +175 -0
- package/ds-leftnavigation/LeftNavigation.func.spec.js +131 -0
- package/ds-leftnavigation/LeftNavigation.keeping.items.visual.spec.js +27 -0
- package/ds-leftnavigation/LeftNavigation.keyboard.func.spec.js +134 -0
- package/ds-leftnavigation/LeftNavigation.smoke.spec.js +54 -0
- package/ds-leftnavigation/LeftNavigation.states.func.spec.js +39 -0
- package/ds-leftnavigation/LeftNavigation.visual.spec.js +231 -0
- package/ds-leftnavigation/LeftNavigationCO.js +243 -0
- package/ds-list-section-header/ListSectionHeader.visual.spec.js +36 -0
- package/ds-list-section-header/ListSectionHeaderCO.js +20 -0
- package/ds-loading-Indicator/LoadingIndicator.func.spec.js +16 -0
- package/ds-loading-Indicator/LoadingIndicatorCO.js +23 -0
- package/ds-menu-item/DSMenuItems.axe-core.func.spec.js +95 -0
- package/ds-menu-item/DSMenuItems.func.spec.js +94 -0
- package/ds-menu-item/DSMenuItems.visual.spec.js +123 -0
- package/ds-menu-item/DSMenuItemsCO.js +35 -0
- package/ds-mini-toolbar/MiniToolbal.func.spec.js +82 -0
- package/ds-mini-toolbar/MiniToolbal.visual.spec.js +15 -0
- package/ds-mini-toolbar/MiniToolbarCO.js +39 -0
- package/ds-mobile/Accordion/DSAccordion.visual.spec.js +33 -0
- package/ds-mobile/Accordion/DSAccordionCO.js +37 -0
- package/ds-mobile/CategoryBox/CategoryBox.visual.spec.js +18 -0
- package/ds-mobile/CategoryBox/CategoryBoxCO.js +17 -0
- package/ds-mobile/CollectionBox/CollectionBox.visual.spec.js +16 -0
- package/ds-mobile/CollectionBox/CollectionBoxCO.js +15 -0
- package/ds-mobile/GlobalHeader/DSGlobalHeader.visual.spec.js +55 -0
- package/ds-mobile/GlobalHeader/DSGlobalHeaderCO.js +36 -0
- package/ds-mobile/GroupBox/GroupBox.visual.spec.js +15 -0
- package/ds-mobile/GroupBox/GroupBoxCO.js +15 -0
- package/ds-mobile/InfiniteLoader/InfiniteLoader.func.spec.js +93 -0
- package/ds-mobile/InfiniteLoader/InfiniteLoaderCO.js +29 -0
- package/ds-mobile/MobileActionToolbar/MobileActionToolbar.visual.spec.js +39 -0
- package/ds-mobile/MobileActionToolbar/MobileActionToolbarCO.js +19 -0
- package/ds-mobile/MobileBanner/MobileBanner.visual.spec.js +23 -0
- package/ds-mobile/MobileBanner/MobileBannerCO.js +23 -0
- package/ds-mobile/MobileCard/Card.func.spec.js +37 -0
- package/ds-mobile/MobileCard/Card.visual.spec.js +103 -0
- package/ds-mobile/MobileCard/MobileCardCO.js +42 -0
- package/ds-mobile/MobileContextMenu/MobileContextMenu.func.spec.js +58 -0
- package/ds-mobile/MobileContextMenu/MobileContextMenu.visual.spec.js +28 -0
- package/ds-mobile/MobileContextMenu/MobileContextMenuCO.js +66 -0
- package/ds-mobile/MobileDatePicker/MobileDatePicker.func.spec.js +15 -0
- package/ds-mobile/MobileDatePicker/MobileDatePicker.visual.spec.js +28 -0
- package/ds-mobile/MobileDatePicker/MobileDatePickerCO.js +35 -0
- package/ds-mobile/MobileDropdownMenu/MobileDropdownMenu.func.spec.js +38 -0
- package/ds-mobile/MobileDropdownMenu/MobileDropdownMenu.visual.spec.js +16 -0
- package/ds-mobile/MobileDropdownMenu/MobileDropdownMenuCO.js +37 -0
- package/ds-mobile/MobileEmptyState/MobileEmptyState.visual.spec.js +15 -0
- package/ds-mobile/MobileEmptyState/MobileEmptyStateCO.js +14 -0
- package/ds-mobile/MobileFilterbar/MobileFilterbar.visual.spec.js +39 -0
- package/ds-mobile/MobileFilterbar/MobileFilterbarCO.js +19 -0
- package/ds-mobile/MobileFooter/MobileFooter.func.spec.js +26 -0
- package/ds-mobile/MobileFooter/MobileFooter.visual.spec.js +51 -0
- package/ds-mobile/MobileFooter/MobileFooterCO.js +27 -0
- package/ds-mobile/MobileListItem/MobileListItem.visual.spec.js +56 -0
- package/ds-mobile/MobileListItem/MobileListItemCO.js +19 -0
- package/ds-mobile/MobileLoadingPage/MobileLoadingPage.visual.spec.js +37 -0
- package/ds-mobile/MobileLoadingPage/MobileLoadingPageCO.js +19 -0
- package/ds-mobile/MobilePageHeader/MobilePageHeader.func.spec.js +22 -0
- package/ds-mobile/MobilePageHeader/MobilePageHeader.visual.spec.js +135 -0
- package/ds-mobile/MobilePageHeader/MobilePageHeaderCO.js +67 -0
- package/ds-mobile/MobileSelectList/MobileSelectList.visual.spec.js +56 -0
- package/ds-mobile/MobileSelectList/MobileSelectListCO.js +21 -0
- package/ds-mobile/MobileSeparator/MobileSeparator.visual.spec.js +28 -0
- package/ds-mobile/MobileSeparator/MobileSeparatorCO.js +17 -0
- package/ds-mobile/MobileTimePicker/MobileTimePickerCO.js +41 -0
- package/ds-mobile/Modal/MobileModal.visual.spec.js +56 -0
- package/ds-mobile/Modal/MobileModalCO.js +28 -0
- package/ds-mobile/PageFilter/PageFilter.visual.spec.js +46 -0
- package/ds-mobile/PageFilter/PageFilterCO.js +19 -0
- package/ds-mobile/PageForm/PageForm.visual.spec.js +14 -0
- package/ds-mobile/PageForm/PageFormCO.js +11 -0
- package/ds-mobile/PageList/PageList.visual.spec.js +31 -0
- package/ds-mobile/PageList/PageListCO.js +19 -0
- package/ds-mobile/PageSummary/PageSummary.visual.spec.js +20 -0
- package/ds-mobile/PageSummary/PageSummaryCO.js +11 -0
- package/ds-mobile/SwipeToRefresh/SwipeToRefresh.func.spec.js +26 -0
- package/ds-mobile/SwipeToRefresh/SwipeToRefreshCO.js +20 -0
- package/ds-mobile/Tabs/MobileTabs.visual.spec.js +91 -0
- package/ds-mobile/Tabs/TabsCO.js +37 -0
- package/ds-mobile/Tooltip/MobileTooltip.func.spec.js +17 -0
- package/ds-mobile/Tooltip/MobileTooltip.visual.spec.js +16 -0
- package/ds-mobile/Tooltip/TooltipCO.js +23 -0
- package/ds-mobile/helpers.js +7 -0
- package/ds-modal/Modal.func.spec.js +35 -0
- package/ds-modal/Modal.visual.spec.js +84 -0
- package/ds-modal/ModalCO.js +43 -0
- package/ds-modal-slide/ModalSlide.func.spec.js +69 -0
- package/ds-modal-slide/ModalSlide.visual.spec.js +120 -0
- package/ds-modal-slide/ModalSlideCO.js +71 -0
- package/ds-notification-badge/DSNotificationBadge.axe-core.func.spec.js +62 -0
- package/ds-notification-badge/DSNotificationBadge.visual.spec.js +72 -0
- package/ds-notification-badge/DSNotificationBadgeCO.js +26 -0
- package/ds-number-range-field/NumberRangeField.func.spec.js +75 -0
- package/ds-number-range-field/NumberRangeFieldCO.js +25 -0
- package/ds-page-header/DSPageHeader.visual.spec.js +115 -0
- package/ds-page-header/DSPageHeaderCO.js +62 -0
- package/ds-page-layout/PageLayout.visual.spec.js +44 -0
- package/ds-page-layout/PageLayoutCO.js +23 -0
- package/ds-page-number/DSPageNumber.func.spec.js +37 -0
- package/ds-page-number/DSPageNumberCO.js +36 -0
- package/ds-pagination/DSPagination.visual.spec.js +20 -0
- package/ds-pagination/DSPaginationCO.js +40 -0
- package/ds-pills/DSLabeledDropdownSinglePill.visual.spec.js +19 -0
- package/ds-pills/DSPills.func.spec.js +125 -0
- package/ds-pills/DSPills.visual.spec.js +74 -0
- package/ds-pills/DSPillsCO.js +110 -0
- package/ds-pills-v2/DSPills.axe-core.func.spec.js +136 -0
- package/ds-pills-v2/DSPills.func.spec.js +46 -0
- package/ds-pills-v2/DSPills.visual.spec.js +93 -0
- package/ds-pills-v2/DSPillsV2CO.js +70 -0
- package/ds-progress-indicator/DSProgressIndicator.func.spec.js +14 -0
- package/ds-progress-indicator/DSProgressIndicator.visual.spec.js +15 -0
- package/ds-progress-indicator/DSProgressIndicatorCO.js +24 -0
- package/ds-query-builder/DSQueryBuilder.error-states.spec.js +49 -0
- package/ds-query-builder/DSQueryBuilder.func.spec.js +69 -0
- package/ds-query-builder/DSQueryBuilder.visual.spec.js +121 -0
- package/ds-query-builder/DSQueryBuilderCO.js +153 -0
- package/ds-read-more/DSReadMore.func.spec.js +117 -0
- package/ds-read-more/DSReadMore.visual.spec.js +66 -0
- package/ds-read-more/DSReadMoreCO.js +52 -0
- package/ds-ribbon/DSRibbon.visual.spec.js +16 -0
- package/ds-ribbon/DSRibbonCO.js +15 -0
- package/ds-search-field/SearchField.func.spec.js +109 -0
- package/ds-search-field/SearchFieldCO.js +103 -0
- package/ds-separator-v2/DSSeparatorV2.visual.spec.js +14 -0
- package/ds-separator-v2/DSSeparatorV2CO.js +11 -0
- package/ds-shuttle/DSShuttle-infinite-scroll.func.spec.js +67 -0
- package/ds-shuttle/DSShuttle-infinite-scroll.visual.spec.js +65 -0
- package/ds-shuttle/DSShuttle-truncate-option.visual.spec.js +23 -0
- package/ds-shuttle/DSShuttle.func.spec.js +138 -0
- package/ds-shuttle/DSShuttleCO.js +193 -0
- package/ds-shuttle-v2/DSShuttleV2CO.js +173 -0
- package/ds-shuttle-v2/basic/DSShuttleV2.a11y.func.spec.js +43 -0
- package/ds-shuttle-v2/basic/DSShuttleV2.axe-core.func.spec.js +73 -0
- package/ds-shuttle-v2/basic/DSShuttleV2.func.spec.js +67 -0
- package/ds-shuttle-v2/basic/DSShuttleV2.keyboard.func.spec.js +260 -0
- package/ds-shuttle-v2/basic/DSShuttleV2.visual.spec.js +198 -0
- package/ds-shuttle-v2/drillingdown/DSShuttleV2.drilldown.axe-core.func.spec.js +83 -0
- package/ds-shuttle-v2/drillingdown/DSShuttleV2.drilldown.func.spec.js +108 -0
- package/ds-shuttle-v2/drillingdown/DSShuttleV2.drilldown.kb.func.spec.js +151 -0
- package/ds-shuttle-v2/extra/DSShuttleV2.extra.axe-core.func.spec.js +28 -0
- package/ds-shuttle-v2/extra/DSShuttleV2.extra.func.spec.js +35 -0
- package/ds-shuttle-v2/extra/DSShuttleV2.extra.visual.spec.js +30 -0
- package/ds-shuttle-v2/filtering/DSShuttleV2.filter.axe-core.func.spec.js +35 -0
- package/ds-shuttle-v2/filtering/DSShuttleV2.filter.func.spec.js +65 -0
- package/ds-shuttle-v2/filtering/DSShuttleV2.filter.kb.func.spec.js +50 -0
- package/ds-shuttle-v2/globalcheckbox/DSShuttleV2.globalcheckbox.axe-core.func.spec.js +33 -0
- package/ds-shuttle-v2/globalcheckbox/DSShuttleV2.globalcheckbox.func.spec.js +106 -0
- package/ds-shuttle-v2/globalcheckbox/DSShuttleV2.globalcheckbox.kb.func.spec.js +67 -0
- package/ds-shuttle-v2/items/DSShuttleV2.items.axe-core.func.spec.js +68 -0
- package/ds-shuttle-v2/items/DSShuttleV2.items.func.spec.js +110 -0
- package/ds-shuttle-v2/items/DSShuttleV2.items.kb.func.spec.js +44 -0
- package/ds-side-panel/DSSidePanel.func.spec.js +98 -0
- package/ds-side-panel/DSSidePanelCO.js +47 -0
- package/ds-side-panel/DSSlidePanel.visual.spec.js +61 -0
- package/ds-skeleton/DSSkeleton.js +11 -0
- package/ds-skipTo/DSSkipTo.func.spec.js +85 -0
- package/ds-skipTo/DSSkipToCO.js +28 -0
- package/ds-slider/DSSlider.func.spec.js +17 -0
- package/ds-slider/DSSlider.visual.spec.js +39 -0
- package/ds-slider/DSSliderCO.js +48 -0
- package/ds-squareindicator/DSSquareIndicator.func.spec.js +17 -0
- package/ds-squareindicator/DSSquareIndicator.visual.spec.js +21 -0
- package/ds-squareindicator/DSSquareIndicatorCO.js +37 -0
- package/ds-stepper/Stepper.func.spec.js +30 -0
- package/ds-stepper/Stepper.visual.spec.js +57 -0
- package/ds-stepper/StepperCO.js +32 -0
- package/ds-svg/DSSvg.func.spec.js +54 -0
- package/ds-svg/DSSvg.visual.spec.js +58 -0
- package/ds-svg/DSSvgCO.js +37 -0
- package/ds-tabs/DSTabs.func.spec.js +160 -0
- package/ds-tabs/DSTabs.visual.spec.js +268 -0
- package/ds-tabs/DSTabsCO.js +122 -0
- package/ds-text-box/DSTextBox.func.spec.js +40 -0
- package/ds-text-box/DSTextBox.visual.spec.js +51 -0
- package/ds-text-box/DSTextBoxCO.js +40 -0
- package/ds-time-picker/DSTimePicker.func.spec.js +48 -0
- package/ds-time-picker/DSTimePickerCO.js +113 -0
- package/ds-toast/DSToast.axe-core.func.spec.js +35 -0
- package/ds-toast/DSToast.func.spec.js +29 -0
- package/ds-toast/DSToast.visual.spec.js +222 -0
- package/ds-toast/DSToastCO.js +84 -0
- package/ds-toolbar/Toolbar.func.spec.js +26 -0
- package/ds-toolbar/ToolbarCO.js +23 -0
- package/ds-toolbar-v2/DSToolbarV2.func.spec.js +61 -0
- package/ds-toolbar-v2/DSToolbarV2.visual.spec.js +94 -0
- package/ds-toolbar-v2/DSToolbarV2CO.js +31 -0
- package/ds-tooltip/DSTooltip.func.spec.js +86 -0
- package/ds-tooltip/DSTooltip.visual.spec.js +31 -0
- package/ds-tooltip/DSTooltipCO.js +44 -0
- package/ds-transition/DSTransition.visual.spec.js +40 -0
- package/ds-transition/DSTransitionCO.js +19 -0
- package/ds-treeview/DSTreeViewCO.js +465 -0
- package/ds-treeview/TreeView-autoscroll.func.spec.js +47 -0
- package/ds-treeview/TreeView-controlled.func.spec.js +62 -0
- package/ds-treeview/TreeView-dnd.func.spec.js +104 -0
- package/ds-treeview/TreeView-dnd.visual.spec.js +41 -0
- package/ds-treeview/TreeView-expand-collapse.func.spec.js +96 -0
- package/ds-treeview/TreeView-right-addon.func.spec.js +80 -0
- package/ds-treeview/TreeView-search.func.spec.js +138 -0
- package/ds-treeview/TreeView-single-multi.func.spec.js +416 -0
- package/ds-treeview/TreeView-specs.func.spec.js +39 -0
- package/ds-treeview/TreeView-states.func.spec.js +155 -0
- package/ds-treeview/TreeView-truncate-tooltip.func.spec.js +20 -0
- package/ds-treeview/Treeview.visual.spec.js +116 -0
- package/ds-typography/DSTypography.func.spec.js +23 -0
- package/ds-typography/DSTypography.resize.visual.spec.js +69 -0
- package/ds-typography/DSTypography.visual.spec.js +72 -0
- package/ds-typography/DSTypographyCO.js +34 -0
- package/ds-uploader/Uploader.func.spec.js +29 -0
- package/ds-uploader/Uploader.visual.spec.js +45 -0
- package/ds-uploader/UploaderCO.js +38 -0
- package/ds-virtuallist/DSVirtualList.visual.spec.js +31 -0
- package/ds-virtuallist/DSVirtualListCO.js +23 -0
- package/ds-wizard/DSWizard.visual.spec.js +49 -0
- package/ds-wizard/DSWizardCO.js +25 -0
- package/ds-wysiwyg/DSWysiwyg.func.spec.js +234 -0
- package/ds-wysiwyg/DSWysiwyg.image-positioning.func.spec.js +43 -0
- package/ds-wysiwyg/DSWysiwyg.visual.spec.js +81 -0
- package/ds-wysiwyg/DSWysiwygCO.js +166 -0
- package/ds-zipcode-search/DSZipCodeSearch.func.spec.js +55 -0
- package/ds-zipcode-search/DSZipCodeSearchCO.js +37 -0
- package/ds-zoom/DSZoom.func.spec.js +17 -0
- package/ds-zoom/DSZoom.visual.spec.js +26 -0
- package/ds-zoom/DSZoomCO.js +28 -0
- package/gestures.js +182 -0
- package/helpers.js +413 -0
- package/jsconfig.json +5 -0
- package/package.json +11 -0
- package/utils.js +1 -0
- package/z-index/ZIndex.visual.spec.js +176 -0
- package/z-index/ZindexCO.js +155 -0
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
2
|
+
import { Key } from 'webdriverio';
|
|
3
|
+
import DSDatePicker from './DSDatePickerCO';
|
|
4
|
+
import { type } from '../helpers';
|
|
5
|
+
|
|
6
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
7
|
+
describe('PUI-4122 - DatePicker, button tabindex prop', () => {
|
|
8
|
+
before(async () => {
|
|
9
|
+
const errorOnGo = await DSDatePicker.useCasePUI3896.go();
|
|
10
|
+
if (errorOnGo) throw errorOnGo;
|
|
11
|
+
});
|
|
12
|
+
it('should support tabindex prop', async () => {
|
|
13
|
+
const datePickerBtn = await DSDatePicker.getDatePickerBtn();
|
|
14
|
+
const tabIndexProp = await datePickerBtn.getAttribute('tabindex');
|
|
15
|
+
await expect(tabIndexProp).toEqual('-1');
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
describe('PUI-4278 - DatePicker, input tabindex prop', () => {
|
|
19
|
+
before(async () => {
|
|
20
|
+
const errorOnGo = await DSDatePicker.useCasePUI4195.go();
|
|
21
|
+
if (errorOnGo) throw errorOnGo;
|
|
22
|
+
});
|
|
23
|
+
it('should support tabindex prop', async () => {
|
|
24
|
+
const datePickerBtn = await DSDatePicker.getDatePickerBtn();
|
|
25
|
+
await datePickerBtn.click();
|
|
26
|
+
const calendarTabIndex = await (await DSDatePicker.getCalendar()).getAttribute('tabindex');
|
|
27
|
+
await expect(calendarTabIndex).toEqual('3');
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
describe('PUI-5864 - DatePicker, current and selected date style', () => {
|
|
31
|
+
before(async () => {
|
|
32
|
+
const errorOnGo = await DSDatePicker.basic.go();
|
|
33
|
+
if (errorOnGo) throw errorOnGo;
|
|
34
|
+
});
|
|
35
|
+
it('should display current date style', async () => {
|
|
36
|
+
const pickerBtn = await DSDatePicker.getDatePickerBtn();
|
|
37
|
+
await pickerBtn.click();
|
|
38
|
+
const currentDay = await DSDatePicker.getCurrentDay();
|
|
39
|
+
await currentDay.waitForDisplayed();
|
|
40
|
+
const dateStlye = (await currentDay.getCSSProperty('border-top-color')).parsed.hex;
|
|
41
|
+
await expect(dateStlye).toEqual('#697489');
|
|
42
|
+
});
|
|
43
|
+
it('should display selected date style', async () => {
|
|
44
|
+
const currentDay = await DSDatePicker.getCurrentDay();
|
|
45
|
+
await currentDay.click();
|
|
46
|
+
const calendar = await DSDatePicker.getCalendar();
|
|
47
|
+
await calendar.waitForDisplayed({ reverse: true });
|
|
48
|
+
const pickerBtn = await DSDatePicker.getDatePickerBtn();
|
|
49
|
+
await pickerBtn.click();
|
|
50
|
+
await currentDay.waitForDisplayed();
|
|
51
|
+
const styleBorderTop = (await currentDay.getCSSProperty('border-top-color')).parsed.hex;
|
|
52
|
+
const styleBackgroundColor = (await currentDay.getCSSProperty('background-color')).parsed.hex;
|
|
53
|
+
await expect(styleBorderTop).toEqual('#1e79c2');
|
|
54
|
+
await expect(styleBackgroundColor).toEqual('#1e79c2');
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
if (!browser.capabilities['ice:options'].isTablet) {
|
|
58
|
+
describe('PUI-4405 - DatePicker, close calendar on date selection', () => {
|
|
59
|
+
before(async () => {
|
|
60
|
+
const errorOnGo = await DSDatePicker.useCasePUI4195.go();
|
|
61
|
+
if (errorOnGo) throw errorOnGo;
|
|
62
|
+
});
|
|
63
|
+
it('should close calendar after date selection', async () => {
|
|
64
|
+
const datePickerBtn = await DSDatePicker.getDatePickerBtn();
|
|
65
|
+
await datePickerBtn.click();
|
|
66
|
+
const calendar = await DSDatePicker.getCalendar();
|
|
67
|
+
await calendar.waitForDisplayed();
|
|
68
|
+
const datePickerDay = await DSDatePicker.getDatePickerDay(16);
|
|
69
|
+
await datePickerDay.waitForDisplayed();
|
|
70
|
+
await datePickerDay.click();
|
|
71
|
+
await expect(calendar).not.toExist();
|
|
72
|
+
});
|
|
73
|
+
it('should select the day', async () => {
|
|
74
|
+
const day = await DSDatePicker.getDay();
|
|
75
|
+
await expect(day).toHaveValue('16');
|
|
76
|
+
});
|
|
77
|
+
it('focus will return to the picker', async () => {
|
|
78
|
+
const pickerBtn = await DSDatePicker.getDatePickerBtn();
|
|
79
|
+
await pickerBtn.waitForDisplayed();
|
|
80
|
+
await expect(pickerBtn).toBeFocused();
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
describe('PUI-5770 - DatePicker - clear input setting value to null', () => {
|
|
84
|
+
before('loading page', async () => {
|
|
85
|
+
const errorOnGo = await DSDatePicker.clean.go();
|
|
86
|
+
if (errorOnGo) throw errorOnGo;
|
|
87
|
+
});
|
|
88
|
+
it('should diplay correctly the date`', async () => {
|
|
89
|
+
await (await DSDatePicker.getMonth()).setValue('02');
|
|
90
|
+
await (await DSDatePicker.getDay()).setValue('28');
|
|
91
|
+
await (await DSDatePicker.getYear()).setValue('2022');
|
|
92
|
+
const month = await DSDatePicker.getMonth();
|
|
93
|
+
const day = await DSDatePicker.getDay();
|
|
94
|
+
const year = await DSDatePicker.getYear();
|
|
95
|
+
await expect(month).toHaveValue('02');
|
|
96
|
+
await expect(day).toHaveValue('28');
|
|
97
|
+
await expect(year).toHaveValue('2022');
|
|
98
|
+
});
|
|
99
|
+
it('should clear correctly setting value to null`', async () => {
|
|
100
|
+
await (await DSDatePicker.getClearBtn()).click();
|
|
101
|
+
const month = await DSDatePicker.getMonth();
|
|
102
|
+
const day = await DSDatePicker.getDay();
|
|
103
|
+
const year = await DSDatePicker.getYear();
|
|
104
|
+
await expect(month).toHaveValue('');
|
|
105
|
+
await expect(day).toHaveValue('');
|
|
106
|
+
await expect(year).toHaveValue('');
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
describe('PUI-5788 - DatePicker - clear input [Delete]', () => {
|
|
110
|
+
beforeEach('loading page', async () => {
|
|
111
|
+
const errorOnGo = await DSDatePicker.basic.go();
|
|
112
|
+
if (errorOnGo) throw errorOnGo;
|
|
113
|
+
});
|
|
114
|
+
it('should clear correctly the month', async () => {
|
|
115
|
+
await (await DSDatePicker.getMonth()).setValue('02');
|
|
116
|
+
const month = await DSDatePicker.getMonth();
|
|
117
|
+
await expect(month).toHaveValue('02');
|
|
118
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
119
|
+
await browser.keys(Key.Delete);
|
|
120
|
+
await expect(month).toHaveValue('');
|
|
121
|
+
});
|
|
122
|
+
it('should clear correctly the day', async () => {
|
|
123
|
+
await (await DSDatePicker.getMonth()).setValue('02');
|
|
124
|
+
await (await DSDatePicker.getDay()).setValue('25');
|
|
125
|
+
const month = await DSDatePicker.getMonth();
|
|
126
|
+
await expect(month).toHaveValue('02');
|
|
127
|
+
const day = await DSDatePicker.getDay();
|
|
128
|
+
await expect(day).toHaveValue('25');
|
|
129
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
130
|
+
await browser.keys(Key.Delete);
|
|
131
|
+
await expect(month).toHaveValue('02');
|
|
132
|
+
await expect(day).toHaveValue('');
|
|
133
|
+
});
|
|
134
|
+
it('should clear correctly the year', async () => {
|
|
135
|
+
await (await DSDatePicker.getMonth()).setValue('02');
|
|
136
|
+
await (await DSDatePicker.getDay()).setValue('25');
|
|
137
|
+
await (await DSDatePicker.getYear()).setValue('2015');
|
|
138
|
+
const month = await DSDatePicker.getMonth();
|
|
139
|
+
const day = await DSDatePicker.getDay();
|
|
140
|
+
const year = await DSDatePicker.getYear();
|
|
141
|
+
await expect(month).toHaveValue('02');
|
|
142
|
+
await expect(day).toHaveValue('25');
|
|
143
|
+
await expect(year).toHaveValue('2015');
|
|
144
|
+
await browser.keys(Key.Tab);
|
|
145
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
146
|
+
await browser.keys(Key.Delete);
|
|
147
|
+
await expect(month).toHaveValue('02');
|
|
148
|
+
await expect(day).toHaveValue('25');
|
|
149
|
+
await expect(year).toHaveValue('');
|
|
150
|
+
});
|
|
151
|
+
it('should clear correctly the day after enter all date', async () => {
|
|
152
|
+
await (await DSDatePicker.getMonth()).setValue('02');
|
|
153
|
+
await (await DSDatePicker.getDay()).setValue('25');
|
|
154
|
+
await (await DSDatePicker.getYear()).setValue('2015');
|
|
155
|
+
const month = await DSDatePicker.getMonth();
|
|
156
|
+
const day = await DSDatePicker.getDay();
|
|
157
|
+
const year = await DSDatePicker.getYear();
|
|
158
|
+
await expect(month).toHaveValue('02');
|
|
159
|
+
await expect(day).toHaveValue('25');
|
|
160
|
+
await expect(year).toHaveValue('2015');
|
|
161
|
+
await browser.keys(Key.Tab);
|
|
162
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
163
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
164
|
+
await browser.keys([Key.Shift, Key.Tab]);
|
|
165
|
+
await browser.keys(Key.Delete);
|
|
166
|
+
await expect(month).toHaveValue('');
|
|
167
|
+
await expect(day).toHaveValue('25');
|
|
168
|
+
await expect(year).toHaveValue('2015');
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
describe('PUI-6150 - DatePicker, clear input setting value to null - initialdate', () => {
|
|
173
|
+
before(async () => {
|
|
174
|
+
const errorOnGo = await DSDatePicker.initialDates.go();
|
|
175
|
+
if (errorOnGo) throw errorOnGo;
|
|
176
|
+
});
|
|
177
|
+
it('should display initial date', async () => {
|
|
178
|
+
const month = await DSDatePicker.getMonth();
|
|
179
|
+
const day = await DSDatePicker.getDay();
|
|
180
|
+
const year = await DSDatePicker.getYear();
|
|
181
|
+
await expect(month).not.toHaveValue('');
|
|
182
|
+
await expect(day).not.toHaveValue('');
|
|
183
|
+
await expect(year).not.toHaveValue('');
|
|
184
|
+
});
|
|
185
|
+
it('should clear correctly setting value to null', async () => {
|
|
186
|
+
await (await DSDatePicker.getClearBtn()).click();
|
|
187
|
+
const month = await DSDatePicker.getMonth();
|
|
188
|
+
const day = await DSDatePicker.getDay();
|
|
189
|
+
const year = await DSDatePicker.getYear();
|
|
190
|
+
await expect(month).toHaveValue('');
|
|
191
|
+
await expect(day).toHaveValue('');
|
|
192
|
+
await expect(year).toHaveValue('');
|
|
193
|
+
});
|
|
194
|
+
it('should set correctly new date', async () => {
|
|
195
|
+
await (await DSDatePicker.getNewDate()).click();
|
|
196
|
+
const month = await DSDatePicker.getMonth();
|
|
197
|
+
const day = await DSDatePicker.getDay();
|
|
198
|
+
const year = await DSDatePicker.getYear();
|
|
199
|
+
await expect(month).toHaveValue('11');
|
|
200
|
+
await expect(day).toHaveValue('10');
|
|
201
|
+
await expect(year).toHaveValue('2011');
|
|
202
|
+
});
|
|
203
|
+
it('clear correctly setting value to null', async () => {
|
|
204
|
+
await (await DSDatePicker.getClearBtn()).click();
|
|
205
|
+
const month = await DSDatePicker.getMonth();
|
|
206
|
+
const day = await DSDatePicker.getDay();
|
|
207
|
+
const year = await DSDatePicker.getYear();
|
|
208
|
+
await expect(month).toHaveValue('');
|
|
209
|
+
await expect(day).toHaveValue('');
|
|
210
|
+
await expect(year).toHaveValue('');
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
describe('PUI-6280 - DatePicker, month and year navigation', () => {
|
|
214
|
+
before(async () => {
|
|
215
|
+
const errorOnGo = await DSDatePicker.basic.go();
|
|
216
|
+
if (errorOnGo) throw errorOnGo;
|
|
217
|
+
});
|
|
218
|
+
it('should navigate throw monhts correctly', async () => {
|
|
219
|
+
await (await DSDatePicker.getDatePickerBtn()).click();
|
|
220
|
+
const date = await (await DSDatePicker.getDatePickerHeader()).getText();
|
|
221
|
+
await (await DSDatePicker.getMonthNextBtn()).click();
|
|
222
|
+
const dateHeaderText = await (await DSDatePicker.getDatePickerHeader()).getText();
|
|
223
|
+
await expect(date).not.toBe(dateHeaderText);
|
|
224
|
+
await (await DSDatePicker.getMonthPrevBtn()).click();
|
|
225
|
+
const dateHeaderText2 = await (await DSDatePicker.getDatePickerHeader()).getText();
|
|
226
|
+
await expect(date).toBe(dateHeaderText2);
|
|
227
|
+
});
|
|
228
|
+
it('should navigate throw years correctly', async () => {
|
|
229
|
+
const date = await (await DSDatePicker.getDatePickerHeader()).getText();
|
|
230
|
+
await (await DSDatePicker.getYearNextBtn()).click();
|
|
231
|
+
const dateCompare = await (await DSDatePicker.getDatePickerHeader()).getText();
|
|
232
|
+
await expect(date).not.toBe(dateCompare);
|
|
233
|
+
await (await DSDatePicker.getYearPrevBtn()).click();
|
|
234
|
+
const dateCompare2 = await (await DSDatePicker.getDatePickerHeader()).getText();
|
|
235
|
+
await expect(date).toBe(dateCompare2);
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
|
|
239
|
+
describe('PUI-6407 - DatePicker, Input + Icon Min Width', () => {
|
|
240
|
+
before(async () => {
|
|
241
|
+
const errorOnGo = await DSDatePicker.ueCaseMinWidth.go();
|
|
242
|
+
if (errorOnGo) throw errorOnGo;
|
|
243
|
+
});
|
|
244
|
+
it('should be displayed with a min-width of 140', async () => {
|
|
245
|
+
const widthInput = await DSDatePicker.getWidthInput();
|
|
246
|
+
await widthInput.click();
|
|
247
|
+
await widthInput.setValue('');
|
|
248
|
+
await type('120');
|
|
249
|
+
const inputContainerSize = (await (await DSDatePicker.getInputContainer()).getSize()).width;
|
|
250
|
+
await expect(inputContainerSize).toBe(140);
|
|
251
|
+
});
|
|
252
|
+
it('should be displayed with a width of 200', async () => {
|
|
253
|
+
const widthInput = await DSDatePicker.getWidthInput();
|
|
254
|
+
await widthInput.click();
|
|
255
|
+
await widthInput.setValue('');
|
|
256
|
+
await type('200');
|
|
257
|
+
const inputContainerSize = (await (await DSDatePicker.getInputContainer()).getSize()).width;
|
|
258
|
+
await expect(inputContainerSize).toBe(200);
|
|
259
|
+
});
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
describe('PUI-6597 - DatePicker, Current day focus', () => {
|
|
263
|
+
before(async () => {
|
|
264
|
+
const errorOnGo = await DSDatePicker.focusCurrentDateURL.go();
|
|
265
|
+
if (errorOnGo) throw errorOnGo;
|
|
266
|
+
});
|
|
267
|
+
it('should focus the current date when opening the picker', async () => {
|
|
268
|
+
await (await DSDatePicker.getDatePickerBtn()).waitForDisplayed({ timeout: 10000 });
|
|
269
|
+
await (await DSDatePicker.getDatePickerBtn()).click();
|
|
270
|
+
const browserDay = await DSDatePicker.getBrowsersDay();
|
|
271
|
+
const monthPickerDay = await DSDatePicker.getCurrentMonthPickerDay(browserDay);
|
|
272
|
+
await expect(monthPickerDay).toBeFocused();
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// eslint-disable-next-line import/no-relative-packages
|
|
2
|
+
import { PATH_E2E_DATE_PICKER, PATH_END_OF_LIFE_DATE_PICKER } from '../../environments/storybook/paths';
|
|
3
|
+
import { PageObject, Urlbuilder } from '../helpers';
|
|
4
|
+
|
|
5
|
+
export default class DSDatePickerCO extends PageObject {
|
|
6
|
+
static useCasePUI3896 = new Urlbuilder(PATH_E2E_DATE_PICKER, 'pui-3896-tab-index-picker');
|
|
7
|
+
|
|
8
|
+
static useCasePUI4195 = new Urlbuilder(PATH_E2E_DATE_PICKER, 'pui-4195-date-input-tab-index');
|
|
9
|
+
|
|
10
|
+
static ueCaseMinWidth = new Urlbuilder(PATH_E2E_DATE_PICKER, 'min-width');
|
|
11
|
+
|
|
12
|
+
static focusCurrentDateURL = new Urlbuilder(PATH_END_OF_LIFE_DATE_PICKER, 'focus-current-date');
|
|
13
|
+
|
|
14
|
+
static clean = new Urlbuilder(PATH_END_OF_LIFE_DATE_PICKER, 'clean');
|
|
15
|
+
|
|
16
|
+
static basic = new Urlbuilder(PATH_END_OF_LIFE_DATE_PICKER, 'basic');
|
|
17
|
+
|
|
18
|
+
static initialDates = new Urlbuilder(PATH_END_OF_LIFE_DATE_PICKER, 'initial-dates');
|
|
19
|
+
|
|
20
|
+
static async getDatePickerBtn() {
|
|
21
|
+
return $('[data-testid="btn-date-picker"]');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
static async getDatePickerInput() {
|
|
25
|
+
return $('[data-testid="datepicker-input"]');
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static async getCalendar() {
|
|
29
|
+
return $('[data-testid="calendar-wrapper"]');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static async getDatePickerDay(day) {
|
|
33
|
+
return $$(`[data-testid="datepicker-day-${day}"]`)[1];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
static async getCurrentMonthPickerDay(day) {
|
|
37
|
+
return $(
|
|
38
|
+
// eslint-disable-next-line max-len
|
|
39
|
+
`//div[@data-visible="true"]//div[@data-testid="datepicker-day-${day}"]/parent::td[not(contains(@class, "CalendarDay__outside"))]`,
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static async getMonth() {
|
|
44
|
+
return $('[data-testid="month"]');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
static async getDay() {
|
|
48
|
+
return $('[data-testid="day"]');
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static async getYear() {
|
|
52
|
+
return $('[data-testid="year"]');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static async getClearBtn() {
|
|
56
|
+
return $('span*=Clear');
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
static async getNewDate() {
|
|
60
|
+
return $('span*=new Date 2011-11-11');
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
static async getCurrentDay() {
|
|
64
|
+
return $('//td[contains(@class,"today")]/div');
|
|
65
|
+
// return $$('td.CalendarDay__today div')[0];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
static async getMonthPrevBtn() {
|
|
69
|
+
return $$('[data-testid="date-picker-nav"]')[0];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
static async getMonthNextBtn() {
|
|
73
|
+
return $$('[data-testid="date-picker-nav"]')[1];
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
static async getYearPrevBtn() {
|
|
77
|
+
return $$('[data-testid="date-picker-prev-year-arrow"]')[1];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static async getYearNextBtn() {
|
|
81
|
+
return $$('[data-testid="date-picker-next-year-arrow"]')[1];
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
static async getDatePickerHeader() {
|
|
85
|
+
return $$('[data-testid="date-picker-header"]')[1];
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static async getWidthInput() {
|
|
89
|
+
return $('[data-testid="width-input"]');
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
static async getInputContainer() {
|
|
93
|
+
return $('[data-testid="input-container"]');
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
static async getBrowsersDay() {
|
|
97
|
+
return browser.execute(() => new Date().getDate());
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Snapshots
|
|
101
|
+
static snapshotPath(example = 'dropdown-multi-pill') {
|
|
102
|
+
return PageObject.getSnapshotPathBuilder('DSDatePicker', example, 'ds-datepicker');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import DSDateRangePickerCO from './DSDateRangePickerCO';
|
|
2
|
+
|
|
3
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
4
|
+
describe('PUI-4154 - DSDateRangePicker, Required dates', () => {
|
|
5
|
+
beforeEach(async () => {
|
|
6
|
+
const errorOnGo = await DSDateRangePickerCO.requiredUrl.go();
|
|
7
|
+
if (errorOnGo) throw errorOnGo;
|
|
8
|
+
});
|
|
9
|
+
it('should display red dot beside fields labels', async () => {
|
|
10
|
+
const reqDotForm = await DSDateRangePickerCO.getReqDotFrom();
|
|
11
|
+
const requiereColor = await DSDateRangePickerCO.getRequiredColor('From');
|
|
12
|
+
await expect(reqDotForm).toBeDisplayed();
|
|
13
|
+
await expect(requiereColor).toEqual(['#c64252', '#c64252']);
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
describe('PUI-3810 - DSDateRangePicker, blocked days', () => {
|
|
17
|
+
beforeEach(async () => {
|
|
18
|
+
const errorOnGo = await DSDateRangePickerCO.basicUrl.go();
|
|
19
|
+
if (errorOnGo) throw errorOnGo;
|
|
20
|
+
});
|
|
21
|
+
it('should not be clickable blocked day', async () => {
|
|
22
|
+
await (await DSDateRangePickerCO.getPickerBtn()).click();
|
|
23
|
+
const disabledDate = await DSDateRangePickerCO.getDisabledDate(0);
|
|
24
|
+
await expect(disabledDate).not.toBeClickable();
|
|
25
|
+
});
|
|
26
|
+
it('should display red border in input field', async () => {
|
|
27
|
+
const input = await DSDateRangePickerCO.getInputField(0);
|
|
28
|
+
await input.click();
|
|
29
|
+
await DSDateRangePickerCO.triggerBackspace(8);
|
|
30
|
+
await input.setValue('10/18/2020');
|
|
31
|
+
await (await DSDateRangePickerCO.getPickerBtn()).click();
|
|
32
|
+
await browser.pause(1000);
|
|
33
|
+
await (await DSDateRangePickerCO.getBorderError()).waitForDisplayed();
|
|
34
|
+
const hasErrorSt = await DSDateRangePickerCO.hasErrorState(input);
|
|
35
|
+
await expect(hasErrorSt).toEqual(true);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe('PUI-4600 - DSDateRangePicker, basic functional', () => {
|
|
39
|
+
beforeEach(async () => {
|
|
40
|
+
const errorOnGo = await DSDateRangePickerCO.basicUrl.go();
|
|
41
|
+
if (errorOnGo) throw errorOnGo;
|
|
42
|
+
});
|
|
43
|
+
it('should be possible set start date', async () => {
|
|
44
|
+
const fromInput = await DSDateRangePickerCO.getInputField(0);
|
|
45
|
+
const startDate = '01/01/3000';
|
|
46
|
+
await fromInput.click();
|
|
47
|
+
await DSDateRangePickerCO.triggerBackspace(8);
|
|
48
|
+
await fromInput.setValue(startDate);
|
|
49
|
+
await (await DSDateRangePickerCO.getPickerBtn()).click();
|
|
50
|
+
await expect(fromInput).toHaveValueContaining(startDate);
|
|
51
|
+
await (await DSDateRangePickerCO.getDay(2)).click();
|
|
52
|
+
await (await DSDateRangePickerCO.getDay(4)).click();
|
|
53
|
+
await expect(fromInput).not.toHaveValueContaining(startDate);
|
|
54
|
+
});
|
|
55
|
+
it('should be possible set end date', async () => {
|
|
56
|
+
const toInput = await DSDateRangePickerCO.getInputField(0);
|
|
57
|
+
const endDate = '01/01/3000';
|
|
58
|
+
await toInput.click();
|
|
59
|
+
await DSDateRangePickerCO.triggerBackspace(8);
|
|
60
|
+
await toInput.setValue(endDate);
|
|
61
|
+
await (await DSDateRangePickerCO.getPickerBtn()).click();
|
|
62
|
+
await expect(toInput).toHaveValueContaining(endDate);
|
|
63
|
+
await (await DSDateRangePickerCO.getDay(2)).click();
|
|
64
|
+
await (await DSDateRangePickerCO.getPickerBtn()).click();
|
|
65
|
+
await (await DSDateRangePickerCO.getDay(4)).click();
|
|
66
|
+
await expect(toInput).not.toHaveValueContaining(endDate);
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
describe('PUI-6141 - DSDateRangePicker, Opening the picker after an error state - Manual Input', () => {
|
|
70
|
+
before(async () => {
|
|
71
|
+
const errorOnGo = await DSDateRangePickerCO.basicUrl.go();
|
|
72
|
+
if (errorOnGo) throw errorOnGo;
|
|
73
|
+
});
|
|
74
|
+
it('should open the picker when the dates are correct', async () => {
|
|
75
|
+
const startDateInput = await DSDateRangePickerCO.getInputField(0);
|
|
76
|
+
const endDateInput = await DSDateRangePickerCO.getInputField(1);
|
|
77
|
+
await startDateInput.setValue('04/16/3021');
|
|
78
|
+
await endDateInput.setValue('04/16/3021');
|
|
79
|
+
await (await DSDateRangePickerCO.getPickerBtn()).click();
|
|
80
|
+
const calendar = await DSDateRangePickerCO.getDateRangePickerController();
|
|
81
|
+
await expect(calendar).toBeDisplayedInViewport();
|
|
82
|
+
});
|
|
83
|
+
it('should display an error state on the start date input', async () => {
|
|
84
|
+
await DSDateRangePickerCO.blur();
|
|
85
|
+
const startDateInput = await DSDateRangePickerCO.getInputField(0);
|
|
86
|
+
await startDateInput.click();
|
|
87
|
+
await DSDateRangePickerCO.triggerBackspace((await startDateInput.getValue()).length);
|
|
88
|
+
await startDateInput.setValue('04/17/2021');
|
|
89
|
+
await DSDateRangePickerCO.blur();
|
|
90
|
+
await browser.pause(500);
|
|
91
|
+
const hasErrorSt = await DSDateRangePickerCO.hasErrorState(startDateInput);
|
|
92
|
+
await expect(hasErrorSt).toBe(true);
|
|
93
|
+
});
|
|
94
|
+
it('should not open the picker', async () => {
|
|
95
|
+
await (await DSDateRangePickerCO.getPickerBtn()).click();
|
|
96
|
+
const isOpen = await DSDateRangePickerCO.isPickerOpen();
|
|
97
|
+
await expect(isOpen).toBe(false);
|
|
98
|
+
});
|
|
99
|
+
it('should open the picker after there is no longer an error state', async () => {
|
|
100
|
+
const endDateInput = await DSDateRangePickerCO.getInputField(1);
|
|
101
|
+
await endDateInput.click();
|
|
102
|
+
await DSDateRangePickerCO.triggerBackspace(endDateInput.getValue().length);
|
|
103
|
+
await endDateInput.setValue('04/18/3021');
|
|
104
|
+
await (await DSDateRangePickerCO.getPickerBtn()).click();
|
|
105
|
+
const isOpen = await DSDateRangePickerCO.isPickerOpen();
|
|
106
|
+
await expect(isOpen).toBe(true);
|
|
107
|
+
});
|
|
108
|
+
it('should not display an error state on the start date input', async () => {
|
|
109
|
+
const startDateInput = await DSDateRangePickerCO.getInputField(0);
|
|
110
|
+
const hasErrorSt = await DSDateRangePickerCO.hasErrorState(startDateInput);
|
|
111
|
+
await expect(hasErrorSt).toBe(false);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import DSDateRangePickerCO from './DSDateRangePickerCO';
|
|
2
|
+
|
|
3
|
+
if (!browser.capabilities['ice:options'].isPhone && !browser.capabilities['ice:options'].isTablet) {
|
|
4
|
+
describe('PUI-5353 - DSDateRangePicker - calendar visual test', () => {
|
|
5
|
+
before(async () => {
|
|
6
|
+
const errorOnGo = await DSDateRangePickerCO.fixedCalendar.go();
|
|
7
|
+
if (errorOnGo) throw errorOnGo;
|
|
8
|
+
});
|
|
9
|
+
it('should display calendar with selected range', async () => {
|
|
10
|
+
const snapshot = await browser.checkSnapshot(DSDateRangePickerCO.snapshotPath('date-range-calendar'));
|
|
11
|
+
await expect(snapshot).toEqual(0);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { Key } from 'webdriverio';
|
|
2
|
+
import { PATH_END_OF_LIFE_DATE_RANGE_PICKER, PATH_E2E_DATE_RANGE_PICKER } from '../../environments/storybook/paths';
|
|
3
|
+
import { PageObject, Urlbuilder } from '../helpers';
|
|
4
|
+
|
|
5
|
+
export const knobs = {
|
|
6
|
+
startDateRequired: 'knob-startDateRequired',
|
|
7
|
+
endDateRequired: 'knob-endDateRequired',
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export default class DSDateRangePickerCO extends PageObject {
|
|
11
|
+
static basicUrl = new Urlbuilder(PATH_END_OF_LIFE_DATE_RANGE_PICKER, 'basic');
|
|
12
|
+
|
|
13
|
+
static requiredUrl = new Urlbuilder(PATH_END_OF_LIFE_DATE_RANGE_PICKER, 'required');
|
|
14
|
+
|
|
15
|
+
static defaultUrl = new Urlbuilder(PATH_END_OF_LIFE_DATE_RANGE_PICKER, 'default');
|
|
16
|
+
|
|
17
|
+
static fixedCalendar = new Urlbuilder(PATH_E2E_DATE_RANGE_PICKER, 'day-range-calendar-fixed-dates');
|
|
18
|
+
|
|
19
|
+
static async getReqDotFrom() {
|
|
20
|
+
return $('label*=From').$('span*=●');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static async getReqDotTo() {
|
|
24
|
+
return $('label*=To').$('span*=●');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static async getDisabledDate(index) {
|
|
28
|
+
return $$('//td[contains(@aria-label, "Not")]//div[@data-testid="datepicker-day"]')[index];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
static async getDay(day) {
|
|
32
|
+
return $$(`[data-testid="datepicker-day-${day}"]`)[2];
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
static async getInputField(index) {
|
|
36
|
+
const field = await $$('[data-testid="ds-input_main-component"]')[index];
|
|
37
|
+
return field;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
static async getPickerBtn() {
|
|
41
|
+
return $('[data-testid=btn-date-picker]');
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
static async getRequiredColor() {
|
|
45
|
+
const colorFrom = await (await this.getReqDotFrom()).getCSSProperty('color');
|
|
46
|
+
const colorTo = await (await this.getReqDotTo()).getCSSProperty('color');
|
|
47
|
+
return [colorFrom.parsed.hex, colorTo.parsed.hex];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static async setDate(element, date) {
|
|
51
|
+
await element.setValue(date.remplace('/', ''));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
static async triggerBackspace(number = 1) {
|
|
55
|
+
for (let x = 0; x < number; x += 1) {
|
|
56
|
+
// eslint-disable-next-line no-await-in-loop
|
|
57
|
+
await browser.keys(Key.Backspace);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
static async getBorderError() {
|
|
62
|
+
return $('.em-ds-form-item--error');
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static async getDateRangePickerController() {
|
|
66
|
+
return $('[data-testid="date-range-picker-controller"]');
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
static async isPickerOpen() {
|
|
70
|
+
const isOpen = await (await this.getDateRangePickerController()).isDisplayedInViewport();
|
|
71
|
+
return isOpen;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
static async blur() {
|
|
75
|
+
await $('body').click();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
static async hasErrorState(element) {
|
|
79
|
+
const bottomColor = await element.getCSSProperty('border-bottom-color');
|
|
80
|
+
const topColor = await element.getCSSProperty('border-top-color');
|
|
81
|
+
const leftColor = await element.getCSSProperty('border-left-color');
|
|
82
|
+
const rightColor = await element.getCSSProperty('border-right-color');
|
|
83
|
+
const borderColor = '#c64252';
|
|
84
|
+
if (
|
|
85
|
+
bottomColor.parsed.hex === borderColor &&
|
|
86
|
+
topColor.parsed.hex === borderColor &&
|
|
87
|
+
leftColor.parsed.hex === borderColor &&
|
|
88
|
+
rightColor.parsed.hex === borderColor
|
|
89
|
+
) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Snapshots
|
|
96
|
+
static snapshotPath(example = 'dropdown-multi-pill') {
|
|
97
|
+
return PageObject.getSnapshotPathBuilder('DSDatePicker', example, 'ds-datepicker');
|
|
98
|
+
}
|
|
99
|
+
}
|