diff --git a/public/app/features/folders/FolderSettingsPage.test.tsx b/public/app/features/folders/FolderSettingsPage.test.tsx
index 3362c5523a8..6855a2f0547 100644
--- a/public/app/features/folders/FolderSettingsPage.test.tsx
+++ b/public/app/features/folders/FolderSettingsPage.test.tsx
@@ -1,10 +1,13 @@
-import { render, screen } from '@testing-library/react';
+import { render, screen, within } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import React from 'react';
+import { Provider } from 'react-redux';
import { mockToolkitActionCreator } from 'test/core/redux/mocks';
import { NavModel } from '@grafana/data';
import { getRouteComponentProps } from 'app/core/navigation/__mocks__/routeProps';
+import { ModalManager } from 'app/core/services/ModalManager';
+import { configureStore } from 'app/store/configureStore';
import { FolderSettingsPage, Props } from './FolderSettingsPage';
import { setFolderTitle } from './state/reducers';
@@ -34,7 +37,11 @@ const setup = (propOverrides?: object) => {
Object.assign(props, propOverrides);
- render();
+ render(
+
+
+
+ );
};
describe('FolderSettingsPage', () => {
@@ -157,4 +164,29 @@ describe('FolderSettingsPage', () => {
const deleteButton = screen.getByRole('button', { name: 'Delete' });
expect(deleteButton).not.toBeDisabled();
});
+
+ it('should call the publish event when the deleteButton is clicked', async () => {
+ new ModalManager().init();
+ const mockDeleteFolder = jest.fn();
+ const mockFolder = {
+ id: 1,
+ uid: '1234',
+ title: 'loading',
+ canSave: true,
+ canDelete: true,
+ hasChanged: true,
+ version: 1,
+ };
+ setup({
+ folder: mockFolder,
+ deleteFolder: mockDeleteFolder,
+ });
+ const deleteButton = screen.getByRole('button', { name: 'Delete' });
+ await userEvent.click(deleteButton);
+ const deleteModal = screen.getByRole('dialog', { name: 'Delete' });
+ expect(deleteModal).toBeInTheDocument();
+ const deleteButtonModal = within(deleteModal).getByRole('button', { name: 'Confirm Modal Danger Button' });
+ await userEvent.click(deleteButtonModal);
+ expect(mockDeleteFolder).toHaveBeenCalledWith(mockFolder.uid);
+ });
});