@sapudex/web-components 2.59.0 → 2.61.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/cypress/specs/Carousel.cy.tsx +46 -0
- package/cypress/specs/SecondaryNavigationDesktop.cy.tsx +52 -3
- package/cypress/specs/SelectBox.cy.tsx +390 -252
- package/cypress/specs/SideNavigation.cy.tsx +509 -0
- package/cypress/specs/Table.cy.tsx +90 -0
- package/cypress/support/component-imports.instrumented.ts +6 -0
- package/cypress/support/component-imports.src.ts +6 -0
- package/dist/Carousel.d.ts +1 -0
- package/dist/Carousel.js +16 -1
- package/dist/Carousel.js.map +1 -1
- package/dist/ListGroupHeaderBase.js +9 -0
- package/dist/ListGroupHeaderBase.js.map +1 -1
- package/dist/ListGroupHeaderTemplate.js +15 -1
- package/dist/ListGroupHeaderTemplate.js.map +1 -1
- package/dist/MastheadCountrySelectorTemplate.js +1 -1
- package/dist/MastheadCountrySelectorTemplate.js.map +1 -1
- package/dist/Pagination.d.ts +0 -1
- package/dist/Pagination.js +2 -2
- package/dist/Pagination.js.map +1 -1
- package/dist/SearchableListBaseTemplate.js +0 -1
- package/dist/SearchableListBaseTemplate.js.map +1 -1
- package/dist/SecondaryNavigation.d.ts +2 -1
- package/dist/SecondaryNavigation.js.map +1 -1
- package/dist/SecondaryNavigationItem.js +12 -6
- package/dist/SecondaryNavigationItem.js.map +1 -1
- package/dist/SecondaryNavigationTemplate.js +1 -2
- package/dist/SecondaryNavigationTemplate.js.map +1 -1
- package/dist/SelectBase.d.ts +7 -2
- package/dist/SelectBase.js +27 -39
- package/dist/SelectBase.js.map +1 -1
- package/dist/SideNavigation.d.ts +23 -0
- package/dist/SideNavigation.js +39 -0
- package/dist/SideNavigation.js.map +1 -1
- package/dist/SideNavigationItem.d.ts +10 -0
- package/dist/SideNavigationItem.js +67 -0
- package/dist/SideNavigationItem.js.map +1 -1
- package/dist/SideNavigationMobileTemplate.js +1 -1
- package/dist/SideNavigationMobileTemplate.js.map +1 -1
- package/dist/SideNavigationSubItem.d.ts +23 -0
- package/dist/SideNavigationSubItem.js +103 -0
- package/dist/SideNavigationSubItem.js.map +1 -1
- package/dist/SideNavigationSubItemTemplate.d.ts +2 -0
- package/dist/SideNavigationSubItemTemplate.js +10 -0
- package/dist/SideNavigationSubItemTemplate.js.map +1 -0
- package/dist/Table.js +1 -1
- package/dist/Table.js.map +1 -1
- package/dist/TableCell.d.ts +8 -2
- package/dist/TableCell.js +13 -11
- package/dist/TableCell.js.map +1 -1
- package/dist/TableCellBase.d.ts +2 -1
- package/dist/TableCellBase.js +9 -0
- package/dist/TableCellBase.js.map +1 -1
- package/dist/TableHeaderCell.d.ts +0 -1
- package/dist/TableHeaderCell.js +0 -4
- package/dist/TableHeaderCell.js.map +1 -1
- package/dist/TableRow.d.ts +10 -0
- package/dist/TableRow.js +23 -0
- package/dist/TableRow.js.map +1 -1
- package/dist/UploadItem.js +3 -4
- package/dist/UploadItem.js.map +1 -1
- package/dist/assets/{InputSuggestions-CloTVyrf.js → InputSuggestions-1OnUn6pM.js} +1 -1
- package/dist/assets/{ListItemStandardExpandableTextTemplate-DpquSMb2.js → ListItemStandardExpandableTextTemplate-CoBAMp_v.js} +1 -1
- package/dist/assets/{bundle.esm-Cyz8a5IX.js → bundle.esm-BqaVWFKf.js} +233 -233
- package/dist/css/themes/AccordionSpotlight.css +1 -1
- package/dist/css/themes/Contact.css +1 -1
- package/dist/css/themes/EventRibbon.css +1 -1
- package/dist/css/themes/Feed.css +1 -1
- package/dist/css/themes/FeedItem.css +1 -1
- package/dist/css/themes/HeroBanner.css +1 -1
- package/dist/css/themes/ImageGridCloud.css +1 -1
- package/dist/css/themes/ImageGridTicker.css +1 -1
- package/dist/css/themes/ImageGridTickerItem.css +1 -1
- package/dist/css/themes/LinkList.css +1 -1
- package/dist/css/themes/ListGroupHeader.css +1 -1
- package/dist/css/themes/MastheadCountrySelector.css +1 -1
- package/dist/css/themes/MastheadItem.css +1 -1
- package/dist/css/themes/MastheadMenu.css +1 -1
- package/dist/css/themes/MastheadMenuItem.css +1 -1
- package/dist/css/themes/MastheadMobileMenu.css +1 -1
- package/dist/css/themes/MastheadProfileMenu.css +1 -1
- package/dist/css/themes/MastheadShell.css +1 -1
- package/dist/css/themes/MessageStrip.css +1 -1
- package/dist/css/themes/Modal.css +1 -1
- package/dist/css/themes/Pagination.css +1 -1
- package/dist/css/themes/PromoTile.css +1 -1
- package/dist/css/themes/Quote.css +1 -1
- package/dist/css/themes/Review.css +1 -1
- package/dist/css/themes/ReviewItem.css +1 -1
- package/dist/css/themes/SecondaryNavigation.css +1 -1
- package/dist/css/themes/SecondaryNavigationItem.css +1 -1
- package/dist/css/themes/SelectBase.css +1 -1
- package/dist/css/themes/SideNavigation.css +1 -1
- package/dist/css/themes/SideNavigationItem.css +1 -1
- package/dist/css/themes/SideNavigationMobile.css +1 -1
- package/dist/css/themes/SideNavigationMobileDropdown.css +1 -1
- package/dist/css/themes/SideNavigationSubItem.css +1 -1
- package/dist/css/themes/TabNavigation.css +1 -1
- package/dist/css/themes/Table.css +1 -1
- package/dist/css/themes/TableCellBase.css +1 -1
- package/dist/css/themes/Upload.css +1 -1
- package/dist/css/themes/UploadItem.css +1 -1
- package/dist/custom-elements-internal.json +155 -12
- package/dist/custom-elements.json +144 -19
- package/dist/generated/themes/AccordionSpotlight.css.d.ts +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.js +1 -1
- package/dist/generated/themes/AccordionSpotlight.css.js.map +1 -1
- package/dist/generated/themes/Contact.css.d.ts +1 -1
- package/dist/generated/themes/Contact.css.js +1 -1
- package/dist/generated/themes/Contact.css.js.map +1 -1
- package/dist/generated/themes/EventRibbon.css.d.ts +1 -1
- package/dist/generated/themes/EventRibbon.css.js +1 -1
- package/dist/generated/themes/EventRibbon.css.js.map +1 -1
- package/dist/generated/themes/Feed.css.d.ts +1 -1
- package/dist/generated/themes/Feed.css.js +1 -1
- package/dist/generated/themes/Feed.css.js.map +1 -1
- package/dist/generated/themes/FeedItem.css.d.ts +1 -1
- package/dist/generated/themes/FeedItem.css.js +1 -1
- package/dist/generated/themes/FeedItem.css.js.map +1 -1
- package/dist/generated/themes/HeroBanner.css.d.ts +1 -1
- package/dist/generated/themes/HeroBanner.css.js +1 -1
- package/dist/generated/themes/HeroBanner.css.js.map +1 -1
- package/dist/generated/themes/ImageGridCloud.css.d.ts +1 -1
- package/dist/generated/themes/ImageGridCloud.css.js +1 -1
- package/dist/generated/themes/ImageGridCloud.css.js.map +1 -1
- package/dist/generated/themes/ImageGridTicker.css.d.ts +1 -1
- package/dist/generated/themes/ImageGridTicker.css.js +1 -1
- package/dist/generated/themes/ImageGridTicker.css.js.map +1 -1
- package/dist/generated/themes/ImageGridTickerItem.css.d.ts +1 -1
- package/dist/generated/themes/ImageGridTickerItem.css.js +1 -1
- package/dist/generated/themes/ImageGridTickerItem.css.js.map +1 -1
- package/dist/generated/themes/LinkList.css.d.ts +1 -1
- package/dist/generated/themes/LinkList.css.js +1 -1
- package/dist/generated/themes/LinkList.css.js.map +1 -1
- package/dist/generated/themes/ListGroupHeader.css.d.ts +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js +1 -1
- package/dist/generated/themes/ListGroupHeader.css.js.map +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.d.ts +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js +1 -1
- package/dist/generated/themes/MastheadCountrySelector.css.js.map +1 -1
- package/dist/generated/themes/MastheadItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadItem.css.js +1 -1
- package/dist/generated/themes/MastheadItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.d.ts +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js +1 -1
- package/dist/generated/themes/MastheadMenuItem.css.js.map +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadMobileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.d.ts +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js +1 -1
- package/dist/generated/themes/MastheadProfileMenu.css.js.map +1 -1
- package/dist/generated/themes/MastheadShell.css.d.ts +1 -1
- package/dist/generated/themes/MastheadShell.css.js +1 -1
- package/dist/generated/themes/MastheadShell.css.js.map +1 -1
- package/dist/generated/themes/MessageStrip.css.d.ts +1 -1
- package/dist/generated/themes/MessageStrip.css.js +1 -1
- package/dist/generated/themes/MessageStrip.css.js.map +1 -1
- package/dist/generated/themes/Modal.css.d.ts +1 -1
- package/dist/generated/themes/Modal.css.js +1 -1
- package/dist/generated/themes/Modal.css.js.map +1 -1
- package/dist/generated/themes/Pagination.css.d.ts +1 -1
- package/dist/generated/themes/Pagination.css.js +1 -1
- package/dist/generated/themes/Pagination.css.js.map +1 -1
- package/dist/generated/themes/PromoTile.css.d.ts +1 -1
- package/dist/generated/themes/PromoTile.css.js +1 -1
- package/dist/generated/themes/PromoTile.css.js.map +1 -1
- package/dist/generated/themes/Quote.css.d.ts +1 -1
- package/dist/generated/themes/Quote.css.js +1 -1
- package/dist/generated/themes/Quote.css.js.map +1 -1
- package/dist/generated/themes/Review.css.d.ts +1 -1
- package/dist/generated/themes/Review.css.js +1 -1
- package/dist/generated/themes/Review.css.js.map +1 -1
- package/dist/generated/themes/ReviewItem.css.d.ts +1 -1
- package/dist/generated/themes/ReviewItem.css.js +1 -1
- package/dist/generated/themes/ReviewItem.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.d.ts +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigation.css.js.map +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.d.ts +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js +1 -1
- package/dist/generated/themes/SecondaryNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SelectBase.css.d.ts +1 -1
- package/dist/generated/themes/SelectBase.css.js +1 -1
- package/dist/generated/themes/SelectBase.css.js.map +1 -1
- package/dist/generated/themes/SideNavigation.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigation.css.js +1 -1
- package/dist/generated/themes/SideNavigation.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationItem.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationMobile.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationMobile.css.js +1 -1
- package/dist/generated/themes/SideNavigationMobile.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationMobileDropdown.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js +1 -1
- package/dist/generated/themes/SideNavigationMobileDropdown.css.js.map +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.d.ts +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js +1 -1
- package/dist/generated/themes/SideNavigationSubItem.css.js.map +1 -1
- package/dist/generated/themes/TabNavigation.css.d.ts +1 -1
- package/dist/generated/themes/TabNavigation.css.js +1 -1
- package/dist/generated/themes/TabNavigation.css.js.map +1 -1
- package/dist/generated/themes/Table.css.d.ts +1 -1
- package/dist/generated/themes/Table.css.js +1 -1
- package/dist/generated/themes/Table.css.js.map +1 -1
- package/dist/generated/themes/TableCellBase.css.d.ts +1 -1
- package/dist/generated/themes/TableCellBase.css.js +1 -1
- package/dist/generated/themes/TableCellBase.css.js.map +1 -1
- package/dist/generated/themes/Upload.css.d.ts +1 -1
- package/dist/generated/themes/Upload.css.js +1 -1
- package/dist/generated/themes/Upload.css.js.map +1 -1
- package/dist/generated/themes/UploadItem.css.d.ts +1 -1
- package/dist/generated/themes/UploadItem.css.js +1 -1
- package/dist/generated/themes/UploadItem.css.js.map +1 -1
- package/dist/types/Table.d.ts +6 -2
- package/dist/types/Table.js +7 -2
- package/dist/types/Table.js.map +1 -1
- package/dist/vscode.html-custom-data.json +44 -3
- package/dist/web-types.json +80 -6
- package/package.json +1 -1
- package/run-cypress.js +8 -1
- package/src/Carousel.ts +17 -1
- package/src/ListGroupHeaderBase.ts +9 -0
- package/src/ListGroupHeaderTemplate.tsx +15 -3
- package/src/MastheadCountrySelectorTemplate.tsx +3 -2
- package/src/Pagination.ts +2 -3
- package/src/SearchableListBaseTemplate.tsx +0 -1
- package/src/SecondaryNavigation.ts +2 -1
- package/src/SecondaryNavigationItem.ts +14 -6
- package/src/SecondaryNavigationTemplate.tsx +4 -6
- package/src/SelectBase.ts +30 -47
- package/src/SideNavigation.ts +35 -0
- package/src/SideNavigationItem.ts +75 -0
- package/src/SideNavigationMobileTemplate.tsx +2 -1
- package/src/SideNavigationSubItem.ts +117 -1
- package/src/SideNavigationSubItemTemplate.tsx +56 -0
- package/src/Table.ts +1 -2
- package/src/TableCell.ts +9 -12
- package/src/TableCellBase.ts +10 -1
- package/src/TableHeaderCell.ts +0 -5
- package/src/TableRow.ts +20 -0
- package/src/UploadItem.ts +3 -5
- package/src/generated/themes/AccordionSpotlight.css.ts +1 -1
- package/src/generated/themes/Contact.css.ts +1 -1
- package/src/generated/themes/EventRibbon.css.ts +1 -1
- package/src/generated/themes/Feed.css.ts +1 -1
- package/src/generated/themes/FeedItem.css.ts +1 -1
- package/src/generated/themes/HeroBanner.css.ts +1 -1
- package/src/generated/themes/ImageGridCloud.css.ts +1 -1
- package/src/generated/themes/ImageGridTicker.css.ts +1 -1
- package/src/generated/themes/ImageGridTickerItem.css.ts +1 -1
- package/src/generated/themes/LinkList.css.ts +1 -1
- package/src/generated/themes/ListGroupHeader.css.ts +1 -1
- package/src/generated/themes/MastheadCountrySelector.css.ts +1 -1
- package/src/generated/themes/MastheadItem.css.ts +1 -1
- package/src/generated/themes/MastheadMenu.css.ts +1 -1
- package/src/generated/themes/MastheadMenuItem.css.ts +1 -1
- package/src/generated/themes/MastheadMobileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadProfileMenu.css.ts +1 -1
- package/src/generated/themes/MastheadShell.css.ts +1 -1
- package/src/generated/themes/MessageStrip.css.ts +1 -1
- package/src/generated/themes/Modal.css.ts +1 -1
- package/src/generated/themes/Pagination.css.ts +1 -1
- package/src/generated/themes/PromoTile.css.ts +1 -1
- package/src/generated/themes/Quote.css.ts +1 -1
- package/src/generated/themes/Review.css.ts +1 -1
- package/src/generated/themes/ReviewItem.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigation.css.ts +1 -1
- package/src/generated/themes/SecondaryNavigationItem.css.ts +1 -1
- package/src/generated/themes/SelectBase.css.ts +1 -1
- package/src/generated/themes/SideNavigation.css.ts +1 -1
- package/src/generated/themes/SideNavigationItem.css.ts +1 -1
- package/src/generated/themes/SideNavigationMobile.css.ts +1 -1
- package/src/generated/themes/SideNavigationMobileDropdown.css.ts +1 -1
- package/src/generated/themes/SideNavigationSubItem.css.ts +1 -1
- package/src/generated/themes/TabNavigation.css.ts +1 -1
- package/src/generated/themes/Table.css.ts +1 -1
- package/src/generated/themes/TableCellBase.css.ts +1 -1
- package/src/generated/themes/Upload.css.ts +1 -1
- package/src/generated/themes/UploadItem.css.ts +1 -1
- package/src/themes/AccordionSpotlight.css +4 -1
- package/src/themes/Contact.css +1 -1
- package/src/themes/EventRibbon.css +4 -4
- package/src/themes/Feed.css +2 -2
- package/src/themes/FeedItem.css +2 -1
- package/src/themes/HeroBanner.css +3 -3
- package/src/themes/ImageGridCloud.css +1 -1
- package/src/themes/ImageGridTicker.css +1 -1
- package/src/themes/ImageGridTickerItem.css +1 -1
- package/src/themes/LinkList.css +4 -4
- package/src/themes/ListGroupHeader.css +6 -4
- package/src/themes/MastheadCountrySelector.css +1 -1
- package/src/themes/MastheadItem.css +4 -4
- package/src/themes/MastheadMenu.css +1 -1
- package/src/themes/MastheadMenuItem.css +1 -1
- package/src/themes/MastheadMobileMenu.css +2 -2
- package/src/themes/MastheadProfileMenu.css +1 -1
- package/src/themes/MastheadShell.css +4 -4
- package/src/themes/MessageStrip.css +7 -2
- package/src/themes/Modal.css +1 -1
- package/src/themes/Pagination.css +14 -5
- package/src/themes/PromoTile.css +4 -3
- package/src/themes/Quote.css +2 -2
- package/src/themes/Review.css +2 -2
- package/src/themes/ReviewItem.css +2 -2
- package/src/themes/SecondaryNavigation.css +1 -2
- package/src/themes/SecondaryNavigationItem.css +3 -6
- package/src/themes/SelectBase.css +1 -1
- package/src/themes/SideNavigation.css +31 -8
- package/src/themes/SideNavigationItem.css +46 -18
- package/src/themes/SideNavigationMobile.css +6 -7
- package/src/themes/SideNavigationMobileDropdown.css +10 -3
- package/src/themes/SideNavigationSubItem.css +73 -17
- package/src/themes/TabNavigation.css +2 -2
- package/src/themes/Table.css +1 -1
- package/src/themes/TableCellBase.css +8 -0
- package/src/themes/Upload.css +1 -1
- package/src/themes/UploadItem.css +1 -1
- package/src/types/Table.ts +6 -2
|
@@ -128,6 +128,16 @@ const shortComponent = <div style="width: 350px; position:relative;"><UDExSelect
|
|
|
128
128
|
<UDExSelectBoxItem label="Perl"></UDExSelectBoxItem>
|
|
129
129
|
</UDExSelectBox></div>
|
|
130
130
|
|
|
131
|
+
const singleSelectPreselected = <div style="width: 350px; position:relative;"><UDExSelectBox
|
|
132
|
+
id="select-box"
|
|
133
|
+
label="Programming languages">
|
|
134
|
+
<UDExSelectBoxItem label="JavaScript"></UDExSelectBoxItem>
|
|
135
|
+
<UDExSelectBoxItem label="Python"></UDExSelectBoxItem>
|
|
136
|
+
<UDExSelectBoxItem label="Java" selected></UDExSelectBoxItem>
|
|
137
|
+
<UDExSelectBoxItem label="Swift"></UDExSelectBoxItem>
|
|
138
|
+
<UDExSelectBoxItem label="C#"></UDExSelectBoxItem>
|
|
139
|
+
</UDExSelectBox></div>
|
|
140
|
+
|
|
131
141
|
const singleSelectWithRating = <div style="width: 350px; position:relative;"><UDExSelectBox
|
|
132
142
|
id="select-box"
|
|
133
143
|
label="Rating">
|
|
@@ -157,7 +167,7 @@ const selectAll = <div style="width: 350px; position:relative;">
|
|
|
157
167
|
<UDExSelectBoxItem label="Python" supportingText="Used in data analysis"></UDExSelectBoxItem>
|
|
158
168
|
</UDExSelectBoxSelectAll>
|
|
159
169
|
</UDExSelectBox>
|
|
160
|
-
<a id="next-focus" href="#">Next focusable element</a>
|
|
170
|
+
<a id="next-focus" href="#">Next focusable element</a>
|
|
161
171
|
</div>
|
|
162
172
|
|
|
163
173
|
const selectBoxInsideModal = <div style="width: 500px; position:relative;">
|
|
@@ -183,15 +193,15 @@ describe("SelectBox", () => {
|
|
|
183
193
|
it("correct height style is applied", () => {
|
|
184
194
|
cy.mount(fullComponent);
|
|
185
195
|
cy.get("#select-box").shadow()
|
|
186
|
-
|
|
187
|
-
|
|
196
|
+
.find(".udex-text-field__trigger")
|
|
197
|
+
.click();
|
|
188
198
|
|
|
189
199
|
cy.get("#select-box")
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
200
|
+
.shadow()
|
|
201
|
+
.find("ui5-popover")
|
|
202
|
+
.shadow()
|
|
203
|
+
.find(".ui5-popup-content")
|
|
204
|
+
.should("have.css", 'max-height', '400px')
|
|
195
205
|
});
|
|
196
206
|
|
|
197
207
|
it("correct label is applied", () => {
|
|
@@ -205,7 +215,7 @@ describe("SelectBox", () => {
|
|
|
205
215
|
it("correct supporting text is applied", () => {
|
|
206
216
|
cy.mount(fullComponent);
|
|
207
217
|
cy.get("#select-box").shadow().find("udex-status-message").shadow().find(".udex-status-message")
|
|
208
|
-
|
|
218
|
+
.should("have.text", "category lists");
|
|
209
219
|
});
|
|
210
220
|
|
|
211
221
|
it("render the right amount items", () => {
|
|
@@ -228,31 +238,31 @@ describe("SelectBox", () => {
|
|
|
228
238
|
it("checking label and supporting text for the item", () => {
|
|
229
239
|
cy.mount(fullComponent);
|
|
230
240
|
cy.get("#select-box").shadow()
|
|
231
|
-
|
|
232
|
-
|
|
241
|
+
.find(".udex-text-field__trigger")
|
|
242
|
+
.click();
|
|
233
243
|
|
|
234
244
|
cy.get("#select-box").shadow().find('udex-list-item').eq(0).as("firstItem");
|
|
235
245
|
cy.get("@firstItem")
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
246
|
+
.shadow()
|
|
247
|
+
.find(".udex-list__item")
|
|
248
|
+
.should("include.text", "JavaScript");
|
|
239
249
|
|
|
240
250
|
cy.get("@firstItem")
|
|
241
|
-
|
|
242
|
-
|
|
251
|
+
.shadow().find('.udex-list__supporting-text')
|
|
252
|
+
.should("have.text", "Frontend web development");
|
|
243
253
|
});
|
|
244
254
|
|
|
245
255
|
it("checking the custom content for the item", () => {
|
|
246
256
|
cy.mount(fullComponent);
|
|
247
257
|
cy.get("#select-box").shadow()
|
|
248
|
-
|
|
249
|
-
|
|
258
|
+
.find(".udex-text-field__trigger")
|
|
259
|
+
.click();
|
|
250
260
|
|
|
251
261
|
cy.get("#select-box")
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
262
|
+
.shadow()
|
|
263
|
+
.find('udex-list-item').eq(0)
|
|
264
|
+
.find(".custom-content")
|
|
265
|
+
.should("have.text", "Lorem ipsum");
|
|
256
266
|
});
|
|
257
267
|
|
|
258
268
|
it("render the additional text in the item", () => {
|
|
@@ -281,27 +291,27 @@ describe("SelectBox", () => {
|
|
|
281
291
|
cy.mount(fullComponent);
|
|
282
292
|
|
|
283
293
|
cy.get("#select-box").shadow()
|
|
284
|
-
|
|
294
|
+
.find(".udex-text-field__search").as("searchField");
|
|
285
295
|
|
|
286
296
|
cy.get("@searchField").click();
|
|
287
297
|
cy.realType("java");
|
|
288
298
|
|
|
289
299
|
cy.get("#select-box").shadow().find("udex-list-item")
|
|
290
|
-
|
|
300
|
+
.should("have.length", 2);
|
|
291
301
|
|
|
292
302
|
cy.get("#select-box").shadow().find("udex-list-item").eq(0)
|
|
293
|
-
|
|
294
|
-
|
|
303
|
+
.shadow().find(".udex-list__item")
|
|
304
|
+
.should("include.text", "Java");
|
|
295
305
|
});
|
|
296
306
|
|
|
297
307
|
it("test if reset searching value using resetSearch method", () => {
|
|
298
308
|
cy.mount(fullComponent);
|
|
299
309
|
|
|
300
310
|
cy.get("#select-box").shadow()
|
|
301
|
-
|
|
311
|
+
.find(".udex-text-field__search").as("searchField");
|
|
302
312
|
|
|
303
313
|
cy.get("@searchField")
|
|
304
|
-
|
|
314
|
+
.click();
|
|
305
315
|
cy.realType("java");
|
|
306
316
|
|
|
307
317
|
cy.get("#select-box")
|
|
@@ -311,14 +321,14 @@ describe("SelectBox", () => {
|
|
|
311
321
|
})
|
|
312
322
|
|
|
313
323
|
cy.get("@searchField")
|
|
314
|
-
|
|
324
|
+
.should("have.value", "");
|
|
315
325
|
});
|
|
316
326
|
|
|
317
327
|
it("test if close dropdown using close method", () => {
|
|
318
328
|
cy.mount(fullComponent);
|
|
319
329
|
cy.get("#select-box").shadow()
|
|
320
|
-
|
|
321
|
-
|
|
330
|
+
.find(".udex-text-field__trigger")
|
|
331
|
+
.click();
|
|
322
332
|
|
|
323
333
|
cy.get("#select-box")
|
|
324
334
|
.then($el => {
|
|
@@ -327,123 +337,119 @@ describe("SelectBox", () => {
|
|
|
327
337
|
})
|
|
328
338
|
|
|
329
339
|
cy.get("#select-box").shadow()
|
|
330
|
-
|
|
331
|
-
|
|
340
|
+
.find(".udex-select-box__dropdown")
|
|
341
|
+
.should("not.have.attr","open");
|
|
332
342
|
});
|
|
333
343
|
|
|
334
344
|
it("should show empty msg if the search does not produce results", () => {
|
|
335
345
|
cy.mount(fullComponent);
|
|
336
346
|
|
|
337
347
|
cy.get("#select-box").shadow()
|
|
338
|
-
|
|
339
|
-
|
|
348
|
+
.find(".udex-text-field__search")
|
|
349
|
+
.click();
|
|
340
350
|
cy.realType("x");
|
|
341
351
|
|
|
342
352
|
cy.get("#select-box").shadow()
|
|
343
|
-
|
|
344
|
-
|
|
353
|
+
.find(".udex-no-result")
|
|
354
|
+
.should("include.text", "No matches found.");
|
|
345
355
|
});
|
|
346
356
|
|
|
347
357
|
it("show tooltip in display only mode", () => {
|
|
348
358
|
cy.mount(displayOnly);
|
|
349
359
|
|
|
350
360
|
cy.get("#select-box").shadow()
|
|
351
|
-
|
|
361
|
+
.find(".udex-tag-group").shadow().as("tagGroup");
|
|
352
362
|
|
|
353
363
|
// Wait for the resize handler to fire and render the tooltip before clicking.
|
|
354
364
|
cy.get("@tagGroup").find("udex-tooltip").should("exist");
|
|
355
365
|
|
|
356
366
|
cy.get("@tagGroup")
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
367
|
+
.find(".udex-tag-group__tokenizer").shadow()
|
|
368
|
+
.find(".ui5-tokenizer-more-text")
|
|
369
|
+
.click();
|
|
360
370
|
|
|
361
371
|
cy.get("@tagGroup")
|
|
362
|
-
|
|
363
|
-
|
|
372
|
+
.find("udex-tooltip")
|
|
373
|
+
.should("have.attr", "open");
|
|
364
374
|
});
|
|
365
375
|
|
|
366
376
|
it("dropdown opens on pressing the `ArrowDown` key on the search", () => {
|
|
367
377
|
cy.mount(fullComponent);
|
|
368
378
|
cy.get("#select-box").shadow()
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
379
|
+
.find(".udex-text-field__search")
|
|
380
|
+
.click()
|
|
381
|
+
.realPress("ArrowDown");
|
|
372
382
|
|
|
373
383
|
cy.get("#select-box").shadow()
|
|
374
|
-
|
|
375
|
-
|
|
384
|
+
.find(".udex-select-box__dropdown")
|
|
385
|
+
.should("have.attr","open");
|
|
376
386
|
});
|
|
377
387
|
|
|
378
388
|
it("dropdown closes on pressing the `Escape`", () => {
|
|
379
389
|
cy.mount(fullComponent);
|
|
380
390
|
cy.get("#select-box").shadow()
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
391
|
+
.find(".udex-text-field__search")
|
|
392
|
+
.click()
|
|
393
|
+
.realPress("ArrowDown");
|
|
384
394
|
|
|
385
395
|
cy.get("#select-box").shadow()
|
|
386
|
-
|
|
387
|
-
|
|
396
|
+
.find(".udex-text-field__search")
|
|
397
|
+
.realPress("Escape");
|
|
388
398
|
|
|
389
399
|
cy.get("#select-box").shadow()
|
|
390
|
-
|
|
391
|
-
|
|
400
|
+
.find(".udex-select-box__dropdown")
|
|
401
|
+
.should("not.have.attr","open");
|
|
392
402
|
});
|
|
393
403
|
|
|
394
404
|
it("sets option label when Arrow Down key press on the list items", () => {
|
|
395
405
|
cy.mount(shortComponent);
|
|
396
|
-
cy.get("#select-box").shadow()
|
|
397
|
-
|
|
398
|
-
.
|
|
399
|
-
|
|
400
|
-
.realPress("ArrowDown");
|
|
406
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
407
|
+
// Opening focuses the first item (JavaScript); wait for it before navigating.
|
|
408
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
|
|
409
|
+
.should("have.attr", "_active-descendant");
|
|
410
|
+
cy.realPress("ArrowDown");
|
|
401
411
|
|
|
402
412
|
cy.get("#select-box").shadow()
|
|
403
|
-
|
|
404
|
-
|
|
413
|
+
.find(".udex-text-field__single-label")
|
|
414
|
+
.should("have.text", "Python");
|
|
405
415
|
});
|
|
406
416
|
|
|
407
417
|
it("sets option label when Arrow Up key press on the list items", () => {
|
|
408
418
|
cy.mount(shortComponent);
|
|
409
|
-
cy.get("#select-box").shadow()
|
|
410
|
-
.find("
|
|
411
|
-
|
|
412
|
-
.realPress("ArrowDown")
|
|
413
|
-
.realPress("
|
|
414
|
-
.realPress("ArrowUp");
|
|
419
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
420
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
|
|
421
|
+
.should("have.attr", "_active-descendant");
|
|
422
|
+
cy.realPress("ArrowDown");
|
|
423
|
+
cy.realPress("ArrowUp");
|
|
415
424
|
|
|
416
425
|
cy.get("#select-box").shadow()
|
|
417
|
-
|
|
418
|
-
|
|
426
|
+
.find(".udex-text-field__single-label")
|
|
427
|
+
.should("have.text", "JavaScript");
|
|
419
428
|
});
|
|
420
429
|
|
|
421
430
|
it("sets option label when End key press on the list items", () => {
|
|
422
431
|
cy.mount(shortComponent);
|
|
423
|
-
cy.get("#select-box").shadow()
|
|
424
|
-
.find("
|
|
425
|
-
|
|
426
|
-
.realPress("
|
|
427
|
-
.realPress("ArrowDown")
|
|
428
|
-
.realPress("End");
|
|
432
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
433
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
|
|
434
|
+
.should("have.attr", "_active-descendant");
|
|
435
|
+
cy.realPress("End");
|
|
429
436
|
|
|
430
437
|
cy.get("#select-box").shadow()
|
|
431
|
-
|
|
432
|
-
|
|
438
|
+
.find(".udex-text-field__single-label")
|
|
439
|
+
.should("have.text", "Perl");
|
|
433
440
|
});
|
|
434
441
|
|
|
435
442
|
it("sets option label when Home key press on the list items", () => {
|
|
436
443
|
cy.mount(shortComponent);
|
|
437
|
-
cy.get("#select-box").shadow()
|
|
438
|
-
.find("
|
|
439
|
-
|
|
440
|
-
.realPress("ArrowDown")
|
|
441
|
-
.realPress("
|
|
442
|
-
.realPress("Home");
|
|
444
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
445
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
|
|
446
|
+
.should("have.attr", "_active-descendant");
|
|
447
|
+
cy.realPress("ArrowDown");
|
|
448
|
+
cy.realPress("Home");
|
|
443
449
|
|
|
444
450
|
cy.get("#select-box").shadow()
|
|
445
|
-
|
|
446
|
-
|
|
451
|
+
.find(".udex-text-field__single-label")
|
|
452
|
+
.should("have.text", "JavaScript");
|
|
447
453
|
});
|
|
448
454
|
|
|
449
455
|
it("SingleSelect mode - after clicking on the item dropdown is closed", () => {
|
|
@@ -454,8 +460,8 @@ describe("SelectBox", () => {
|
|
|
454
460
|
dropdown.should("have.attr","open");
|
|
455
461
|
|
|
456
462
|
cy.get("#select-box").shadow()
|
|
457
|
-
|
|
458
|
-
|
|
463
|
+
.find("udex-list-item").eq(1)
|
|
464
|
+
.click();
|
|
459
465
|
|
|
460
466
|
dropdown.should("not.have.attr","open");
|
|
461
467
|
});
|
|
@@ -465,12 +471,12 @@ describe("SelectBox", () => {
|
|
|
465
471
|
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
466
472
|
|
|
467
473
|
cy.get("#select-box").shadow()
|
|
468
|
-
|
|
474
|
+
.find("udex-list-item").eq(1).as('currentItem')
|
|
469
475
|
|
|
470
476
|
cy.get("@currentItem").click();
|
|
471
477
|
cy.get("@currentItem").shadow()
|
|
472
|
-
|
|
473
|
-
|
|
478
|
+
.find(".udex-list__item")
|
|
479
|
+
.should("have.attr", "data-selected","true")
|
|
474
480
|
});
|
|
475
481
|
|
|
476
482
|
it("SingleSelect mode - value sets on the field after clicking on the item", () => {
|
|
@@ -478,12 +484,12 @@ describe("SelectBox", () => {
|
|
|
478
484
|
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
479
485
|
|
|
480
486
|
cy.get("#select-box").shadow()
|
|
481
|
-
|
|
482
|
-
|
|
487
|
+
.find("udex-list-item").eq(0)
|
|
488
|
+
.click();
|
|
483
489
|
|
|
484
490
|
cy.get("#select-box").shadow()
|
|
485
|
-
|
|
486
|
-
|
|
491
|
+
.find(".udex-text-field__single-label")
|
|
492
|
+
.should("have.text", "JavaScript");
|
|
487
493
|
});
|
|
488
494
|
|
|
489
495
|
it("SingleSelect mode - typing after selecting an item shows typed character in the search field", () => {
|
|
@@ -521,35 +527,146 @@ describe("SelectBox", () => {
|
|
|
521
527
|
.should("have.text", "Python");
|
|
522
528
|
});
|
|
523
529
|
|
|
530
|
+
it("SingleSelect mode - opening the dropdown focuses the selected item", () => {
|
|
531
|
+
cy.mount(singleSelectPreselected);
|
|
532
|
+
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
533
|
+
cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
|
|
534
|
+
|
|
535
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(2)
|
|
536
|
+
.should("have.attr", "_active-descendant");
|
|
537
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
|
|
538
|
+
.should("not.have.attr", "_active-descendant");
|
|
539
|
+
});
|
|
540
|
+
|
|
541
|
+
it("SingleSelect mode - opening the dropdown focuses the first item when nothing is selected", () => {
|
|
542
|
+
cy.mount(shortComponent);
|
|
543
|
+
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
544
|
+
cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
|
|
545
|
+
|
|
546
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
|
|
547
|
+
.should("have.attr", "_active-descendant");
|
|
548
|
+
});
|
|
549
|
+
|
|
550
|
+
it("SingleSelect mode - opening the dropdown with ArrowDown focuses the selected item", () => {
|
|
551
|
+
cy.mount(singleSelectPreselected);
|
|
552
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").focus();
|
|
553
|
+
cy.realPress("ArrowDown");
|
|
554
|
+
|
|
555
|
+
cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
|
|
556
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(2)
|
|
557
|
+
.should("have.attr", "_active-descendant");
|
|
558
|
+
});
|
|
559
|
+
|
|
560
|
+
it("SingleSelect mode - reopening restores focus to the previously selected item", () => {
|
|
561
|
+
cy.mount(shortComponent);
|
|
562
|
+
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
563
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(2).click();
|
|
564
|
+
cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("not.have.attr", "open");
|
|
565
|
+
|
|
566
|
+
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
567
|
+
cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
|
|
568
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(2)
|
|
569
|
+
.should("have.attr", "_active-descendant");
|
|
570
|
+
});
|
|
571
|
+
|
|
524
572
|
it("MultiSelect mode - navigation label is cleared from input after Tab closes the dropdown", () => {
|
|
525
573
|
cy.mount(multiSelect);
|
|
574
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
575
|
+
|
|
576
|
+
// Wait for the dropdown to finish opening with the first item (JavaScript) focused before
|
|
577
|
+
// navigating, otherwise ArrowDown races the open and is consumed by it instead of advancing.
|
|
578
|
+
cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
|
|
579
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
|
|
580
|
+
.should("have.attr", "_active-descendant");
|
|
581
|
+
|
|
582
|
+
// The first item (JavaScript) is focused, so this ArrowDown advances to Python.
|
|
583
|
+
cy.realPress("ArrowDown");
|
|
584
|
+
|
|
526
585
|
cy.get("#select-box").shadow()
|
|
527
|
-
.find(".udex-text-
|
|
528
|
-
.
|
|
529
|
-
|
|
586
|
+
.find(".udex-text-field__single-label")
|
|
587
|
+
.should("have.text", "Python");
|
|
588
|
+
|
|
589
|
+
cy.realPress("Tab");
|
|
530
590
|
|
|
531
591
|
cy.get("#select-box").shadow()
|
|
532
592
|
.find(".udex-text-field__single-label")
|
|
533
|
-
.should("
|
|
593
|
+
.should("not.exist");
|
|
594
|
+
});
|
|
534
595
|
|
|
596
|
+
it("SingleSelect mode - Tab without opening dropdown shows no label in input", () => {
|
|
597
|
+
cy.mount(shortComponent);
|
|
598
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").focus();
|
|
535
599
|
cy.realPress("Tab");
|
|
600
|
+
cy.get("#select-box").shadow()
|
|
601
|
+
.find(".udex-text-field__single-label")
|
|
602
|
+
.should("not.exist");
|
|
603
|
+
});
|
|
536
604
|
|
|
605
|
+
it("SingleSelect mode - Tab without opening dropdown preserves previously selected item in input", () => {
|
|
606
|
+
cy.mount(singleSelectPreselected);
|
|
607
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").focus();
|
|
608
|
+
cy.realPress("Tab");
|
|
609
|
+
cy.get("#select-box").shadow()
|
|
610
|
+
.find(".udex-text-field__single-label")
|
|
611
|
+
.should("have.text", "Java");
|
|
612
|
+
});
|
|
613
|
+
|
|
614
|
+
it("MultiSelect mode - Tab without opening dropdown shows no label in input", () => {
|
|
615
|
+
cy.mount(multiSelect);
|
|
616
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").focus();
|
|
617
|
+
cy.realPress("Tab");
|
|
537
618
|
cy.get("#select-box").shadow()
|
|
538
619
|
.find(".udex-text-field__single-label")
|
|
539
620
|
.should("not.exist");
|
|
540
621
|
});
|
|
541
622
|
|
|
623
|
+
it("MultiSelect mode - opening the dropdown with a mouse click focuses the first item", () => {
|
|
624
|
+
cy.mount(multiSelect);
|
|
625
|
+
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
626
|
+
cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
|
|
627
|
+
|
|
628
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
|
|
629
|
+
.should("have.attr", "_active-descendant");
|
|
630
|
+
});
|
|
631
|
+
|
|
632
|
+
it("MultiSelect mode - opening the dropdown with ArrowDown focuses the first item", () => {
|
|
633
|
+
cy.mount(multiSelect);
|
|
634
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").focus();
|
|
635
|
+
cy.realPress("ArrowDown");
|
|
636
|
+
|
|
637
|
+
cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
|
|
638
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
|
|
639
|
+
.should("have.attr", "_active-descendant");
|
|
640
|
+
});
|
|
641
|
+
|
|
642
|
+
it("MultiSelect mode - selected items do not steal focus from the first item on open", () => {
|
|
643
|
+
cy.mount(multiSelect);
|
|
644
|
+
// Pre-select the third item programmatically.
|
|
645
|
+
cy.get("#select-box").find("udex-select-box-item").eq(2)
|
|
646
|
+
.then($el => {
|
|
647
|
+
($el[0] as any).selected = true;
|
|
648
|
+
});
|
|
649
|
+
|
|
650
|
+
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
651
|
+
cy.get("#select-box").shadow().find(".udex-select-box__dropdown").should("have.attr", "open");
|
|
652
|
+
|
|
653
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(0)
|
|
654
|
+
.should("have.attr", "_active-descendant");
|
|
655
|
+
cy.get("#select-box").shadow().find("[udex-list-item]").eq(2)
|
|
656
|
+
.should("not.have.attr", "_active-descendant");
|
|
657
|
+
});
|
|
658
|
+
|
|
542
659
|
it("MultiSelect mode - after clicking on the item dropdown is opened", () => {
|
|
543
660
|
cy.mount(multiSelect);
|
|
544
661
|
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
545
662
|
|
|
546
663
|
cy.get("#select-box").shadow()
|
|
547
|
-
|
|
548
|
-
|
|
664
|
+
.find("udex-list-item").eq(1)
|
|
665
|
+
.click();
|
|
549
666
|
|
|
550
667
|
cy.get("#select-box").shadow()
|
|
551
|
-
|
|
552
|
-
|
|
668
|
+
.find(".udex-select-box__dropdown")
|
|
669
|
+
.should("have.attr","open");
|
|
553
670
|
});
|
|
554
671
|
|
|
555
672
|
it("MultiSelect mode - rendering tags after clicking on the items", () => {
|
|
@@ -557,16 +674,16 @@ describe("SelectBox", () => {
|
|
|
557
674
|
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
558
675
|
|
|
559
676
|
cy.get("#select-box").shadow()
|
|
560
|
-
|
|
677
|
+
.find("udex-list-item").as("items")
|
|
561
678
|
|
|
562
679
|
cy.get("@items").eq(0).click();
|
|
563
680
|
cy.get("@items").eq(1).click();
|
|
564
681
|
cy.get("@items").eq(2).click();
|
|
565
682
|
|
|
566
683
|
cy.get("#select-box").shadow()
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
684
|
+
.find("udex-tag-group").shadow()
|
|
685
|
+
.find(".udex-tag-group__tag")
|
|
686
|
+
.should("have.length", 3);
|
|
570
687
|
});
|
|
571
688
|
|
|
572
689
|
it("MultiSelect mode - after clicking the delete icon of a tag removes it from the selection", () => {
|
|
@@ -574,22 +691,22 @@ describe("SelectBox", () => {
|
|
|
574
691
|
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
575
692
|
|
|
576
693
|
cy.get("#select-box").shadow()
|
|
577
|
-
|
|
694
|
+
.find("udex-list-item").eq(0).click();
|
|
578
695
|
|
|
579
696
|
cy.get("#select-box").shadow()
|
|
580
|
-
|
|
697
|
+
.find("udex-tag-group").as("group")
|
|
581
698
|
|
|
582
699
|
cy.get("@group")
|
|
583
|
-
|
|
700
|
+
.should("exist")
|
|
584
701
|
|
|
585
702
|
cy.get("#select-box").shadow()
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
703
|
+
.find("udex-tag-group").shadow()
|
|
704
|
+
.find("udex-tag").shadow()
|
|
705
|
+
.find(".udex-tag__icon")
|
|
706
|
+
.click();
|
|
590
707
|
|
|
591
708
|
cy.get("@group")
|
|
592
|
-
|
|
709
|
+
.should("not.exist")
|
|
593
710
|
});
|
|
594
711
|
|
|
595
712
|
it("MultiSelect mode - n more is applied after clicking on the items", () => {
|
|
@@ -597,7 +714,7 @@ describe("SelectBox", () => {
|
|
|
597
714
|
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
598
715
|
|
|
599
716
|
cy.get("#select-box").shadow()
|
|
600
|
-
|
|
717
|
+
.find("udex-list-item").as("items")
|
|
601
718
|
|
|
602
719
|
cy.get("@items").eq(0).click();
|
|
603
720
|
cy.get("@items").eq(1).click();
|
|
@@ -606,10 +723,10 @@ describe("SelectBox", () => {
|
|
|
606
723
|
cy.get("body").realClick();
|
|
607
724
|
|
|
608
725
|
cy.get("#select-box").shadow()
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
726
|
+
.find("udex-tag-group").shadow()
|
|
727
|
+
.find(".udex-tag-group__tokenizer").shadow()
|
|
728
|
+
.find(".ui5-tokenizer-more-text")
|
|
729
|
+
.should("have.text", "3 more");
|
|
613
730
|
});
|
|
614
731
|
|
|
615
732
|
it("MultiSelect mode - open dropdown after clicking on the more button", () => {
|
|
@@ -617,7 +734,7 @@ describe("SelectBox", () => {
|
|
|
617
734
|
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
618
735
|
|
|
619
736
|
cy.get("#select-box").shadow()
|
|
620
|
-
|
|
737
|
+
.find("udex-list-item").as("items")
|
|
621
738
|
|
|
622
739
|
cy.get("@items").eq(0).click();
|
|
623
740
|
cy.get("@items").eq(1).click();
|
|
@@ -626,14 +743,14 @@ describe("SelectBox", () => {
|
|
|
626
743
|
cy.get("body").realClick();
|
|
627
744
|
|
|
628
745
|
cy.get("#select-box").shadow()
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
746
|
+
.find("udex-tag-group").shadow()
|
|
747
|
+
.find(".udex-tag-group__tokenizer").shadow()
|
|
748
|
+
.find(".ui5-tokenizer-more-text")
|
|
749
|
+
.click();
|
|
633
750
|
|
|
634
751
|
cy.get("#select-box").shadow()
|
|
635
|
-
|
|
636
|
-
|
|
752
|
+
.find(".udex-select-box__dropdown")
|
|
753
|
+
.should("have.attr","open");
|
|
637
754
|
});
|
|
638
755
|
|
|
639
756
|
it("MultiSelect mode - should truncate the tag when it is long and open the dropdown on click", () => {
|
|
@@ -641,17 +758,17 @@ describe("SelectBox", () => {
|
|
|
641
758
|
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
642
759
|
|
|
643
760
|
cy.get("#select-box").shadow()
|
|
644
|
-
|
|
761
|
+
.find("udex-list-item").eq(4).click();
|
|
645
762
|
|
|
646
763
|
cy.get("#select-box").shadow().find(".udex-text-field__trigger").realClick();
|
|
647
764
|
|
|
648
765
|
cy.get("#select-box").shadow()
|
|
649
|
-
|
|
650
|
-
|
|
766
|
+
.find("udex-tag-group").shadow()
|
|
767
|
+
.find("udex-tag").realClick();
|
|
651
768
|
|
|
652
769
|
cy.get("#select-box").shadow()
|
|
653
|
-
|
|
654
|
-
|
|
770
|
+
.find(".udex-truncatable-tag-content")
|
|
771
|
+
.should("have.text", "C# - is a general-purpose high-level programming language supporting multiple paradigms")
|
|
655
772
|
});
|
|
656
773
|
|
|
657
774
|
it("MultiSelect mode - the truncated tag is selected when clicking on", () => {
|
|
@@ -659,11 +776,11 @@ describe("SelectBox", () => {
|
|
|
659
776
|
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
660
777
|
|
|
661
778
|
cy.get("#select-box").shadow()
|
|
662
|
-
|
|
779
|
+
.find("udex-list-item").eq(4).click();
|
|
663
780
|
|
|
664
781
|
cy.get("#select-box").shadow()
|
|
665
|
-
|
|
666
|
-
|
|
782
|
+
.find("udex-tag-group").shadow()
|
|
783
|
+
.find("udex-tag").as("tag")
|
|
667
784
|
|
|
668
785
|
cy.get("@tag").click();
|
|
669
786
|
|
|
@@ -676,30 +793,30 @@ describe("SelectBox", () => {
|
|
|
676
793
|
cy.get("#select-box").shadow().as("select")
|
|
677
794
|
|
|
678
795
|
cy.get("@select")
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
796
|
+
.find("udex-list-group-header").shadow()
|
|
797
|
+
.find("udex-list-item").shadow()
|
|
798
|
+
.find(".udex-list__text-holder > span").eq(0)
|
|
799
|
+
.should("have.text", "Programming Languages");
|
|
683
800
|
|
|
684
801
|
cy.get("@select")
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
802
|
+
.find("udex-list-group-header").shadow()
|
|
803
|
+
.find("udex-list-item").shadow()
|
|
804
|
+
.find(".udex-list__supporting-text")
|
|
805
|
+
.should("have.text", "Digital Builders");
|
|
689
806
|
});
|
|
690
807
|
|
|
691
808
|
it("MultiSelect mode - checks nonInteractive state for the group item header", () => {
|
|
692
809
|
cy.mount(groupHeader);
|
|
693
810
|
cy.get("udex-select-box-group-header")
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
811
|
+
.then($el => {
|
|
812
|
+
const select = $el as any;
|
|
813
|
+
select[0].nonInteractive = true;
|
|
814
|
+
})
|
|
698
815
|
|
|
699
816
|
cy.get("#select-box").shadow()
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
817
|
+
.find("udex-list-group-header").shadow()
|
|
818
|
+
.find(".udex-list__inactive-header")
|
|
819
|
+
.should("exist")
|
|
703
820
|
});
|
|
704
821
|
|
|
705
822
|
it("MultiSelect mode - arrow keys navigate items when group header is nonInteractive", () => {
|
|
@@ -711,9 +828,8 @@ describe("SelectBox", () => {
|
|
|
711
828
|
});
|
|
712
829
|
|
|
713
830
|
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
714
|
-
cy.realPress("ArrowDown");
|
|
715
831
|
|
|
716
|
-
//
|
|
832
|
+
// Opening focuses the first navigable item (the nonInteractive header is skipped).
|
|
717
833
|
cy.get("#select-box").shadow()
|
|
718
834
|
.find("udex-list-item").eq(0)
|
|
719
835
|
.should("have.attr", "_active-descendant");
|
|
@@ -735,10 +851,9 @@ describe("SelectBox", () => {
|
|
|
735
851
|
cy.mount(groupHeaderCollapsible);
|
|
736
852
|
|
|
737
853
|
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
738
|
-
cy.realPress("ArrowDown");
|
|
739
854
|
|
|
740
|
-
//
|
|
741
|
-
// via the _active-descendant attribute
|
|
855
|
+
// Opening focuses the first navigable item — the collapsible group header —
|
|
856
|
+
// marked via the _active-descendant attribute (DOM focus stays on the input).
|
|
742
857
|
cy.get("#select-box").shadow()
|
|
743
858
|
.find("udex-list-group-header")
|
|
744
859
|
.should("have.attr", "_active-descendant");
|
|
@@ -791,10 +906,9 @@ describe("SelectBox", () => {
|
|
|
791
906
|
cy.mount(groupHeaderCollapsible);
|
|
792
907
|
|
|
793
908
|
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
794
|
-
cy.realPress("ArrowDown");
|
|
795
909
|
|
|
796
|
-
//
|
|
797
|
-
//
|
|
910
|
+
// Opening focuses the collapsible group header (the first navigable item),
|
|
911
|
+
// marked via the _active-descendant attribute (DOM focus stays on the input).
|
|
798
912
|
cy.get("#select-box").shadow()
|
|
799
913
|
.find("udex-list-group-header")
|
|
800
914
|
.should("have.attr", "_active-descendant");
|
|
@@ -834,6 +948,30 @@ describe("SelectBox", () => {
|
|
|
834
948
|
cy.wrap($item).should("not.have.attr", "collapsed");
|
|
835
949
|
});
|
|
836
950
|
});
|
|
951
|
+
|
|
952
|
+
// Regression (issue #3576): SiteImprove/axe "Role not inside the required context".
|
|
953
|
+
// In aria-activedescendant mode the group-header HOST is the treeitem; the inner
|
|
954
|
+
// focusable div must NOT also be a treeitem, otherwise it is a second, parent-less
|
|
955
|
+
// treeitem nested inside the host treeitem (aria-required-parent violation).
|
|
956
|
+
it("SingleSelect collapsible group header: treeitem lives on the host, inner div is presentational", () => {
|
|
957
|
+
cy.mount(groupHeaderCollapsibleSingleSelect);
|
|
958
|
+
|
|
959
|
+
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
960
|
+
|
|
961
|
+
// The host carries the treeitem role + expanded state.
|
|
962
|
+
cy.get("#select-box").shadow()
|
|
963
|
+
.find("[udex-list-group-header]")
|
|
964
|
+
.should("have.attr", "role", "treeitem")
|
|
965
|
+
.and("have.attr", "aria-expanded");
|
|
966
|
+
|
|
967
|
+
// The inner focusable div is presentational and does not duplicate the treeitem
|
|
968
|
+
// role or its aria-expanded state.
|
|
969
|
+
cy.get("#select-box").shadow()
|
|
970
|
+
.find("[udex-list-group-header]").shadow()
|
|
971
|
+
.find(".udex-list__group-content")
|
|
972
|
+
.should("have.attr", "role", "presentation")
|
|
973
|
+
.and("not.have.attr", "aria-expanded");
|
|
974
|
+
});
|
|
837
975
|
});
|
|
838
976
|
|
|
839
977
|
// Added: covers the listboxRole getter change in SelectBase — aria-haspopup on the
|
|
@@ -885,21 +1023,21 @@ describe("SelectBox", () => {
|
|
|
885
1023
|
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
886
1024
|
|
|
887
1025
|
cy.get("#select-box").shadow()
|
|
888
|
-
|
|
1026
|
+
.find("udex-list-item").as("items")
|
|
889
1027
|
|
|
890
1028
|
cy.get("@items").eq(0).click();
|
|
891
1029
|
cy.get("@items").eq(1).click();
|
|
892
1030
|
cy.get("@items").eq(2).click();
|
|
893
1031
|
|
|
894
1032
|
cy.get("#select-box").shadow()
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
1033
|
+
.find("udex-tag-group").shadow()
|
|
1034
|
+
.find(".udex-tag-group__tag").eq(1)
|
|
1035
|
+
.click();
|
|
898
1036
|
|
|
899
1037
|
cy.realPress(["Shift", "Tab"]);
|
|
900
1038
|
|
|
901
1039
|
cy.get("#previous-focus")
|
|
902
|
-
|
|
1040
|
+
.should("be.focused");
|
|
903
1041
|
});
|
|
904
1042
|
|
|
905
1043
|
it("focus moves to input search when press Tab on a tag", () => {
|
|
@@ -910,17 +1048,17 @@ describe("SelectBox", () => {
|
|
|
910
1048
|
cy.get("@trigger").click();
|
|
911
1049
|
|
|
912
1050
|
cy.get("@select")
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
1051
|
+
.find("udex-list")
|
|
1052
|
+
.find("udex-list-select-all").shadow()
|
|
1053
|
+
.find(".udex-list__group-header")
|
|
1054
|
+
.click()
|
|
917
1055
|
|
|
918
1056
|
cy.get("@trigger").click();
|
|
919
1057
|
|
|
920
1058
|
cy.get("@select")
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
1059
|
+
.find("udex-tag-group").shadow()
|
|
1060
|
+
.find("udex-tag").eq(0)
|
|
1061
|
+
.click()
|
|
924
1062
|
|
|
925
1063
|
cy.realPress("Tab");
|
|
926
1064
|
|
|
@@ -947,22 +1085,22 @@ describe("SelectBox", () => {
|
|
|
947
1085
|
cy.get("@trigger").click();
|
|
948
1086
|
|
|
949
1087
|
cy.get("@select")
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
1088
|
+
.find("udex-list")
|
|
1089
|
+
.find("udex-list-select-all").shadow()
|
|
1090
|
+
.find(".udex-list__group-header")
|
|
1091
|
+
.click()
|
|
954
1092
|
|
|
955
1093
|
cy.get("@trigger").click();
|
|
956
1094
|
|
|
957
1095
|
cy.get("@select")
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
1096
|
+
.find("udex-tag-group").shadow()
|
|
1097
|
+
.find("udex-tag").eq(0)
|
|
1098
|
+
.click()
|
|
961
1099
|
|
|
962
1100
|
cy.realPress(["Shift", "Tab"]);
|
|
963
1101
|
|
|
964
1102
|
cy.get("#previous-focus")
|
|
965
|
-
|
|
1103
|
+
.should("be.focused");
|
|
966
1104
|
});
|
|
967
1105
|
|
|
968
1106
|
it("focus moves to next interactive element on the page when press Tab on a trigger", () => {
|
|
@@ -985,13 +1123,13 @@ describe("SelectBox", () => {
|
|
|
985
1123
|
cy.get("@trigger").click();
|
|
986
1124
|
|
|
987
1125
|
cy.get("#select-box").shadow()
|
|
988
|
-
|
|
989
|
-
|
|
1126
|
+
.find("udex-list-item").eq(1)
|
|
1127
|
+
.click();
|
|
990
1128
|
|
|
991
1129
|
cy.realPress(["Tab"]);
|
|
992
1130
|
|
|
993
1131
|
cy.get("#next-focus")
|
|
994
|
-
|
|
1132
|
+
.should("be.focused");
|
|
995
1133
|
});
|
|
996
1134
|
|
|
997
1135
|
it("focus moves to input when press Prev Tab on a list item", () => {
|
|
@@ -1019,16 +1157,16 @@ describe("SelectBox", () => {
|
|
|
1019
1157
|
cy.get("@trigger").click();
|
|
1020
1158
|
|
|
1021
1159
|
cy.get("#select-box").shadow()
|
|
1022
|
-
|
|
1023
|
-
|
|
1160
|
+
.find("udex-list-item").eq(1)
|
|
1161
|
+
.click();
|
|
1024
1162
|
|
|
1025
1163
|
cy.realPress("Escape");
|
|
1026
1164
|
|
|
1027
1165
|
cy.get("@select").find(".udex-text-field__search").should("be.focused");
|
|
1028
1166
|
|
|
1029
1167
|
cy.get("@select")
|
|
1030
|
-
|
|
1031
|
-
|
|
1168
|
+
.find(".udex-select-box__dropdown")
|
|
1169
|
+
.should("not.have.attr","open");
|
|
1032
1170
|
});
|
|
1033
1171
|
|
|
1034
1172
|
it("focus() method moves focus to the inner search input", () => {
|
|
@@ -1052,10 +1190,10 @@ describe("SelectBox", () => {
|
|
|
1052
1190
|
cy.get("@select").shadow().find(".udex-text-field__trigger").as("trigger")
|
|
1053
1191
|
|
|
1054
1192
|
cy.get("@select").shadow()
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1193
|
+
.find("udex-list")
|
|
1194
|
+
.find("udex-list-select-all").shadow()
|
|
1195
|
+
.find(".udex-list__group-header")
|
|
1196
|
+
.should("have.text", "Select All");
|
|
1059
1197
|
});
|
|
1060
1198
|
|
|
1061
1199
|
it("emit select-all when Select All header clicked", () => {
|
|
@@ -1063,22 +1201,22 @@ describe("SelectBox", () => {
|
|
|
1063
1201
|
cy.get("#select-box").as("select")
|
|
1064
1202
|
|
|
1065
1203
|
cy.get("@select")
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1204
|
+
.then(select => {
|
|
1205
|
+
select.get(0).addEventListener("select-all", cy.stub().as("selectall"));
|
|
1206
|
+
});
|
|
1069
1207
|
|
|
1070
1208
|
cy.get("@select").shadow().find(".udex-text-field__trigger").as("trigger")
|
|
1071
1209
|
|
|
1072
1210
|
cy.get("@trigger").click();
|
|
1073
1211
|
|
|
1074
1212
|
cy.get("@select").shadow()
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1213
|
+
.find("udex-list")
|
|
1214
|
+
.find("udex-list-select-all").shadow()
|
|
1215
|
+
.find(".udex-list__group-header")
|
|
1216
|
+
.click()
|
|
1079
1217
|
|
|
1080
1218
|
cy.get("@selectall")
|
|
1081
|
-
|
|
1219
|
+
.should("have.been.called");
|
|
1082
1220
|
});
|
|
1083
1221
|
|
|
1084
1222
|
// Bug fix: groupListClassName no longer appends _additionalClassName, so the
|
|
@@ -1091,10 +1229,10 @@ describe("SelectBox", () => {
|
|
|
1091
1229
|
cy.get("@select").find(".udex-text-field__trigger").click();
|
|
1092
1230
|
|
|
1093
1231
|
cy.get("@select")
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1232
|
+
.find("udex-list")
|
|
1233
|
+
.find("udex-list-select-all").shadow()
|
|
1234
|
+
.find(".udex-list__group-list")
|
|
1235
|
+
.should("not.have.class", "udex-list__sticky");
|
|
1098
1236
|
});
|
|
1099
1237
|
});
|
|
1100
1238
|
|
|
@@ -1105,15 +1243,15 @@ describe("SelectBox", () => {
|
|
|
1105
1243
|
select.get(0).addEventListener("selection-change", cy.stub().as("selectionchange"));
|
|
1106
1244
|
});
|
|
1107
1245
|
cy.get("#select-box").shadow()
|
|
1108
|
-
|
|
1109
|
-
|
|
1246
|
+
.find(".udex-text-field__trigger")
|
|
1247
|
+
.click();
|
|
1110
1248
|
|
|
1111
1249
|
cy.get("#select-box").shadow()
|
|
1112
|
-
|
|
1113
|
-
|
|
1250
|
+
.find("udex-list-item").eq(1)
|
|
1251
|
+
.click();
|
|
1114
1252
|
|
|
1115
1253
|
cy.get("@selectionchange")
|
|
1116
|
-
|
|
1254
|
+
.should("have.been.called");
|
|
1117
1255
|
});
|
|
1118
1256
|
|
|
1119
1257
|
it("emit open when dropdown list opened", () => {
|
|
@@ -1122,8 +1260,8 @@ describe("SelectBox", () => {
|
|
|
1122
1260
|
select.get(0).addEventListener("open", cy.stub().as("open"));
|
|
1123
1261
|
});
|
|
1124
1262
|
cy.get("#select-box").shadow()
|
|
1125
|
-
|
|
1126
|
-
|
|
1263
|
+
.find(".udex-text-field__trigger")
|
|
1264
|
+
.click();
|
|
1127
1265
|
|
|
1128
1266
|
cy.get("@open").should("have.been.called");
|
|
1129
1267
|
});
|
|
@@ -1134,11 +1272,11 @@ describe("SelectBox", () => {
|
|
|
1134
1272
|
select.get(0).addEventListener("close", cy.stub().as("close"));
|
|
1135
1273
|
});
|
|
1136
1274
|
cy.get("#select-box").shadow()
|
|
1137
|
-
|
|
1138
|
-
|
|
1275
|
+
.find(".udex-text-field__trigger")
|
|
1276
|
+
.click();
|
|
1139
1277
|
cy.get("#select-box").shadow()
|
|
1140
|
-
|
|
1141
|
-
|
|
1278
|
+
.find(".udex-text-field__trigger")
|
|
1279
|
+
.click();
|
|
1142
1280
|
|
|
1143
1281
|
cy.get("@close").should("have.been.called");
|
|
1144
1282
|
});
|
|
@@ -1149,8 +1287,8 @@ describe("SelectBox", () => {
|
|
|
1149
1287
|
select.get(0).addEventListener("before-open", cy.stub().as("beforeopen"));
|
|
1150
1288
|
});
|
|
1151
1289
|
cy.get("#select-box").shadow()
|
|
1152
|
-
|
|
1153
|
-
|
|
1290
|
+
.find(".udex-text-field__trigger")
|
|
1291
|
+
.click();
|
|
1154
1292
|
|
|
1155
1293
|
cy.get("@beforeopen").should("have.been.called");
|
|
1156
1294
|
});
|
|
@@ -1161,11 +1299,11 @@ describe("SelectBox", () => {
|
|
|
1161
1299
|
select.get(0).addEventListener("before-close", cy.stub().as("beforeclose"));
|
|
1162
1300
|
});
|
|
1163
1301
|
cy.get("#select-box").shadow()
|
|
1164
|
-
|
|
1165
|
-
|
|
1302
|
+
.find(".udex-text-field__trigger")
|
|
1303
|
+
.click();
|
|
1166
1304
|
cy.get("#select-box").shadow()
|
|
1167
|
-
|
|
1168
|
-
|
|
1305
|
+
.find(".udex-text-field__trigger")
|
|
1306
|
+
.click();
|
|
1169
1307
|
|
|
1170
1308
|
cy.get("@beforeclose").should("have.been.called");
|
|
1171
1309
|
});
|
|
@@ -1176,8 +1314,8 @@ describe("SelectBox", () => {
|
|
|
1176
1314
|
select.get(0).addEventListener("change-search", cy.stub().as("changesearch"));
|
|
1177
1315
|
});
|
|
1178
1316
|
cy.get("#select-box").shadow()
|
|
1179
|
-
|
|
1180
|
-
|
|
1317
|
+
.find(".udex-text-field__search")
|
|
1318
|
+
.click();
|
|
1181
1319
|
cy.realType("java");
|
|
1182
1320
|
|
|
1183
1321
|
cy.get("@changesearch").should("have.been.called");
|
|
@@ -1191,22 +1329,22 @@ describe("SelectBox", () => {
|
|
|
1191
1329
|
cy.get("#select-box").shadow().as("select");
|
|
1192
1330
|
|
|
1193
1331
|
cy.get("@select").find(".udex-text-field__trigger")
|
|
1194
|
-
|
|
1332
|
+
.click();
|
|
1195
1333
|
|
|
1196
1334
|
cy.get("@select")
|
|
1197
|
-
|
|
1335
|
+
.find("udex-list-item").as("items")
|
|
1198
1336
|
|
|
1199
1337
|
cy.get("@items").eq(0).click();
|
|
1200
1338
|
cy.get("@items").eq(1).click();
|
|
1201
1339
|
|
|
1202
1340
|
cy.get("@select")
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1341
|
+
.find("udex-tag-group").shadow()
|
|
1342
|
+
.find("udex-tag").eq(0).shadow()
|
|
1343
|
+
.find(".udex-tag__icon")
|
|
1344
|
+
.click();
|
|
1207
1345
|
|
|
1208
1346
|
cy.get("@remove")
|
|
1209
|
-
|
|
1347
|
+
.should("have.been.called");
|
|
1210
1348
|
});
|
|
1211
1349
|
|
|
1212
1350
|
it("emit show-more when more button clicked", () => {
|
|
@@ -1218,7 +1356,7 @@ describe("SelectBox", () => {
|
|
|
1218
1356
|
cy.get("#select-box").shadow().find(".udex-text-field__trigger").click();
|
|
1219
1357
|
|
|
1220
1358
|
cy.get("#select-box").shadow()
|
|
1221
|
-
|
|
1359
|
+
.find("udex-list-item").as("items")
|
|
1222
1360
|
|
|
1223
1361
|
cy.get("@items").eq(0).click();
|
|
1224
1362
|
cy.get("@items").eq(1).click();
|
|
@@ -1227,13 +1365,13 @@ describe("SelectBox", () => {
|
|
|
1227
1365
|
cy.get("body").realClick();
|
|
1228
1366
|
|
|
1229
1367
|
cy.get("#select-box").shadow()
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1368
|
+
.find("udex-tag-group").shadow()
|
|
1369
|
+
.find(".udex-tag-group__tokenizer").shadow()
|
|
1370
|
+
.find(".ui5-tokenizer-more-text")
|
|
1371
|
+
.click();
|
|
1234
1372
|
|
|
1235
1373
|
cy.get("@showmore")
|
|
1236
|
-
|
|
1374
|
+
.should("have.been.called");
|
|
1237
1375
|
});
|
|
1238
1376
|
|
|
1239
1377
|
it("emit first-icon-click when first icon clicked", () => {
|
|
@@ -1649,11 +1787,10 @@ describe("SelectBox", () => {
|
|
|
1649
1787
|
it("pressing Tab while a list item is focused moves focus to the first footer element and keeps the dropdown open", () => {
|
|
1650
1788
|
cy.mount(selectBoxWithFooter);
|
|
1651
1789
|
|
|
1652
|
-
// Open the dropdown
|
|
1790
|
+
// Open the dropdown; the first list item becomes the active descendant on open.
|
|
1653
1791
|
cy.get("#select-box").shadow()
|
|
1654
1792
|
.find(".udex-text-field__search")
|
|
1655
|
-
.click()
|
|
1656
|
-
.realPress("ArrowDown");
|
|
1793
|
+
.click();
|
|
1657
1794
|
|
|
1658
1795
|
cy.get("#select-box").shadow()
|
|
1659
1796
|
.find(".udex-select-box__dropdown")
|
|
@@ -1943,8 +2080,12 @@ describe("SelectBox", () => {
|
|
|
1943
2080
|
const openDropdownOnFirstItem = () => {
|
|
1944
2081
|
cy.get("#select-box").shadow()
|
|
1945
2082
|
.find(".udex-text-field__search")
|
|
1946
|
-
.click()
|
|
1947
|
-
|
|
2083
|
+
.click();
|
|
2084
|
+
// Opening focuses the first list item as the active descendant (DOM focus stays
|
|
2085
|
+
// on the input); wait for it so navigation starts deterministically from eq(0).
|
|
2086
|
+
cy.get("#select-box").shadow()
|
|
2087
|
+
.find("udex-list-item").eq(0)
|
|
2088
|
+
.should("have.attr", "_active-descendant");
|
|
1948
2089
|
};
|
|
1949
2090
|
|
|
1950
2091
|
it("Tab from list item closes dropdown and moves focus to next element outside component", () => {
|
|
@@ -2675,9 +2816,9 @@ describe("SelectBox", () => {
|
|
|
2675
2816
|
it("Enter on a group header does not select its items", () => {
|
|
2676
2817
|
cy.mount(groupHeaderCollapsibleSingleSelect);
|
|
2677
2818
|
cy.get("#select-box").shadow().find(".udex-text-field__search").click();
|
|
2678
|
-
cy.realPress("ArrowDown");
|
|
2679
2819
|
|
|
2680
|
-
//
|
|
2820
|
+
// Opening focuses the first navigable item — the collapsible group header
|
|
2821
|
+
// (DOM focus stays on the input).
|
|
2681
2822
|
cy.get("#select-box").shadow()
|
|
2682
2823
|
.find("udex-list-group-header")
|
|
2683
2824
|
.should("have.attr", "_active-descendant");
|
|
@@ -2769,10 +2910,9 @@ describe("SelectBox", () => {
|
|
|
2769
2910
|
cy.mount(shortComponent);
|
|
2770
2911
|
cy.get("#select-box").shadow()
|
|
2771
2912
|
.find(".udex-text-field__search")
|
|
2772
|
-
.click()
|
|
2773
|
-
.realPress("ArrowDown");
|
|
2913
|
+
.click();
|
|
2774
2914
|
|
|
2775
|
-
//
|
|
2915
|
+
// Opening activates the first item "JavaScript" (shortComponent has 6 items).
|
|
2776
2916
|
cy.get("#select-box").shadow()
|
|
2777
2917
|
.find('[aria-live="polite"]')
|
|
2778
2918
|
.invoke("text")
|
|
@@ -2786,10 +2926,9 @@ describe("SelectBox", () => {
|
|
|
2786
2926
|
cy.mount(groupHeaderCollapsible);
|
|
2787
2927
|
cy.get("#select-box").shadow()
|
|
2788
2928
|
.find(".udex-text-field__search")
|
|
2789
|
-
.click()
|
|
2790
|
-
.realPress("ArrowDown");
|
|
2929
|
+
.click();
|
|
2791
2930
|
|
|
2792
|
-
//
|
|
2931
|
+
// Opening activates the group header -> tree text reports "level 0".
|
|
2793
2932
|
cy.get("#select-box").shadow()
|
|
2794
2933
|
.find('[aria-live="polite"]')
|
|
2795
2934
|
.invoke("text")
|
|
@@ -2863,10 +3002,10 @@ describe("SelectBox", () => {
|
|
|
2863
3002
|
cy.mount(checkedMultiSelect);
|
|
2864
3003
|
cy.get("#select-box").shadow()
|
|
2865
3004
|
.find(".udex-text-field__search")
|
|
2866
|
-
.click()
|
|
2867
|
-
.realPress("ArrowDown");
|
|
3005
|
+
.click();
|
|
2868
3006
|
|
|
2869
|
-
//
|
|
3007
|
+
// Opening activates the first MultiSelect item, which is pre-selected -> state
|
|
3008
|
+
// suffix is "Selected".
|
|
2870
3009
|
cy.get("#select-box").shadow()
|
|
2871
3010
|
.find('[aria-live="polite"]')
|
|
2872
3011
|
.should("contain.text", "Selected");
|
|
@@ -2905,10 +3044,9 @@ describe("SelectBox", () => {
|
|
|
2905
3044
|
cy.mount(groupHeaderCollapsible);
|
|
2906
3045
|
cy.get("#select-box").shadow()
|
|
2907
3046
|
.find(".udex-text-field__search")
|
|
2908
|
-
.click()
|
|
2909
|
-
.realPress("ArrowDown");
|
|
3047
|
+
.click();
|
|
2910
3048
|
|
|
2911
|
-
//
|
|
3049
|
+
// Opening activates the expanded group header -> tree text reports
|
|
2912
3050
|
// "level 0" and the state suffix is "expanded".
|
|
2913
3051
|
cy.get("#select-box").shadow()
|
|
2914
3052
|
.find('[aria-live="polite"]')
|