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