Add MSW integration specs for the DAP Impact dashboard

What does this MR do and why?

  • Explore analytics dashboards: customSystemDashboard returns a resource-not-available GraphQL error (not null) when the dashboard is behind a disabled/not-rolled-out feature flag, e.g. dap_impact_v1.
  • dashboard_loader.vue treated that error the same as any load failure: "Failed to load dashboard" alert plus a Sentry report. A slug matching nothing rendered an empty dashboard shell with filters instead of a not found state.
  • Fix: both cases now show the existing "Dashboard not found" empty state with a "View available dashboards" link back to the list. Other errors still show the alert.
  • Breadcrumb now reads "Dashboard not found" for this case too — breadcrumb state outlives the page, so it kept the previous dashboard's name otherwise.
  • Clears the loaded dashboard on this error so changing the slug in place doesn't keep showing the old dashboard.
  • Adds MSW integration specs for the not found case on the DAP Impact system dashboard: positive control (user who can see it), and not found state (flag off / not enabled) with no title, tabs, filters, or Sentry report.
  • Fixtures come from a new RSpec generator, ee/spec/frontend/fixtures/analytics_dashboards_integration.rb, not hand-written.
  • More DAP Impact MSW coverage (panels, scope, views, reading-order flag, licence constraint) is follow-up work.

References

Screenshots or screen recordings

Before After
Dashboard hidden from the user (dap_impact_v1 off) before_hidden after_hidden
Slug that matches no dashboard before_unknown after_hidden

How to set up and validate locally

  1. In rails console: Feature.enable(:explore_analytics_dashboards) and Feature.enable(:dap_impact_v1).
  2. Visit http://gdk.test:3000/explore/analytics_dashboards/dap_impact — dashboard loads.
  3. Feature.disable(:dap_impact_v1) and reload — "Dashboard not found" with a link back to the list, no error alert, breadcrumb reads "Dashboard not found".
  4. Visit http://gdk.test:3000/explore/analytics_dashboards/does_not_exist — same not found state.

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

🤖 Generated with Claude Code

Edited by Ezekiel Kigbo

Merge request reports

Loading
Loading