From 4fcd529d0ed504cad4f29044eb267904a578850a Mon Sep 17 00:00:00 2001
From: Yaelle Chaudy <42030685+yaelleC@users.noreply.github.com>
Date: Thu, 16 Jan 2025 12:37:45 +0100
Subject: [PATCH] Dashboards Versions: Add event to dashboards restore version
(#98855)
* Add event to dashboards restore version
* moved changes to scenes instead
* remove last non-scene change
* Move events to centralised file
* remove ? from properties copy pasta
* Add tests
---
.../version-history/RevertDashboardModal.tsx | 2 +
.../VersionHistoryButtons.test.tsx | 30 ++++++++++
.../version-history/VersionHistoryButtons.tsx | 11 +++-
.../VersionHistoryTable.test.tsx | 57 +++++++++++++++++++
.../version-history/VersionHistoryTable.tsx | 6 ++
.../dashboard-scene/utils/interactions.ts | 8 +++
6 files changed, 113 insertions(+), 1 deletion(-)
create mode 100644 public/app/features/dashboard-scene/settings/version-history/VersionHistoryButtons.test.tsx
create mode 100644 public/app/features/dashboard-scene/settings/version-history/VersionHistoryTable.test.tsx
diff --git a/public/app/features/dashboard-scene/settings/version-history/RevertDashboardModal.tsx b/public/app/features/dashboard-scene/settings/version-history/RevertDashboardModal.tsx
index c3e44c132d1..c0b4ee0318a 100644
--- a/public/app/features/dashboard-scene/settings/version-history/RevertDashboardModal.tsx
+++ b/public/app/features/dashboard-scene/settings/version-history/RevertDashboardModal.tsx
@@ -1,5 +1,6 @@
import { ConfirmModal } from '@grafana/ui';
import { useAppNotification } from 'app/core/copy/appNotification';
+import { DashboardInteractions } from 'app/features/dashboard-scene/utils/interactions';
import { DecoratedRevisionModel } from '../VersionsEditView';
@@ -17,6 +18,7 @@ export const RevertDashboardModal = ({ hideModal, onRestore, version }: RevertDa
if (success) {
notifyApp.success('Dashboard restored', `Restored from version ${version.version}`);
+ DashboardInteractions.versionRestoreClicked({ version: version.version, confirm: true });
} else {
notifyApp.error('Dashboard restore failed', `Failed to restore from version ${version.version}`);
}
diff --git a/public/app/features/dashboard-scene/settings/version-history/VersionHistoryButtons.test.tsx b/public/app/features/dashboard-scene/settings/version-history/VersionHistoryButtons.test.tsx
new file mode 100644
index 00000000000..24299a93e0b
--- /dev/null
+++ b/public/app/features/dashboard-scene/settings/version-history/VersionHistoryButtons.test.tsx
@@ -0,0 +1,30 @@
+import { render, screen, fireEvent } from '@testing-library/react';
+
+import { DashboardInteractions } from '../../utils/interactions';
+
+import { VersionsHistoryButtons } from './VersionHistoryButtons';
+
+jest.mock('../../utils/interactions', () => ({
+ DashboardInteractions: {
+ showMoreVersionsClicked: jest.fn(),
+ },
+}));
+
+describe('VersionHistoryButtons', () => {
+ it('triggers a user event when the show more versions is clicked', async () => {
+ render(
+
+ );
+
+ const showMoreButton = screen.getByText('Show more versions');
+ fireEvent.click(showMoreButton);
+
+ expect(DashboardInteractions.showMoreVersionsClicked).toHaveBeenCalledWith();
+ });
+});
diff --git a/public/app/features/dashboard-scene/settings/version-history/VersionHistoryButtons.tsx b/public/app/features/dashboard-scene/settings/version-history/VersionHistoryButtons.tsx
index 1287b059982..d1a3308ab67 100644
--- a/public/app/features/dashboard-scene/settings/version-history/VersionHistoryButtons.tsx
+++ b/public/app/features/dashboard-scene/settings/version-history/VersionHistoryButtons.tsx
@@ -1,4 +1,5 @@
import { Tooltip, Button, Stack } from '@grafana/ui';
+import { DashboardInteractions } from 'app/features/dashboard-scene/utils/interactions';
type VersionsButtonsType = {
hasMore: boolean;
@@ -16,7 +17,15 @@ export const VersionsHistoryButtons = ({
}: VersionsButtonsType) => (
{hasMore && (
-