@@ -261,39 +261,52 @@ async function checkOutput(
261261 expected : ExpectedState ,
262262 initial_state : SidebarState
263263) {
264+ const POSSIBLE_TABS = [ "Style" , "Attributes" ] ;
265+
266+ const check_tabs = async ( selectedTab , tabs , unexpected_tabs ) => {
267+ await view . columnSettingsSidebar . container
268+ . locator ( ".tab.selected" )
269+ . getByText ( selectedTab )
270+ . waitFor ( ) ;
271+ for ( let tab of tabs ) {
272+ await view . columnSettingsSidebar . tabTitle . getByText ( tab ) . waitFor ( ) ;
273+ }
274+ for ( let tab of unexpected_tabs ) {
275+ await view . columnSettingsSidebar . tabTitle
276+ . getByText ( tab )
277+ . waitFor ( { state : "hidden" } ) ;
278+ }
279+ } ;
280+
264281 if ( "type" in expected ) {
265- view . columnSettingsSidebar . container
282+ await view . columnSettingsSidebar . container
266283 . locator ( `.type-icon.${ expected . type } ` )
267- . waitFor ( { timeout : 3000 } ) ;
284+ . waitFor ( ) ;
268285 }
269286 if ( "unchanged" in expected ) {
270287 if ( ! initial_state . open ) {
271288 await expect ( view . columnSettingsSidebar . container ) . toBeHidden ( {
272289 timeout : 1000 ,
273290 } ) ;
274- } else if ( "type" in expected ) {
275- expect ( await view . columnSettingsSidebar . getSelectedTab ( ) ) . toBe (
276- initial_state . selectedTab
291+ } else {
292+ const unexpected_tabs = POSSIBLE_TABS . filter (
293+ ( t ) => ! initial_state . tabs . includes ( t )
277294 ) ;
278- expect ( await view . columnSettingsSidebar . getTabs ( ) ) . toStrictEqual (
279- initial_state . tabs
295+ await check_tabs (
296+ initial_state . selectedTab ,
297+ initial_state . tabs ,
298+ unexpected_tabs
280299 ) ;
281- } else {
282- expect (
283- await view . columnSettingsSidebar . container . innerHTML ( )
284- ) . toEqual ( initial_state . snapshot ) ;
285300 }
286301 } else if ( "closed" in expected ) {
287302 await expect ( view . columnSettingsSidebar . container ) . toBeHidden ( {
288303 timeout : 1000 ,
289304 } ) ;
290305 } else {
291- expect ( await view . columnSettingsSidebar . getSelectedTab ( ) ) . toBe (
292- expected . selectedTab
293- ) ;
294- expect ( await view . columnSettingsSidebar . getTabs ( ) ) . toStrictEqual (
295- expected . tabs
306+ const unexpected_tabs = POSSIBLE_TABS . filter (
307+ ( t ) => ! expected . tabs . includes ( t )
296308 ) ;
309+ await check_tabs ( expected . selectedTab , expected . tabs , unexpected_tabs ) ;
297310 }
298311}
299312
@@ -321,7 +334,7 @@ test.describe("Column Settings State on Interaction", () => {
321334 "where" ,
322335 ] ,
323336 text : [ "reorder" , "open" , "deactivate" ] ,
324- dnd : [ "open" , "deactivate" , "groupby" ] ,
337+ dnd : [ "open" , "deactivate" , "groupby" , "splitby" ] ,
325338 } ;
326339
327340 for ( const [ name , spec ] of Object . entries ( TEST_SPEC ) ) {
0 commit comments