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); + }); });