From 7406c4ff5141f410a4935cb4dbf86c587516ee59 Mon Sep 17 00:00:00 2001 From: Ashley Harrison Date: Fri, 28 Jul 2023 09:37:56 +0100 Subject: [PATCH] Data sources: Dashboards page now loads correctly from direct url (#72264) * ensure DataSourceDashboardsPage initialises data source settings * fix unit test * apply suggestions from review --- .../features/connections/hooks/useDataSourceSettingsNav.ts | 1 - .../features/connections/pages/DataSourceDashboardsPage.tsx | 2 +- .../datasources/components/DataSourceDashboards.tsx | 6 +++--- .../datasources/pages/DataSourceDashboardsPage.test.tsx | 4 ++-- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/public/app/features/connections/hooks/useDataSourceSettingsNav.ts b/public/app/features/connections/hooks/useDataSourceSettingsNav.ts index 30b7b6addf2..01d7f1cbcff 100644 --- a/public/app/features/connections/hooks/useDataSourceSettingsNav.ts +++ b/public/app/features/connections/hooks/useDataSourceSettingsNav.ts @@ -20,7 +20,6 @@ export function useDataSourceSettingsNav(pageId?: string) { ...nav.main, text: datasource.name, subTitle: `Type: ${datasourcePlugin?.name}`, - active: true, children: (nav.main.children || []).map((navModelItem) => ({ ...navModelItem, url: navModelItem.url?.replace('datasources/edit/', '/connections/datasources/edit/'), diff --git a/public/app/features/connections/pages/DataSourceDashboardsPage.tsx b/public/app/features/connections/pages/DataSourceDashboardsPage.tsx index 56095d29358..14ed508dfbf 100644 --- a/public/app/features/connections/pages/DataSourceDashboardsPage.tsx +++ b/public/app/features/connections/pages/DataSourceDashboardsPage.tsx @@ -8,7 +8,7 @@ import { useDataSourceSettingsNav } from '../hooks/useDataSourceSettingsNav'; export function DataSourceDashboardsPage() { const { uid } = useParams<{ uid: string }>(); - const { navId, pageNav } = useDataSourceSettingsNav(); + const { navId, pageNav } = useDataSourceSettingsNav('dashboards'); return ( diff --git a/public/app/features/datasources/components/DataSourceDashboards.tsx b/public/app/features/datasources/components/DataSourceDashboards.tsx index afc5aff0457..37c8eeaa741 100644 --- a/public/app/features/datasources/components/DataSourceDashboards.tsx +++ b/public/app/features/datasources/components/DataSourceDashboards.tsx @@ -6,7 +6,7 @@ import { loadPluginDashboards } from 'app/features/plugins/admin/state/actions'; import { PluginDashboard, StoreState, useDispatch, useSelector } from 'app/types'; import DashboardTable from '../components/DashboardsTable'; -import { useLoadDataSource } from '../state'; +import { useInitDataSourceSettings } from '../state'; export type Props = { // The UID of the data source @@ -14,7 +14,7 @@ export type Props = { }; export function DataSourceDashboards({ uid }: Props) { - useLoadDataSource(uid); + useInitDataSourceSettings(uid); const dispatch = useDispatch(); const dataSource = useSelector((s: StoreState) => s.dataSources.dataSource); @@ -26,7 +26,7 @@ export function DataSourceDashboards({ uid }: Props) { if (dataSource.id > 0) { dispatch(loadPluginDashboards()); } - }, [dispatch, dataSource]); + }, [dispatch, dataSource.id]); const onImportDashboard = (dashboard: PluginDashboard, overwrite: boolean) => { dispatch( diff --git a/public/app/features/datasources/pages/DataSourceDashboardsPage.test.tsx b/public/app/features/datasources/pages/DataSourceDashboardsPage.test.tsx index 81abac95ef9..3aa51ab03b5 100644 --- a/public/app/features/datasources/pages/DataSourceDashboardsPage.test.tsx +++ b/public/app/features/datasources/pages/DataSourceDashboardsPage.test.tsx @@ -74,9 +74,9 @@ describe('', () => { }); }); - it('should render the dashboards page without an issue', () => { + it('should render the dashboards page without an issue', async () => { setup(uid, store); - expect(screen.queryByText(dataSourceName)).toBeVisible(); + expect(await screen.findByText(dataSourceName)).toBeVisible(); }); });