diff --git a/web/app/components/app/app-publisher/__tests__/version-info-modal.spec.tsx b/web/app/components/app/app-publisher/__tests__/version-info-modal.spec.tsx index 942a199a87..252eddb47e 100644 --- a/web/app/components/app/app-publisher/__tests__/version-info-modal.spec.tsx +++ b/web/app/components/app/app-publisher/__tests__/version-info-modal.spec.tsx @@ -103,6 +103,22 @@ describe('VersionInfoModal', () => { expect(handleClose).toHaveBeenCalledTimes(1) }) + it('should close when the close button is clicked', () => { + const handleClose = vi.fn() + + render( + , + ) + + fireEvent.click(screen.getByRole('button', { name: 'operation.close' })) + + expect(handleClose).toHaveBeenCalledTimes(1) + }) + it('should validate release note length and clear previous errors before publishing', () => { const handlePublish = vi.fn() const handleClose = vi.fn() diff --git a/web/app/components/app/app-publisher/version-info-modal.tsx b/web/app/components/app/app-publisher/version-info-modal.tsx index 264975a08b..4e5493d1b2 100644 --- a/web/app/components/app/app-publisher/version-info-modal.tsx +++ b/web/app/components/app/app-publisher/version-info-modal.tsx @@ -79,9 +79,14 @@ const VersionInfoModal: FC = ({
{versionInfo?.marked_name ? t('versionHistory.editVersionInfo', { ns: 'workflow' }) : t('versionHistory.nameThisVersion', { ns: 'workflow' })}
-
- -
+
diff --git a/web/app/components/datasets/create/file-preview/__tests__/index.spec.tsx b/web/app/components/datasets/create/file-preview/__tests__/index.spec.tsx index 6839a8cc87..c016807186 100644 --- a/web/app/components/datasets/create/file-preview/__tests__/index.spec.tsx +++ b/web/app/components/datasets/create/file-preview/__tests__/index.spec.tsx @@ -73,9 +73,9 @@ describe('FilePreview', () => { }) it('should render close button with XMarkIcon', async () => { - const { container } = renderFilePreview() + renderFilePreview() - const closeButton = container.querySelector('.cursor-pointer') + const closeButton = screen.getByRole('button', { name: /operation\.close$/ }) expect(closeButton)!.toBeInTheDocument() const xMarkIcon = closeButton?.querySelector('svg') expect(xMarkIcon)!.toBeInTheDocument() @@ -269,20 +269,18 @@ describe('FilePreview', () => { describe('User Interactions', () => { it('should call hidePreview when close button is clicked', async () => { const hidePreview = vi.fn() - const { container } = renderFilePreview({ hidePreview }) + renderFilePreview({ hidePreview }) - const closeButton = container.querySelector('.cursor-pointer') as HTMLElement - fireEvent.click(closeButton) + fireEvent.click(screen.getByRole('button', { name: /operation\.close$/ })) expect(hidePreview).toHaveBeenCalledTimes(1) }) it('should call hidePreview with event object when clicked', async () => { const hidePreview = vi.fn() - const { container } = renderFilePreview({ hidePreview }) + renderFilePreview({ hidePreview }) - const closeButton = container.querySelector('.cursor-pointer') as HTMLElement - fireEvent.click(closeButton) + fireEvent.click(screen.getByRole('button', { name: /operation\.close$/ })) // Assert - onClick receives the event object expect(hidePreview).toHaveBeenCalled() @@ -291,9 +289,9 @@ describe('FilePreview', () => { it('should handle multiple clicks on close button', async () => { const hidePreview = vi.fn() - const { container } = renderFilePreview({ hidePreview }) + renderFilePreview({ hidePreview }) - const closeButton = container.querySelector('.cursor-pointer') as HTMLElement + const closeButton = screen.getByRole('button', { name: /operation\.close$/ }) fireEvent.click(closeButton) fireEvent.click(closeButton) fireEvent.click(closeButton) diff --git a/web/app/components/datasets/create/file-preview/index.tsx b/web/app/components/datasets/create/file-preview/index.tsx index 2b4041eaf2..ae1cdd3dd1 100644 --- a/web/app/components/datasets/create/file-preview/index.tsx +++ b/web/app/components/datasets/create/file-preview/index.tsx @@ -50,9 +50,14 @@ const FilePreview = ({
{t('stepOne.filePreview', { ns: 'datasetCreation' })} -
- -
+
{getFileName(file)} diff --git a/web/app/components/datasets/create/notion-page-preview/__tests__/index.spec.tsx b/web/app/components/datasets/create/notion-page-preview/__tests__/index.spec.tsx index 572677ced7..d69a3b5513 100644 --- a/web/app/components/datasets/create/notion-page-preview/__tests__/index.spec.tsx +++ b/web/app/components/datasets/create/notion-page-preview/__tests__/index.spec.tsx @@ -118,9 +118,9 @@ describe('NotionPagePreview', () => { }) it('should render close button with XMarkIcon', async () => { - const { container } = await renderNotionPagePreview() + await renderNotionPagePreview() - const closeButton = container.querySelector('.cursor-pointer') + const closeButton = screen.getByRole('button', { name: /operation\.close$/ }) expect(closeButton).toBeInTheDocument() const xMarkIcon = closeButton?.querySelector('svg') expect(xMarkIcon).toBeInTheDocument() @@ -348,19 +348,18 @@ describe('NotionPagePreview', () => { describe('User Interactions', () => { it('should call hidePreview when close button is clicked', async () => { const hidePreview = vi.fn() - const { container } = await renderNotionPagePreview({ hidePreview }) + await renderNotionPagePreview({ hidePreview }) - const closeButton = container.querySelector('.cursor-pointer') as HTMLElement - fireEvent.click(closeButton) + fireEvent.click(screen.getByRole('button', { name: /operation\.close$/ })) expect(hidePreview).toHaveBeenCalledTimes(1) }) it('should handle multiple clicks on close button', async () => { const hidePreview = vi.fn() - const { container } = await renderNotionPagePreview({ hidePreview }) + await renderNotionPagePreview({ hidePreview }) - const closeButton = container.querySelector('.cursor-pointer') as HTMLElement + const closeButton = screen.getByRole('button', { name: /operation\.close$/ }) fireEvent.click(closeButton) fireEvent.click(closeButton) fireEvent.click(closeButton) diff --git a/web/app/components/datasets/create/notion-page-preview/index.tsx b/web/app/components/datasets/create/notion-page-preview/index.tsx index 116090413a..c2eed225c0 100644 --- a/web/app/components/datasets/create/notion-page-preview/index.tsx +++ b/web/app/components/datasets/create/notion-page-preview/index.tsx @@ -52,9 +52,14 @@ const NotionPagePreview = ({
{t('stepOne.pagePreview', { ns: 'datasetCreation' })} -
- -
+
{ render() - // Assert - the close button container is a div with cursor-pointer - const closeButton = screen.getByText(/pagePreview/i).parentElement?.querySelector('.cursor-pointer') - expect(closeButton).toBeInTheDocument() + expect(screen.getByRole('button', { name: /operation\.close$/ })).toBeInTheDocument() }) }) @@ -95,11 +93,7 @@ describe('WebsitePreview', () => { const payload = createPayload() render() - // Act - find the close button div with cursor-pointer class - const closeButton = screen.getByText(/pagePreview/i) - .closest('[class*="title"]')! - .querySelector('.cursor-pointer') as HTMLElement - fireEvent.click(closeButton) + fireEvent.click(screen.getByRole('button', { name: /operation\.close$/ })) expect(mockHidePreview).toHaveBeenCalledTimes(1) }) @@ -108,9 +102,7 @@ describe('WebsitePreview', () => { const payload = createPayload() render() - const closeButton = screen.getByText(/pagePreview/i) - .closest('[class*="title"]')! - .querySelector('.cursor-pointer') as HTMLElement + const closeButton = screen.getByRole('button', { name: /operation\.close$/ }) fireEvent.click(closeButton) fireEvent.click(closeButton) diff --git a/web/app/components/datasets/create/website/preview.tsx b/web/app/components/datasets/create/website/preview.tsx index a46437325f..edbd72d9a1 100644 --- a/web/app/components/datasets/create/website/preview.tsx +++ b/web/app/components/datasets/create/website/preview.tsx @@ -22,9 +22,14 @@ const WebsitePreview = ({
{t('stepOne.pagePreview', { ns: 'datasetCreation' })} -
- -
+
{payload.title} diff --git a/web/app/components/datasets/rename-modal/__tests__/index.spec.tsx b/web/app/components/datasets/rename-modal/__tests__/index.spec.tsx index 4f8a421a52..ac4075fa5b 100644 --- a/web/app/components/datasets/rename-modal/__tests__/index.spec.tsx +++ b/web/app/components/datasets/rename-modal/__tests__/index.spec.tsx @@ -167,11 +167,7 @@ describe('RenameDatasetModal', () => { it('should render close icon button', () => { render() - // The modal renders with title and other elements - // The close functionality is tested in user interactions - // The modal renders with title and other elements - // The close functionality is tested in user interactions - expect(screen.getByText('datasetSettings.title'))!.toBeInTheDocument() + expect(screen.getByRole('button', { name: /operation\.close$/ }))!.toBeInTheDocument() }) it('should render form labels', () => { @@ -296,14 +292,10 @@ describe('RenameDatasetModal', () => { }) it('should call onClose when close icon is clicked', () => { - // This test is covered by the cancel button test - // The close icon functionality works the same way as cancel button const handleClose = vi.fn() render() - // Use the cancel button to verify close callback works - const cancelButton = screen.getByText('common.operation.cancel') - fireEvent.click(cancelButton) + fireEvent.click(screen.getByRole('button', { name: /operation\.close$/ })) expect(handleClose).toHaveBeenCalledTimes(1) }) diff --git a/web/app/components/datasets/rename-modal/index.tsx b/web/app/components/datasets/rename-modal/index.tsx index ae8f9f5d6a..d2750ae21b 100644 --- a/web/app/components/datasets/rename-modal/index.tsx +++ b/web/app/components/datasets/rename-modal/index.tsx @@ -93,9 +93,14 @@ const RenameDatasetModal = ({ show, dataset, onSuccess, onClose }: RenameDataset
{t('title', { ns: 'datasetSettings' })}
-
- -
+