From cb18a868ee237f19a73bf3c17fc7d3bd888d8486 Mon Sep 17 00:00:00 2001 From: Damian Lasecki Date: Mon, 27 Apr 2026 19:34:12 +0200 Subject: [PATCH 1/3] feat(metadata-editor): reset setShouldShowOnlyReviewFields on delete action --- .../MetadataSidebarRedesign.tsx | 1 + .../MetadataSidebarRedesign.test.tsx | 33 ++++++++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/elements/content-sidebar/MetadataSidebarRedesign.tsx b/src/elements/content-sidebar/MetadataSidebarRedesign.tsx index d683c6d2f6..c1a6b36ddd 100644 --- a/src/elements/content-sidebar/MetadataSidebarRedesign.tsx +++ b/src/elements/content-sidebar/MetadataSidebarRedesign.tsx @@ -245,6 +245,7 @@ function MetadataSidebarRedesign({ } clearExtractError(); setEditingTemplate(null); + setShouldShowOnlyReviewFields(false); }; const isExistingMetadataInstance = (): boolean => { diff --git a/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx b/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx index 3bb3a7c391..342d6c7a73 100644 --- a/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx +++ b/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx @@ -4,7 +4,7 @@ import { RouteComponentProps } from 'react-router-dom'; import { createMemoryHistory } from 'history'; import { type MetadataTemplate, type MetadataTemplateInstance } from '@box/metadata-editor'; import { FIELD_PERMISSIONS_CAN_UPLOAD, ERROR_CODE_METADATA_STRUCTURED_TEXT_REP } from '../../../constants'; -import { screen, render, waitFor } from '../../../test-utils/testing-library'; +import { screen, render, waitFor, within } from '../../../test-utils/testing-library'; import { MetadataSidebarRedesignComponent as MetadataSidebarRedesign, type MetadataSidebarRedesignProps, @@ -354,6 +354,37 @@ describe('elements/content-sidebar/Metadata/MetadataSidebarRedesign', () => { expect(screen.getByRole('heading', { level: 4, name: 'Visible Template' })).toBeInTheDocument(); }); + test('should call handleDeleteMetadataInstance when delete button is clicked', async () => { + const handleDeleteMetadataInstance = jest.fn(); + mockUseSidebarMetadataFetcher.mockReturnValue({ + clearExtractError: jest.fn(), + extractSuggestions: jest.fn(), + handleCreateMetadataInstance: jest.fn(), + handleDeleteMetadataInstance, + handleUpdateMetadataInstance: jest.fn(), + templateInstances: [mockCustomTemplateInstance, mockVisibleTemplateInstance], + templates: mockTemplates, + errorMessage: null, + status: STATUS.SUCCESS, + file: mockFile, + extractErrorCode: null, + }); + + renderComponent({}, { 'metadata.deleteConfirmationModalCheckbox.enabled': true }); + + expect(screen.getByText(mockCustomTemplateInstance.fields[0].key)).toBeVisible(); + expect(screen.getByText(mockCustomTemplateInstance.fields[1].key)).toBeVisible(); + + await userEvent.click(screen.getByRole('button', { name: /^Edit\s*$/ })); + await userEvent.click(screen.getByRole('button', { name: 'Delete' })); + + await userEvent.click(screen.getByText('Confirm deletion of Metadata instance')); + const dialog = screen.getByRole('dialog'); + await userEvent.click(within(dialog).getByRole('button', { name: 'Delete' })); + + expect(handleDeleteMetadataInstance).toHaveBeenCalledWith(mockCustomTemplateInstance); + }); + test('should render filter dropdown when more than one templates are present', () => { mockUseSidebarMetadataFetcher.mockReturnValue({ clearExtractError: jest.fn(), From 9fbfdabaa6b8db872545ef30c3bae27a6a3d505f Mon Sep 17 00:00:00 2001 From: Damian Lasecki Date: Tue, 28 Apr 2026 09:06:14 +0200 Subject: [PATCH 2/3] feat(metadata-editor): simplify test selector --- .../content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx b/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx index 342d6c7a73..1940e8ce95 100644 --- a/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx +++ b/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx @@ -375,7 +375,7 @@ describe('elements/content-sidebar/Metadata/MetadataSidebarRedesign', () => { expect(screen.getByText(mockCustomTemplateInstance.fields[0].key)).toBeVisible(); expect(screen.getByText(mockCustomTemplateInstance.fields[1].key)).toBeVisible(); - await userEvent.click(screen.getByRole('button', { name: /^Edit\s*$/ })); + await userEvent.click(screen.getByRole('button', { name: 'Edit' })); await userEvent.click(screen.getByRole('button', { name: 'Delete' })); await userEvent.click(screen.getByText('Confirm deletion of Metadata instance')); From 5abfd529e08944afb3976b527d37cb14f4ffa02f Mon Sep 17 00:00:00 2001 From: Damian Lasecki Date: Tue, 28 Apr 2026 09:13:01 +0200 Subject: [PATCH 3/3] feat(metadata-editor): update mocks --- .../content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx b/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx index 1940e8ce95..49f1d18ac1 100644 --- a/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx +++ b/src/elements/content-sidebar/__tests__/MetadataSidebarRedesign.test.tsx @@ -362,7 +362,7 @@ describe('elements/content-sidebar/Metadata/MetadataSidebarRedesign', () => { handleCreateMetadataInstance: jest.fn(), handleDeleteMetadataInstance, handleUpdateMetadataInstance: jest.fn(), - templateInstances: [mockCustomTemplateInstance, mockVisibleTemplateInstance], + templateInstances: [mockCustomTemplateInstance], templates: mockTemplates, errorMessage: null, status: STATUS.SUCCESS,