Chore: Improve FolderSettingsPage test (#53601)
This commit is contained in:
@@ -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(<FolderSettingsPage {...props} />);
|
||||
render(
|
||||
<Provider store={configureStore()}>
|
||||
<FolderSettingsPage {...props} />
|
||||
</Provider>
|
||||
);
|
||||
};
|
||||
|
||||
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);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user