From cd563a1c3c0a279488195dee08f6ef7133bc3215 Mon Sep 17 00:00:00 2001 From: Sebastian Sangervasi Date: Thu, 20 Oct 2022 13:57:44 -0700 Subject: [PATCH 1/3] [1436] ui/cy: Test that demonstrates the bug The subsequent commit fixes this. --- clients/admin-ui/cypress/e2e/datasets.cy.ts | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/clients/admin-ui/cypress/e2e/datasets.cy.ts b/clients/admin-ui/cypress/e2e/datasets.cy.ts index e371a004423..a5412f99e7d 100644 --- a/clients/admin-ui/cypress/e2e/datasets.cy.ts +++ b/clients/admin-ui/cypress/e2e/datasets.cy.ts @@ -160,15 +160,31 @@ describe("Dataset", () => { it("Can edit dataset fields", () => { const newDescription = "new description"; cy.visit("/dataset/demo_users_dataset"); - cy.getByTestId("field-row-uuid").click(); + cy.getByTestId("collection-select").select("products"); + cy.getByTestId("field-row-name").click(); cy.getByTestId("input-description").clear().type(newDescription); + + // Updating the dataset will trigger a refresh of the GET request. + cy.fixture("dataset.json").then((draftDataset) => { + draftDataset.collections[1].fields[1].description = newDescription; + cy.intercept("GET", "/api/v1/dataset/*", { + body: { ...draftDataset }, + }).as("getDataset"); + }); + cy.getByTestId("save-btn").click({ force: true }); + cy.wait("@putDataset").then((interception) => { const { body } = interception.request; - expect(body.collections[0].fields[5].description).to.eql( + expect(body.collections[1].fields[1].description).to.eql( newDescription ); }); + cy.wait("@getDataset"); + + // The same dataset that was being edited should be shown in the table, updated. + cy.getByTestId("edit-drawer-content").should("not.exist"); + cy.getByTestId("field-row-name").should("contain", newDescription); }); it("Can edit dataset collections", () => { From 6ec3eddd4f037b49418800a2e9a2acac9e83a834 Mon Sep 17 00:00:00 2001 From: Sebastian Sangervasi Date: Thu, 20 Oct 2022 12:36:25 -0700 Subject: [PATCH 2/3] ui/dataset: Only reset collection index on actual dataset update --- clients/admin-ui/src/features/dataset/DatasetCollectionView.tsx | 1 - clients/admin-ui/src/features/dataset/dataset.slice.ts | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/clients/admin-ui/src/features/dataset/DatasetCollectionView.tsx b/clients/admin-ui/src/features/dataset/DatasetCollectionView.tsx index 6e25f345584..5f09d1a8407 100644 --- a/clients/admin-ui/src/features/dataset/DatasetCollectionView.tsx +++ b/clients/admin-ui/src/features/dataset/DatasetCollectionView.tsx @@ -71,7 +71,6 @@ const DatasetCollectionView = ({ fidesKey }: Props) => { useEffect(() => { if (dataset) { dispatch(setActiveDatasetFidesKey(dataset.fides_key)); - dispatch(setActiveCollectionIndex(0)); } }, [dispatch, dataset]); diff --git a/clients/admin-ui/src/features/dataset/dataset.slice.ts b/clients/admin-ui/src/features/dataset/dataset.slice.ts index 51ab93d21eb..f59b44344a5 100644 --- a/clients/admin-ui/src/features/dataset/dataset.slice.ts +++ b/clients/admin-ui/src/features/dataset/dataset.slice.ts @@ -100,7 +100,7 @@ export const datasetSlice = createSlice({ // Clear out the related fields when the dataset is changed. draftState.activeDatasetFidesKey = action.payload; - draftState.activeCollectionIndex = undefined; + draftState.activeCollectionIndex = 0; draftState.activeFieldIndex = undefined; }, setActiveCollectionIndex: ( From c3170aea8eedf0ce50bb4c9663db223a20d4c6dd Mon Sep 17 00:00:00 2001 From: Sebastian Sangervasi Date: Thu, 20 Oct 2022 14:02:54 -0700 Subject: [PATCH 3/3] Update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0e3d7f7e82..c489fea9601 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,10 @@ The types of changes are: * Add unlinked docs and fix any remaining broken links [#1266](https://github.com/ethyca/fides/pull/1266) +### Fixed + +* After editing a dataset, the table will stay on the previously selected collection instead of resetting to the first one. [#1511](https://github.com/ethyca/fides/pull/1511) + ## [1.9.2](https://github.com/ethyca/fides/compare/1.9.1...1.9.2) ### Deprecated