@@ -232,8 +232,8 @@ await UiScenarioArtifacts.CapturePageAsync(
232232 await Assert . That ( expandedMetrics . MetadataToggleChevronDirection ) . IsEqualTo ( BrowserTestConstants . EditorFlow . MetadataRailExpandedChevronDirection ) ;
233233
234234 await metadataToggle . ClickAsync ( ) ;
235- await page . WaitForTimeoutAsync ( BrowserTestConstants . EditorFlow . MetadataRailToggleSettleDelayMs ) ;
236235 await Expect ( metadataToggle ) . ToHaveAttributeAsync ( "aria-expanded" , "false" ) ;
236+ await WaitForMetadataRailCollapsedAsync ( page ) ;
237237
238238 var collapsedMetrics = await ReadLayoutMetricsAsync ( page ) ;
239239 await UiScenarioArtifacts . CapturePageAsync (
@@ -257,6 +257,30 @@ await UiScenarioArtifacts.CapturePageAsync(
257257 }
258258 }
259259
260+ private static Task WaitForMetadataRailCollapsedAsync ( IPage page ) =>
261+ page . WaitForFunctionAsync (
262+ """
263+ (args) => {
264+ const rail = document.querySelector(`[data-test="${args.railTestId}"]`);
265+ const toggle = document.querySelector(`[data-test="${args.toggleTestId}"]`);
266+ if (!(rail instanceof HTMLElement) || !(toggle instanceof HTMLElement)) {
267+ return false;
268+ }
269+
270+ const railWidth = rail.getBoundingClientRect().width;
271+ return rail.getAttribute('data-collapsed') === 'true' &&
272+ toggle.getAttribute('aria-expanded') === 'false' &&
273+ railWidth <= args.maximumCollapsedWidth;
274+ }
275+ """ ,
276+ new
277+ {
278+ maximumCollapsedWidth = BrowserTestConstants . Editor . MaximumCollapsedMetadataRailWidthPx ,
279+ railTestId = UiTestIds . Editor . MetadataRail ,
280+ toggleTestId = UiTestIds . Editor . MetadataRailToggle
281+ } ,
282+ new ( ) { Timeout = BrowserTestConstants . Timing . DefaultVisibleTimeoutMs } ) ;
283+
260284 private static async Task < LayoutBounds > GetRequiredBoundingBoxAsync ( ILocator locator ) =>
261285 await locator . EvaluateAsync < LayoutBounds > (
262286 """
0 commit comments