From 99935fec9466d4f774715ea974769132c9f170c5 Mon Sep 17 00:00:00 2001 From: Mateusz Kwasniewski Date: Thu, 28 Mar 2024 11:15:26 +0100 Subject: [PATCH] feat: keep parent selection in edit dependency dialogue (#6727) --- .../feature/Dependencies/AddDependencyDialogue.test.tsx | 6 ++++-- .../feature/Dependencies/AddDependencyDialogue.tsx | 6 +++++- .../FeatureOverviewSidePanelDetails/DependencyRow.tsx | 1 + .../FeatureOverviewSidePanelDetails.test.tsx | 3 ++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/frontend/src/component/feature/Dependencies/AddDependencyDialogue.test.tsx b/frontend/src/component/feature/Dependencies/AddDependencyDialogue.test.tsx index 36d6ba62da..8aa4eed12b 100644 --- a/frontend/src/component/feature/Dependencies/AddDependencyDialogue.test.tsx +++ b/frontend/src/component/feature/Dependencies/AddDependencyDialogue.test.tsx @@ -81,13 +81,14 @@ test('Delete dependency', async () => { }); }); -test('Add dependency', async () => { +test('Edit dependency', async () => { let closed = false; setupApi(); render( { closed = true; @@ -95,7 +96,7 @@ test('Add dependency', async () => { />, ); - const removeDependency = await screen.findByText('Remove'); + const removeDependency = await screen.findByText('Add'); await waitFor(() => { expect(removeDependency).not.toBeDisabled(); @@ -103,6 +104,7 @@ test('Add dependency', async () => { // Open the dropdown by selecting the role. const dropdown = screen.queryAllByRole('combobox')[0]; + expect(dropdown.innerHTML).toBe('parentB'); userEvent.click(dropdown); const parentAOption = await screen.findByText('parentA'); diff --git a/frontend/src/component/feature/Dependencies/AddDependencyDialogue.tsx b/frontend/src/component/feature/Dependencies/AddDependencyDialogue.tsx index 2c7f29e20e..35a0111db2 100644 --- a/frontend/src/component/feature/Dependencies/AddDependencyDialogue.tsx +++ b/frontend/src/component/feature/Dependencies/AddDependencyDialogue.tsx @@ -18,6 +18,7 @@ import { DependenciesUpgradeAlert } from './DependenciesUpgradeAlert'; interface IAddDependencyDialogueProps { project: string; featureId: string; + parentFeatureId?: string; showDependencyDialogue: boolean; onClose: () => void; } @@ -161,10 +162,13 @@ const useManageDependency = ( export const AddDependencyDialogue = ({ project, featureId, + parentFeatureId, showDependencyDialogue, onClose, }: IAddDependencyDialogueProps) => { - const [parent, setParent] = useState(REMOVE_DEPENDENCY_OPTION.key); + const [parent, setParent] = useState( + parentFeatureId || REMOVE_DEPENDENCY_OPTION.key, + ); const handleClick = useManageDependency( project, featureId, diff --git a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewSidePanel/FeatureOverviewSidePanelDetails/DependencyRow.tsx b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewSidePanel/FeatureOverviewSidePanelDetails/DependencyRow.tsx index 95da86a358..c2269af0fa 100644 --- a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewSidePanel/FeatureOverviewSidePanelDetails/DependencyRow.tsx +++ b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewSidePanel/FeatureOverviewSidePanelDetails/DependencyRow.tsx @@ -164,6 +164,7 @@ export const DependencyRow: FC<{ feature: IFeatureToggle }> = ({ feature }) => { setShowDependencyDialogue(false)} showDependencyDialogue={showDependencyDialogue} /> diff --git a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewSidePanel/FeatureOverviewSidePanelDetails/FeatureOverviewSidePanelDetails.test.tsx b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewSidePanel/FeatureOverviewSidePanelDetails/FeatureOverviewSidePanelDetails.test.tsx index 1ff9553611..b9628e6f87 100644 --- a/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewSidePanel/FeatureOverviewSidePanelDetails/FeatureOverviewSidePanelDetails.test.tsx +++ b/frontend/src/component/feature/FeatureView/FeatureOverview/FeatureOverviewSidePanel/FeatureOverviewSidePanelDetails/FeatureOverviewSidePanelDetails.test.tsx @@ -18,7 +18,7 @@ const setupApi = () => { testServerRoute( server, '/api/admin/projects/default/features/feature/parents', - [], + ['some_parent'], ); testServerRoute( server, @@ -243,6 +243,7 @@ test('delete dependency with change request', async () => { }); test('edit dependency', async () => { + setupChangeRequestApi(); render(