Repository navigation
[release/13.6] Fix Dashboard tests and popup behavior - #20410
Jose Perez Rodriguez (joperezr) merged 3 commits into
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 20410Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 20410" |
Tests selectorSelects the full PR test matrix + all PR-gated jobs (ALL) — a rule matching 'eng/Versions.props' selects ALL Selection computed for commit |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The added hidden-resource Playwright fixture is converted into a visible resource, leaving the intended regression path untested.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
What changed in this PR
Backports Dashboard popup, focus, Playwright reliability, and bUnit compatibility fixes from #20341, #20360, and #20362 to release/13.6.
Changes:
- Stabilizes popup positioning, persistence, menu reopening, and terminal focus.
- Upgrades bUnit and migrates component tests to its v2 APIs.
- Improves Playwright isolation, adaptive timeouts, and Fluent UI v5 selectors.
| File | Description |
|---|---|
tests/Directory.Packages.props |
Upgrades bUnit. |
tests/Aspire.Dashboard.Tests/Model/DashboardClientTests.cs |
Uses hosted TestServer setup. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/TerminalTests.cs |
Updates terminal interactions and selectors. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/TerminalDockTests.cs |
Updates focus coverage. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/ResourcesTests.cs |
Updates resource-menu regression coverage. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/NativeAotDashboardTests.cs |
Applies shared timeouts. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/MobileNavMenuTests.cs |
Uses configured browser contexts. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/Infrastructure/PlaywrightTestsBase.cs |
Serializes fixture tests through disposal. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/Infrastructure/PlaywrightFixture.cs |
Centralizes adaptive timeouts. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/Infrastructure/DashboardServerFixture.cs |
Adds test gate and disposal ordering. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/DashboardInteractionsTests.cs |
Updates positioning assertions. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/BrowserTokenAuthenticationTests.cs |
Updates selectors and timeouts. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/AspireMenuLayoutTests.cs |
Updates action-menu selector. |
tests/Aspire.Dashboard.Tests/Integration/Playwright/AppBarTests.cs |
Updates Fluent UI layout assertions. |
tests/Aspire.Dashboard.Components.Tests/Shared/TestJSObjectReference.cs |
Migrates to BunitContext. |
tests/Aspire.Dashboard.Components.Tests/Shared/TerminalSetupHelpers.cs |
Migrates bUnit helper APIs. |
tests/Aspire.Dashboard.Components.Tests/Shared/StructuredLogsSetupHelpers.cs |
Migrates context type. |
tests/Aspire.Dashboard.Components.Tests/Shared/ResourceSetupHelpers.cs |
Migrates context type. |
tests/Aspire.Dashboard.Components.Tests/Shared/MetricsSetupHelpers.cs |
Migrates context type. |
tests/Aspire.Dashboard.Components.Tests/Shared/LayoutSetupHelpers.cs |
Migrates context type. |
tests/Aspire.Dashboard.Components.Tests/Shared/InteractionsSetupHelpers.cs |
Migrates render types. |
tests/Aspire.Dashboard.Components.Tests/Shared/FluentUISetupHelpers.cs |
Migrates shared bUnit APIs. |
tests/Aspire.Dashboard.Components.Tests/Shared/DashboardPageTestContext.cs |
Uses BunitContext. |
tests/Aspire.Dashboard.Components.Tests/Pages/TracesTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Pages/TraceDetailsTests.cs |
Migrates rendering and disposal. |
tests/Aspire.Dashboard.Components.Tests/Pages/TerminalWindowTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Pages/StructuredLogsTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Pages/MetricsTests.cs |
Tests persistent chart popovers. |
tests/Aspire.Dashboard.Components.Tests/Pages/ConsoleLogsTests.cs |
Migrates rendering types. |
tests/Aspire.Dashboard.Components.Tests/Pages/ConsoleLogsTerminalTests.cs |
Migrates APIs and dimension labeling. |
tests/Aspire.Dashboard.Components.Tests/Layout/TerminalDockWindowTrackingTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Layout/TerminalDockTelemetryTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Layout/TerminalDockInitializationTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Layout/ResourceServiceConnectionProviderTests.cs |
Migrates rendering call. |
tests/Aspire.Dashboard.Components.Tests/Layout/MobileNavMenuTests.cs |
Migrates bUnit and DOM APIs. |
tests/Aspire.Dashboard.Components.Tests/Layout/MainLayoutTests.cs |
Migrates rendering APIs. |
tests/Aspire.Dashboard.Components.Tests/Layout/MainLayoutTerminalTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Layout/DashboardDialogProviderTests.cs |
Migrates rendering and disposal APIs. |
tests/Aspire.Dashboard.Components.Tests/JavaScript/TerminalView.test.mjs |
Verifies auto-fit preserves focus. |
tests/Aspire.Dashboard.Components.Tests/Interactions/InteractionsProviderTests.Terminal.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Interactions/InteractionsProviderTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/GridColumnManagerTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Dialogs/SettingsDialogTests.cs |
Migrates rendering call. |
tests/Aspire.Dashboard.Components.Tests/Dialogs/NotificationEntryComponentTests.cs |
Migrates rendering call. |
tests/Aspire.Dashboard.Components.Tests/Dialogs/ManageDataDialogTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Dialogs/InteractionsTerminalDialogTests.cs |
Migrates rerender API. |
tests/Aspire.Dashboard.Components.Tests/Dialogs/InteractionsInputDialogTests.cs |
Migrates rendered-component type. |
tests/Aspire.Dashboard.Components.Tests/Dialogs/InteractionMessageBoxDialogTests.cs |
Migrates dialog rendering APIs. |
tests/Aspire.Dashboard.Components.Tests/Dialogs/HelpDialogTests.cs |
Migrates rendering call. |
tests/Aspire.Dashboard.Components.Tests/Dialogs/FilterDialogTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Controls/UserProfileTests.cs |
Migrates authorization and rendering APIs. |
tests/Aspire.Dashboard.Components.Tests/Controls/UrlsColumnDisplayTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Controls/TotalItemsFooterTests.cs |
Migrates rendering call. |
tests/Aspire.Dashboard.Components.Tests/Controls/TextVisualizerDialogTests.cs |
Migrates dialog rendering APIs. |
tests/Aspire.Dashboard.Components.Tests/Controls/StructuredLogDetailsTests.cs |
Migrates rendering call. |
tests/Aspire.Dashboard.Components.Tests/Controls/ResourceSelectTests.cs |
Migrates rendering call. |
tests/Aspire.Dashboard.Components.Tests/Controls/ResourceDetailsTests.cs |
Migrates rendering APIs. |
tests/Aspire.Dashboard.Components.Tests/Controls/PlotlyChartTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Controls/LogViewerTests.cs |
Migrates rendering APIs. |
tests/Aspire.Dashboard.Components.Tests/Controls/GenAIVisualizerDialogTests.cs |
Migrates dialog rendering APIs. |
tests/Aspire.Dashboard.Components.Tests/Controls/ChartFiltersTests.cs |
Adds popup identity and persistence tests. |
tests/Aspire.Dashboard.Components.Tests/Controls/AspirePropertyDetailsAccordionItemTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Controls/AspireProgressRingTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Controls/AspireMenuTests.cs |
Tests immediate context-menu reopening. |
tests/Aspire.Dashboard.Components.Tests/Controls/AspireMenuButtonTests.cs |
Migrates rendering APIs. |
tests/Aspire.Dashboard.Components.Tests/Controls/AspireLogoTests.cs |
Migrates context and rendering APIs. |
tests/Aspire.Dashboard.Components.Tests/Controls/AspireFluentDataGridTests.cs |
Migrates rendering APIs. |
tests/Aspire.Dashboard.Components.Tests/Controls/ApplicationNameTests.cs |
Migrates rendering calls. |
tests/Aspire.Dashboard.Components.Tests/Aspire.Dashboard.Components.Tests.csproj |
Adds scoped .NET 11 dependency overrides. |
src/Aspire.Dashboard/wwwroot/css/controls.css |
Adjusts menu layout and sizing. |
src/Aspire.Dashboard/Model/DimensionFilterViewModel.cs |
Adds collision-resistant anchor identity. |
src/Aspire.Dashboard/Components/ResourcesGridColumns/UrlsColumnDisplay.razor.css |
Anchors URL overflow popups. |
src/Aspire.Dashboard/Components/Pages/Resources.razor.css |
Anchors resource filter popup. |
src/Aspire.Dashboard/Components/Pages/Resources.razor.cs |
Refines view-option items. |
src/Aspire.Dashboard/Components/Pages/Resources.razor |
Keeps view options visible. |
src/Aspire.Dashboard/Components/Layout/DesktopToolbarDivider.razor |
Updates divider semantics. |
src/Aspire.Dashboard/Components/Dialogs/SettingsDialog.razor |
Updates Fluent accessibility attributes. |
src/Aspire.Dashboard/Components/Controls/UserProfile.razor.css |
Anchors profile popup. |
src/Aspire.Dashboard/Components/Controls/UserProfile.razor |
Supplies profile anchor identity. |
src/Aspire.Dashboard/Components/Controls/TerminalView.razor.js |
Prevents auto-fit focus theft. |
src/Aspire.Dashboard/Components/Controls/TerminalView.razor.cs |
Removes obsolete JS label option. |
src/Aspire.Dashboard/Components/Controls/TerminalView.razor |
Moves dimension label to placeholder. |
src/Aspire.Dashboard/Components/Controls/ResourceActions.razor |
Updates divider semantics. |
src/Aspire.Dashboard/Components/Controls/Chart/ChartFilterTags.razor.cs |
Delegates popup state to parent. |
src/Aspire.Dashboard/Components/Controls/Chart/ChartFilterTags.razor |
Uses delegated popup handler. |
src/Aspire.Dashboard/Components/Controls/Chart/ChartFilters.razor.css |
Moves filter-button styling. |
src/Aspire.Dashboard/Components/Controls/Chart/ChartFilters.razor.cs |
Maintains stable popup state. |
src/Aspire.Dashboard/Components/Controls/Chart/ChartFilters.razor |
Stabilizes rows, anchors, and popovers. |
src/Aspire.Dashboard/Components/Controls/Chart/ChartFilterPopover.razor.css |
Anchors chart popovers. |
src/Aspire.Dashboard/Components/Controls/Chart/ChartFilterPopover.razor.cs |
Handles replaced filter subscriptions. |
src/Aspire.Dashboard/Components/Controls/Chart/ChartFilterPopover.razor |
Separates trigger and popup rendering. |
src/Aspire.Dashboard/Components/Controls/Chart/ChartContainer.razor |
Keys filters by metric identity. |
src/Aspire.Dashboard/Components/Controls/AspireMenuButton.razor |
Adds menu layout wrapper class. |
src/Aspire.Dashboard/Components/Controls/AspireMenu.razor.cs |
Handles stale close callbacks during reopening. |
eng/Versions.props |
Adds .NET 11 package version properties. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
ec3a5ce
into
release/13.6
|
✅ No documentation update needed. Step 5 branch taken: This PR is a backport ( Exclusion reasons (from signals.json): base branch is Triggered signals (2, not acted on due to exclusion): Documentation for the underlying Dashboard popup/focus fixes should be authored (if needed) against the original forward PRs (#20360, #20341, #20362) on the default branch, not against this backport. |
Backports #20360, #20341, and #20362 to release/13.6. ## Customer Impact Dashboard users can encounter popups that are misaligned, overflow the viewport, or disappear while metric dimensions update. Resource graph context menus may not reopen immediately after dismissal, and terminal auto-fit can move focus away from the active control. ## Testing Validated on the release/13.6 backport branch: 570 Aspire.Dashboard.Components.Tests and 1,892 Aspire.Dashboard.Tests passed, excluding quarantined and outerloop tests. The source changes also include targeted Playwright coverage for resources, terminal, navigation, authentication, accessibility, and popup behavior. `git diff --check` passes. ## Risk Medium. The production changes are localized to Dashboard popup, focus, and component-state behavior with no public API changes, but this combines three related changes and a broad component-test migration. ## Regression? Yes — fixes Dashboard behavior and test regressions introduced by the Fluent UI v5 migration.

Backports #20360, #20341, and #20362 to release/13.6.
Customer Impact
Dashboard users can encounter popups that are misaligned, overflow the viewport, or disappear while metric dimensions update. Resource graph context menus may not reopen immediately after dismissal, and terminal auto-fit can move focus away from the active control.
Testing
Validated on the release/13.6 backport branch: 570 Aspire.Dashboard.Components.Tests and 1,892 Aspire.Dashboard.Tests passed, excluding quarantined and outerloop tests. The source changes also include targeted Playwright coverage for resources, terminal, navigation, authentication, accessibility, and popup behavior.
git diff --checkpasses.Risk
Medium. The production changes are localized to Dashboard popup, focus, and component-state behavior with no public API changes, but this combines three related changes and a broad component-test migration.
Regression?
Yes — fixes Dashboard behavior and test regressions introduced by the Fluent UI v5 migration.