@@ -5,6 +5,10 @@ import activities from "@ui5/webcomponents-icons/dist/activities.js";
55import navBack from "@ui5/webcomponents-icons/dist/nav-back.js" ;
66import sysHelp from "@ui5/webcomponents-icons/dist/sys-help.js" ;
77import da from "@ui5/webcomponents-icons/dist/da.js" ;
8+ import "@ui5/webcomponents-icons/dist/accept.js" ;
9+ import "@ui5/webcomponents-icons/dist/alert.js" ;
10+ import "@ui5/webcomponents-icons/dist/disconnected.js" ;
11+ import "@ui5/webcomponents-icons/dist/incoming-call.js" ;
812import Input from "@ui5/webcomponents/dist/Input.js" ;
913import Button from "@ui5/webcomponents/dist/Button.js" ;
1014import ToggleButton from "@ui5/webcomponents/dist/ToggleButton.js" ;
@@ -26,8 +30,7 @@ describe("Responsiveness", () => {
2630 showNotifications = { true }
2731 showProductSwitch = { true }
2832 >
29- { /* <ToggleButton id="assistant" icon={da} slot="assistant" text="Button3"></ToggleButton> */ }
30- < ToggleButton id = "assistant" icon = { da } slot = "assistant" > Button3</ ToggleButton >
33+ < ToggleButton id = "assistant" icon = { da } slot = "assistant" > </ ToggleButton >
3134
3235 < Avatar slot = "profile" >
3336 < img src = "https://sdk.openui5.org/test-resources/sap/f/images/Woman_avatar_01.png" />
@@ -134,14 +137,26 @@ describe("Responsiveness", () => {
134137 cy . get ( "@productSwitchIcon" ) . should ( "be.visible" ) ;
135138 } ) ;
136139
137- it ( "tests M Breakpoint and overflow 500px" , ( ) => {
140+ it ( "tests S Breakpoint and overflow 500px" , ( ) => {
138141 cy . viewport ( 500 , 1680 ) ;
139142
140- cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-overflow-button" ) . as ( "overflowButton" ) ;
141- cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-search-button" ) . as ( "searchIcon" ) ;
143+ cy . get ( "@shellbar" ) . should ( "have.prop" , "breakpointSize" , "S" ) ;
142144
143- cy . get ( "@searchIcon" ) . should ( "be.visible" ) ;
144- cy . get ( "@overflowButton" ) . should ( "be.visible" ) ;
145+ cy . get ( "@shellbar" ) . find ( "ui5-toggle-button[slot='assistant']" ) . as ( "assistant" ) ;
146+ cy . get ( "@shellbar" ) . find ( "ui5-button[slot='startButton']" ) . as ( "backButton" ) ;
147+ cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-custom-item" ) . as ( "customActionIcon1" ) ;
148+ cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-bell-button" ) . as ( "notificationsIcon" ) ;
149+ cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-image-button" ) . as ( "profileIcon" ) ;
150+ cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-button-product-switch" ) . as ( "productSwitchIcon" ) ;
151+
152+ cy . get ( "@assistant" ) . should ( "be.visible" ) ;
153+ // V2: Overflow button uses conditional rendering - not rendered when nothing overflows
154+ cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-overflow-button" ) . should ( "not.exist" ) ;
155+ cy . get ( "@backButton" ) . should ( "be.visible" ) ;
156+ cy . get ( "@customActionIcon1" ) . should ( "be.visible" ) ;
157+ cy . get ( "@notificationsIcon" ) . should ( "be.visible" ) ;
158+ cy . get ( "@profileIcon" ) . should ( "be.visible" ) ;
159+ cy . get ( "@productSwitchIcon" ) . should ( "be.visible" ) ;
145160 } ) ;
146161
147162 it ( "tests XL Breakpoint 1820px" , ( ) => {
@@ -200,38 +215,6 @@ describe("Responsiveness", () => {
200215 cy . get ( "@productSwitchIcon" ) . should ( "be.visible" ) ;
201216 } ) ;
202217
203- it ( "tests S Breakpoint and overflow 510px" , ( ) => {
204- cy . viewport ( 510 , 1680 ) ;
205-
206- cy . get ( "@shellbar" ) . should ( "have.prop" , "breakpointSize" , "S" ) ;
207-
208- cy . get ( "@shellbar" ) . find ( "[slot='assistant']" ) . as ( "assistant" ) ;
209- cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-overflow-button" ) . as ( "overflowButton" ) ;
210- cy . get ( "@shellbar" ) . find ( "ui5-button[slot='startButton']" ) . as ( "backButton" ) ;
211- cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-search-button" ) . as ( "searchIcon" ) ;
212- cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-bell-button" ) . as ( "notificationsIcon" ) ;
213- cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-image-button" ) . as ( "profileIcon" ) ;
214- cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-button-product-switch" ) . as ( "productSwitchIcon" ) ;
215- cy . get ( "@shellbar" ) . shadow ( ) . find ( ".ui5-shellbar-overflow-popover" ) . as ( "overflowPopover" ) ;
216-
217- // V2: At narrow S breakpoint (510px) with many items, some actions overflow
218- // cy.get("@assistant").should("be.visible"); // Gets overflowed
219- cy . get ( "@overflowButton" ) . should ( "be.visible" ) ;
220- cy . get ( "@backButton" ) . should ( "be.visible" ) ;
221- // V2: Titles still render at S breakpoint (shown in menu button, but also exist in DOM)
222- // This differs from V1 which hid them via CSS
223- // cy.get("@shellbar").shadow().find(".ui5-shellbar-title").should("not.exist");
224- // cy.get("@shellbar").shadow().find(".ui5-shellbar-secondary-title").should("not.exist");
225- cy . get ( "@searchIcon" ) . should ( "be.visible" ) ;
226- // V2: At narrow S breakpoint (510px) with many items, notifications may overflow
227- // cy.get("@notificationsIcon").should("be.visible"); // May get overflowed depending on content
228- cy . get ( "@profileIcon" ) . should ( "be.visible" ) ;
229- cy . get ( "@productSwitchIcon" ) . should ( "be.visible" ) ;
230-
231- // Overflow popover should contain hidden items
232- cy . get ( "@overflowPopover" ) . find ( "ui5-li" ) . should ( "have.length.greaterThan" , 0 ) ;
233- } ) ;
234-
235218 it ( "tests S Breakpoint 320px" , ( ) => {
236219 cy . get ( "html" ) . viewport ( "iphone-x" ) ;
237220 cy . get ( "@shellbar" )
@@ -1059,14 +1042,14 @@ describe("Events", () => {
10591042 } ) ;
10601043
10611044 it ( "tests preventDefault of click on a button with default behavior prevented" , ( ) => {
1045+ cy . viewport ( 320 , 800 ) ;
10621046 cy . mount (
10631047 < ShellBar
10641048 primaryTitle = "Product Title"
10651049 secondaryTitle = "Second title"
10661050 notificationsCount = "99+"
10671051 showNotifications
10681052 showProductSwitch
1069- showSearchField = { false }
10701053 >
10711054 < img slot = "logo" src = "https://upload.wikimedia.org/wikipedia/commons/5/59/SAP_2011_logo.svg" />
10721055 < Button slot = "content" > Button 1</ Button >
@@ -1093,17 +1076,20 @@ describe("Events", () => {
10931076 cy . get ( "[ui5-shellbar-v2]" )
10941077 . shadow ( )
10951078 . find ( ".ui5-shellbar-overflow-popover" )
1096- . should ( "be.visible" ) ;
1079+ . should ( "to.exist" )
1080+ . invoke ( "prop" , "open" , true ) ;
10971081
10981082 cy . get ( "[ui5-shellbar-v2]" )
10991083 . shadow ( )
1100- . find ( ".ui5-shellbar-overflow-popover [ui5-list] [ui5-li ]:nth-child(1)" )
1084+ . find ( ".ui5-shellbar-overflow-popover [ui5-list] [ui5-shellbar-v2-item ]:nth-child(1)" )
11011085 . realClick ( ) ;
11021086
11031087 cy . get ( "[ui5-shellbar-v2]" )
11041088 . shadow ( )
11051089 . find ( ".ui5-shellbar-overflow-popover" )
1106- . should ( "be.visible" ) ;
1090+ . should ( "to.exist" )
1091+ . invoke ( "prop" , "open" , true ) ;
1092+
11071093 } ) ;
11081094 } ) ;
11091095} ) ;
@@ -1280,10 +1266,8 @@ describe("Keyboard Navigation", () => {
12801266 // Press right arrow - should move focus away from input since cursor is at end
12811267 cy . get ( "@nativeInput" ) . type ( "{rightArrow}" ) ;
12821268 // Verify focus is now on the ShellBarItem
1283- cy . get ( "[ui5-shellbar-v2]" )
1284- . shadow ( )
1285- . find ( ".ui5-shellbar-custom-item" )
1286- . should ( "be.focused" ) ;
1269+ cy . get ( "[ui5-shellbar-v2-item]" )
1270+ . should ( "have.focus" ) ;
12871271
12881272 placeInMiddleOfInput ( ) ;
12891273 // Press left arrow - should stay focused on input since cursor is in the middle
@@ -1536,17 +1520,13 @@ describe("Component Behavior", () => {
15361520 item . addEventListener ( "click" , cy . stub ( ) . as ( stubAlias ) ) ;
15371521 } ) ;
15381522
1539- cy . get ( "[ui5-shellbar-v2]" )
1540- . shadow ( )
1541- . find ( `.ui5-shellbar-custom-item[icon="accept"]` )
1523+ cy . get ( "[ui5-shellbar-v2-item][icon='accept']" )
15421524 . click ( ) ;
15431525
15441526 cy . get ( "@acceptClick" )
15451527 . should ( "have.been.calledOnce" ) ;
15461528
1547- cy . get ( "[ui5-shellbar-v2]" )
1548- . shadow ( )
1549- . find ( `.ui5-shellbar-custom-item[icon="alert"]` )
1529+ cy . get ( "[ui5-shellbar-v2-item][icon='alert']" )
15501530 . click ( ) ;
15511531
15521532 cy . get ( "@alertClick" )
0 commit comments