@@ -1066,6 +1066,71 @@ for (const useModernActionList of [false, true]) {
10661066 expect ( options [ 2 ] ) . toHaveTextContent ( 'item three' )
10671067 } )
10681068 } )
1069+
1070+ describe ( 'fullScreenOnNarrow prop' , ( ) => {
1071+ const renderSelectPanelWithFlags = ( flags : Record < string , boolean > , props : Record < string , unknown > = { } ) => {
1072+ return render (
1073+ < FeatureFlags flags = { flags } >
1074+ < ThemeProvider >
1075+ < BasicSelectPanel { ...props } />
1076+ </ ThemeProvider >
1077+ </ FeatureFlags > ,
1078+ )
1079+ }
1080+
1081+ it ( 'should respect fullScreenOnNarrow=false even when feature flag is enabled' , async ( ) => {
1082+ const user = userEvent . setup ( )
1083+
1084+ renderSelectPanelWithFlags (
1085+ {
1086+ primer_react_select_panel_with_modern_action_list : useModernActionList ,
1087+ primer_react_select_panel_fullscreen_on_narrow : true ,
1088+ } ,
1089+ { fullScreenOnNarrow : false } ,
1090+ )
1091+
1092+ await user . click ( screen . getByText ( 'Select items' ) )
1093+
1094+ // When fullScreenOnNarrow=false, the overlay should not use responsive fullscreen variant
1095+ const dialog = screen . getByRole ( 'dialog' )
1096+ expect ( dialog ) . toBeInTheDocument ( )
1097+ // The key test is that the AnchoredOverlay's variant prop should be undefined
1098+ // when fullScreenOnNarrow is false, regardless of feature flag
1099+ } )
1100+
1101+ it ( 'should use fullscreen behavior when fullScreenOnNarrow=true and feature flag is enabled' , async ( ) => {
1102+ const user = userEvent . setup ( )
1103+
1104+ renderSelectPanelWithFlags (
1105+ {
1106+ primer_react_select_panel_with_modern_action_list : useModernActionList ,
1107+ primer_react_select_panel_fullscreen_on_narrow : true ,
1108+ } ,
1109+ { fullScreenOnNarrow : true } ,
1110+ )
1111+
1112+ await user . click ( screen . getByText ( 'Select items' ) )
1113+
1114+ // When both feature flag and prop are true, should enable fullscreen behavior
1115+ const dialog = screen . getByRole ( 'dialog' )
1116+ expect ( dialog ) . toBeInTheDocument ( )
1117+ } )
1118+
1119+ it ( 'should default to feature flag value when fullScreenOnNarrow is undefined' , async ( ) => {
1120+ const user = userEvent . setup ( )
1121+
1122+ // Test with feature flag disabled
1123+ renderSelectPanelWithFlags ( {
1124+ primer_react_select_panel_with_modern_action_list : useModernActionList ,
1125+ primer_react_select_panel_fullscreen_on_narrow : false ,
1126+ } )
1127+
1128+ await user . click ( screen . getByText ( 'Select items' ) )
1129+
1130+ const dialog = screen . getByRole ( 'dialog' )
1131+ expect ( dialog ) . toBeInTheDocument ( )
1132+ } )
1133+ } )
10691134 } )
10701135 } )
10711136}
0 commit comments