Skip to content

Commit 5691991

Browse files
authored
fix: Export dialog is interactive (#1167)
1 parent 821b63a commit 5691991

File tree

4 files changed

+15
-6
lines changed

4 files changed

+15
-6
lines changed

web_ui/src/pages/project-details/components/project-dataset/dataset-tab-list.component.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import { CollapsedItemsPicker } from '../../../../shared/components/collapsed-it
1010
import { TabItem } from '../../../../shared/components/tabs/tabs.interface';
1111
import { hasEqualId } from '../../../../shared/utils';
1212
import { useProject } from '../../providers/project-provider/project-provider.component';
13+
import { ExportDatasetDialog } from './export-dataset/export-dataset-dialog.component';
14+
import { useExportImportDatasetDialogStates } from './export-dataset/export-import-dataset-dialog-provider.component';
1315
import { ProjectDatasetTabActions } from './project-dataset-tab-actions.component';
1416
import { useSelectedDataset } from './use-selected-dataset/use-selected-dataset.hook';
1517
import { MAX_NUMBER_OF_DISPLAYED_DATASETS } from './utils';
@@ -24,6 +26,8 @@ export const DatasetTabList = () => {
2426

2527
const { createDataset, pinnedDatasets, collapsedDatasets, handleCreateDataset, handleSelectDataset } = useDataset();
2628

29+
const { exportDialogState } = useExportImportDatasetDialogStates();
30+
2731
const hasSelectedPinnedDataset = pinnedDatasets.find(hasEqualId(selectedDataset.id)) !== undefined;
2832
const collapsedPickerItems = collapsedDatasets.map(({ id, name }) => ({ id, name }));
2933

@@ -43,6 +47,8 @@ export const DatasetTabList = () => {
4347
)}
4448
</TabList>
4549

50+
<ExportDatasetDialog triggerState={exportDialogState} datasetName={selectedDataset.name} />
51+
4652
{numberOfDatasets > MAX_NUMBER_OF_DISPLAYED_DATASETS ? (
4753
<CollapsedItemsPicker
4854
items={collapsedPickerItems}

web_ui/src/pages/project-details/components/project-dataset/project-dataset-tab-actions.component.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import { DeleteDialog } from '../../../../shared/components/delete-dialog/delete
1919
import { EditNameDialog } from '../../../../shared/components/edit-name-dialog/edit-name-dialog.component';
2020
import { useMedia } from '../../../media/providers/media-provider.component';
2121
import { useProject } from '../../providers/project-provider/project-provider.component';
22-
import { ExportDatasetDialog } from './export-dataset/export-dataset-dialog.component';
2322
import { useExportImportDatasetDialogStates } from './export-dataset/export-import-dataset-dialog-provider.component';
2423
import { useSelectedDataset } from './use-selected-dataset/use-selected-dataset.hook';
2524
import { DatasetTabActions, getDatasetTabActions } from './utils';
@@ -39,7 +38,7 @@ export const ProjectDatasetTabActions = ({ dataset }: ProjectDatasetTabActionsPr
3938
const updateDatasetDialogState = useOverlayTriggerState({});
4039
const { datasetImportDialogState: datasetImportDialogTrigger, exportDialogState } =
4140
useExportImportDatasetDialogStates();
42-
const { id: selectedDatasetId, name: selectedDatasetName } = useSelectedDataset();
41+
const { id: selectedDatasetId } = useSelectedDataset();
4342

4443
const hasMedia = !isEmpty(media);
4544
const datasetNames = project.datasets.map(({ name }) => name);
@@ -109,7 +108,6 @@ export const ProjectDatasetTabActions = ({ dataset }: ProjectDatasetTabActionsPr
109108
names={datasetNames}
110109
title={'dataset name'}
111110
/>
112-
<ExportDatasetDialog triggerState={exportDialogState} datasetName={selectedDatasetName} />
113111
</Flex>
114112
);
115113
};

web_ui/src/pages/project-details/components/project-dataset/project-dataset-tab-actions.test.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,17 +161,21 @@ describe('ProjectDatasetTabActions', () => {
161161
});
162162

163163
it('should show export dataset dialog', async () => {
164+
const mockOpen = jest.fn();
164165
await renderApp({
165166
exportDialogState: {
166167
isOpen: true,
167168
setOpen: jest.fn(),
168-
open: jest.fn(),
169+
open: mockOpen,
169170
close: jest.fn(),
170171
toggle: jest.fn(),
171172
},
172173
});
173174

174-
expect(screen.getByText('Select dataset export format')).toBeInTheDocument();
175+
fireEvent.click(screen.getByRole('button', { name: 'open dataset menu' }));
176+
fireEvent.click(screen.getByRole('menuitem', { name: DatasetTabActions.ExportDataset }));
177+
178+
expect(mockOpen).toHaveBeenCalled();
175179
});
176180

177181
describe('Menu actions', () => {

web_ui/tests/features/project-dataset/export-dataset.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { expect, Page } from '@playwright/test';
66
import { JobState, JobStepState, JobType } from '../../../src/core/jobs/jobs.const';
77
import { test } from '../../fixtures/base-test';
88
import { switchCallsAfter } from '../../utils/api';
9-
import { getMockedJob, projects } from './mocks';
9+
import { getMockedJob, projects, projectWithTwoDatasets } from './mocks';
1010

1111
const [project] = projects.projects;
1212

@@ -79,6 +79,7 @@ test.describe('export dataset', () => {
7979
registerApiResponse('TriggerDatasetExport', async (_, res, ctx) =>
8080
res(ctx.json({ export_dataset_id: exportId, status_url: `url/test`, job_id: exportId }))
8181
);
82+
registerApiResponse('GetProjectInfo', (_, res, ctx) => res(ctx.json(projectWithTwoDatasets)));
8283

8384
registerApiResponse(
8485
'GetJob',

0 commit comments

Comments
 (0)