diff --git a/packages/core/admin/admin/src/content-manager/components/DynamicTable/BulkActionsBar/index.js b/packages/core/admin/admin/src/content-manager/components/DynamicTable/BulkActionsBar/index.js index 529c7748d4..c5037f4a4d 100644 --- a/packages/core/admin/admin/src/content-manager/components/DynamicTable/BulkActionsBar/index.js +++ b/packages/core/admin/admin/src/content-manager/components/DynamicTable/BulkActionsBar/index.js @@ -103,12 +103,14 @@ BulkActionsBar.defaultProps = { showPublish: false, showDelete: false, onConfirmDeleteAll() {}, + onConfirmPublishAll() {}, }; BulkActionsBar.propTypes = { showPublish: PropTypes.bool, showDelete: PropTypes.bool, onConfirmDeleteAll: PropTypes.func, + onConfirmPublishAll: PropTypes.func, selectedEntries: PropTypes.array.isRequired, clearSelectedEntries: PropTypes.func.isRequired, }; diff --git a/packages/core/admin/admin/src/content-manager/components/DynamicTable/BulkActionsBar/tests/index.test.js b/packages/core/admin/admin/src/content-manager/components/DynamicTable/BulkActionsBar/tests/index.test.js index 8a94ff03d0..fe80111833 100644 --- a/packages/core/admin/admin/src/content-manager/components/DynamicTable/BulkActionsBar/tests/index.test.js +++ b/packages/core/admin/admin/src/content-manager/components/DynamicTable/BulkActionsBar/tests/index.test.js @@ -1,5 +1,5 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; +import { act, render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { ThemeProvider, lightTheme } from '@strapi/design-system'; import { IntlProvider } from 'react-intl'; @@ -77,9 +77,23 @@ describe('BulkActionsBar', () => { onConfirmDeleteAll: mockConfirmDeleteAll, }); - await user.click(screen.getByRole('button', { name: /\bDelete\b/ })); - await user.click(screen.getByRole('button', { name: /confirm/i })); + await act(async () => { + await user.click(screen.getByRole('button', { name: /\bDelete\b/ })); + await user.click(screen.getByRole('button', { name: /confirm/i })); + }); expect(mockConfirmDeleteAll).toHaveBeenCalledWith([]); }); + + it('should show publish modal if publish button is clicked', async () => { + const onConfirmPublishAll = jest.fn(); + setup({ showPublish: true, onConfirmPublishAll }); + + await act(async () => { + await user.click(screen.getByRole('button', { name: /\bpublish\b/i })); + await user.click(screen.getByTestId('confirm-publish')); + }); + + expect(onConfirmPublishAll).toHaveBeenCalledWith([]); + }); }); diff --git a/packages/core/admin/admin/src/content-manager/components/DynamicTable/ConfirmDialogPublishAll/index.js b/packages/core/admin/admin/src/content-manager/components/DynamicTable/ConfirmDialogPublishAll/index.js index 20930336a4..5cb5470e09 100644 --- a/packages/core/admin/admin/src/content-manager/components/DynamicTable/ConfirmDialogPublishAll/index.js +++ b/packages/core/admin/admin/src/content-manager/components/DynamicTable/ConfirmDialogPublishAll/index.js @@ -49,7 +49,7 @@ const ConfirmDialogPublishAll = ({ isConfirmButtonLoading, isOpen, onToggleDialo onClick={onConfirm} variant="secondary" startIcon={} - id="confirm-publish" + data-testid="confirm-publish" loading={isConfirmButtonLoading} > {formatMessage({