|
|
|
@ -4,7 +4,7 @@ import React from 'react'; |
|
|
|
|
import { TestProvider } from 'test/helpers/TestProvider'; |
|
|
|
|
|
|
|
|
|
import { selectors } from '@grafana/e2e-selectors'; |
|
|
|
|
import { sceneGraph } from '@grafana/scenes'; |
|
|
|
|
import { sceneGraph, SceneRefreshPicker } from '@grafana/scenes'; |
|
|
|
|
import { SaveDashboardResponseDTO } from 'app/types'; |
|
|
|
|
|
|
|
|
|
import { transformSaveModelToScene } from '../serialization/transformSaveModelToScene'; |
|
|
|
@ -31,7 +31,7 @@ describe('SaveDashboardDrawer', () => { |
|
|
|
|
setup().openAndRender(); |
|
|
|
|
|
|
|
|
|
expect(await screen.findByText('Save dashboard')).toBeInTheDocument(); |
|
|
|
|
expect(screen.queryByLabelText(selectors.pages.SaveDashboardModal.saveTimerange)).not.toBeInTheDocument(); |
|
|
|
|
expect(screen.queryByTestId(selectors.pages.SaveDashboardModal.saveTimerange)).not.toBeInTheDocument(); |
|
|
|
|
expect(screen.getByText('No changes to save')).toBeInTheDocument(); |
|
|
|
|
expect(screen.queryByLabelText('Tab Changes')).not.toBeInTheDocument(); |
|
|
|
|
}); |
|
|
|
@ -49,7 +49,7 @@ describe('SaveDashboardDrawer', () => { |
|
|
|
|
openAndRender(); |
|
|
|
|
|
|
|
|
|
expect(await screen.findByText('Save dashboard')).toBeInTheDocument(); |
|
|
|
|
expect(screen.queryByLabelText(selectors.pages.SaveDashboardModal.saveTimerange)).toBeInTheDocument(); |
|
|
|
|
expect(screen.queryByTestId(selectors.pages.SaveDashboardModal.saveTimerange)).toBeInTheDocument(); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it('Should update diff when including time range is', async () => { |
|
|
|
@ -60,10 +60,43 @@ describe('SaveDashboardDrawer', () => { |
|
|
|
|
openAndRender(); |
|
|
|
|
|
|
|
|
|
expect(await screen.findByText('Save dashboard')).toBeInTheDocument(); |
|
|
|
|
expect(screen.queryByLabelText(selectors.pages.SaveDashboardModal.saveTimerange)).toBeInTheDocument(); |
|
|
|
|
expect(screen.queryByTestId(selectors.pages.SaveDashboardModal.saveTimerange)).toBeInTheDocument(); |
|
|
|
|
expect(screen.queryByLabelText('Tab Changes')).not.toBeInTheDocument(); |
|
|
|
|
|
|
|
|
|
await userEvent.click(screen.getByLabelText(selectors.pages.SaveDashboardModal.saveTimerange)); |
|
|
|
|
await userEvent.click(screen.getByTestId(selectors.pages.SaveDashboardModal.saveTimerange)); |
|
|
|
|
|
|
|
|
|
expect(await screen.findByLabelText('Tab Changes')).toBeInTheDocument(); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it('When refresh changed show save refresh option', async () => { |
|
|
|
|
const { dashboard, openAndRender } = setup(); |
|
|
|
|
|
|
|
|
|
const refreshPicker = sceneGraph.findObject(dashboard, (obj) => obj instanceof SceneRefreshPicker); |
|
|
|
|
if (refreshPicker instanceof SceneRefreshPicker) { |
|
|
|
|
refreshPicker.setState({ refresh: '5s' }); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
openAndRender(); |
|
|
|
|
|
|
|
|
|
expect(await screen.findByText('Save dashboard')).toBeInTheDocument(); |
|
|
|
|
expect(screen.queryByTestId(selectors.pages.SaveDashboardModal.saveRefresh)).toBeInTheDocument(); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
it('Should update diff when including time range is', async () => { |
|
|
|
|
const { dashboard, openAndRender } = setup(); |
|
|
|
|
|
|
|
|
|
const refreshPicker = sceneGraph.findObject(dashboard, (obj) => obj instanceof SceneRefreshPicker); |
|
|
|
|
if (refreshPicker instanceof SceneRefreshPicker) { |
|
|
|
|
refreshPicker.setState({ refresh: '5s' }); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
openAndRender(); |
|
|
|
|
|
|
|
|
|
expect(await screen.findByText('Save dashboard')).toBeInTheDocument(); |
|
|
|
|
expect(screen.getByTestId(selectors.pages.SaveDashboardModal.saveRefresh)).toBeInTheDocument(); |
|
|
|
|
expect(screen.queryByLabelText('Tab Changes')).not.toBeInTheDocument(); |
|
|
|
|
|
|
|
|
|
await userEvent.click(screen.getByTestId(selectors.pages.SaveDashboardModal.saveRefresh)); |
|
|
|
|
|
|
|
|
|
expect(await screen.findByLabelText('Tab Changes')).toBeInTheDocument(); |
|
|
|
|
}); |
|
|
|
@ -89,7 +122,7 @@ describe('SaveDashboardDrawer', () => { |
|
|
|
|
|
|
|
|
|
mockSaveDashboard(); |
|
|
|
|
|
|
|
|
|
await userEvent.click(await screen.findByLabelText(selectors.pages.SaveDashboardModal.save)); |
|
|
|
|
await userEvent.click(await screen.findByTestId(selectors.pages.SaveDashboardModal.save)); |
|
|
|
|
|
|
|
|
|
const dataSent = saveDashboardMutationMock.mock.calls[0][0]; |
|
|
|
|
expect(dataSent.dashboard.title).toEqual('New title'); |
|
|
|
@ -107,13 +140,13 @@ describe('SaveDashboardDrawer', () => { |
|
|
|
|
|
|
|
|
|
mockSaveDashboard({ saveError: 'version-mismatch' }); |
|
|
|
|
|
|
|
|
|
await userEvent.click(await screen.findByLabelText(selectors.pages.SaveDashboardModal.save)); |
|
|
|
|
await userEvent.click(await screen.findByTestId(selectors.pages.SaveDashboardModal.save)); |
|
|
|
|
|
|
|
|
|
expect(await screen.findByText('Someone else has updated this dashboard')).toBeInTheDocument(); |
|
|
|
|
expect(await screen.findByText('Save and overwrite')).toBeInTheDocument(); |
|
|
|
|
|
|
|
|
|
// Now save and overwrite
|
|
|
|
|
await userEvent.click(await screen.findByLabelText(selectors.pages.SaveDashboardModal.save)); |
|
|
|
|
await userEvent.click(await screen.findByTestId(selectors.pages.SaveDashboardModal.save)); |
|
|
|
|
|
|
|
|
|
const dataSent = saveDashboardMutationMock.mock.calls[1][0]; |
|
|
|
|
expect(dataSent.overwrite).toEqual(true); |
|
|
|
@ -129,7 +162,7 @@ describe('SaveDashboardDrawer', () => { |
|
|
|
|
|
|
|
|
|
mockSaveDashboard(); |
|
|
|
|
|
|
|
|
|
await userEvent.click(await screen.findByLabelText(selectors.pages.SaveDashboardModal.save)); |
|
|
|
|
await userEvent.click(await screen.findByTestId(selectors.pages.SaveDashboardModal.save)); |
|
|
|
|
|
|
|
|
|
const dataSent = saveDashboardMutationMock.mock.calls[0][0]; |
|
|
|
|
expect(dataSent.dashboard.uid).toEqual(''); |
|
|
|
|