11describe ( 'v1 sidebar: resize + collapse' , ( ) => {
22 const DEFAULT_EXPANDED_WIDTH = 200 ;
33
4- const visitAuthed = ( viewport : { width : number ; height : number } ) => {
4+ const visitAuthed = (
5+ viewport : { width : number ; height : number } ,
6+ opts ?: { requireVisibleSidebar ?: boolean } ,
7+ ) => {
58 cy . viewport ( viewport . width , viewport . height ) ;
69 cy . login ( 'owner' ) ;
710
@@ -14,9 +17,16 @@ describe('v1 sidebar: resize + collapse', () => {
1417 } ,
1518 } ) ;
1619
17- cy . get ( 'button[aria-label="User Menu"]' , { timeout : 30000 } ) . should (
18- 'be.visible' ,
19- ) ;
20+ if ( opts ?. requireVisibleSidebar !== false ) {
21+ if ( viewport . width < 768 ) {
22+ cy . get ( 'button[aria-label="Toggle sidebar"]' , { timeout : 30000 } )
23+ . should ( 'be.visible' )
24+ . click ( ) ;
25+ }
26+
27+ cy . get ( '[data-cy="v1-sidebar"]' , { timeout : 30000 } ) . should ( 'be.visible' ) ;
28+ }
29+
2030 cy . location ( 'pathname' , { timeout : 30000 } ) . should (
2131 'match' ,
2232 / \/ t e n a n t s \/ .+ / ,
@@ -30,17 +40,14 @@ describe('v1 sidebar: resize + collapse', () => {
3040 } ;
3141
3242 const waitForShell = ( ) => {
33- cy . get ( 'button[aria-label="User Menu"]' , { timeout : 30000 } ) . should (
34- 'be.visible' ,
35- ) ;
36- cy . get ( '[data-cy="v1-sidebar"]' ) . should ( 'be.visible' ) ;
43+ cy . get ( '[data-cy="v1-sidebar"]' , { timeout : 30000 } ) . should ( 'be.visible' ) ;
3744 } ;
3845
3946 it ( 'navbar: sidebar toggle button is only visible on mobile' , ( ) => {
4047 visitAuthed ( { width : 1280 , height : 800 } ) ;
4148 cy . get ( 'button[aria-label="Toggle sidebar"]' ) . should ( 'not.be.visible' ) ;
4249
43- visitAuthed ( { width : 375 , height : 667 } ) ;
50+ visitAuthed ( { width : 375 , height : 667 } , { requireVisibleSidebar : false } ) ;
4451 cy . get ( 'button[aria-label="Toggle sidebar"]' ) . should ( 'be.visible' ) ;
4552 } ) ;
4653
@@ -189,21 +196,19 @@ describe('v1 sidebar: resize + collapse', () => {
189196 expectSidebarWidthStyle ( 56 ) ;
190197 } ) ;
191198
192- it ( 'collapsed: settings flyout renders and has a visible panel background ' , ( ) => {
199+ it ( 'collapsed: settings items are always visible without a flyout ' , ( ) => {
193200 visitAuthed ( { width : 1280 , height : 800 } ) ;
194201
195202 // Collapse.
196203 cy . get ( '[data-cy="v1-sidebar-resize-handle"]' ) . click ( { force : true } ) ;
204+ expectSidebarWidthStyle ( 56 ) ;
197205
198- // Open settings flyout.
199- cy . get ( 'button[aria-label="General"]' ) . click ( { force : true } ) ;
200- cy . get ( '[role="menu"]' ) . filter ( ':visible' ) . first ( ) . as ( 'settingsMenu' ) ;
201- cy . get ( '@settingsMenu' ) . contains ( 'Overview' ) . should ( 'be.visible' ) ;
202-
203- // Content should have the bg-secondary class (explicit panel surface).
204- cy . get ( '@settingsMenu' )
205- . invoke ( 'attr' , 'class' )
206- // UI uses popover surfaces; accept either explicit secondary surface or popover surface.
207- . should ( 'match' , / \b b g - ( s e c o n d a r y | p o p o v e r ) \b / ) ;
206+ // Settings items exist directly — no flyout needed.
207+ cy . get ( 'button[aria-label="API Tokens"]' )
208+ . scrollIntoView ( )
209+ . should ( 'be.visible' ) ;
210+ cy . get ( 'button[aria-label="Members"]' )
211+ . scrollIntoView ( )
212+ . should ( 'be.visible' ) ;
208213 } ) ;
209214} ) ;
0 commit comments