diff --git a/packages/core/admin/admin/src/content-manager/components/AttributeFilter/AdminUsersFilter.js b/packages/core/admin/admin/src/content-manager/components/AttributeFilter/AdminUsersFilter.js index 674e803955..92f23ff841 100644 --- a/packages/core/admin/admin/src/content-manager/components/AttributeFilter/AdminUsersFilter.js +++ b/packages/core/admin/admin/src/content-manager/components/AttributeFilter/AdminUsersFilter.js @@ -1,7 +1,8 @@ import React from 'react'; -import PropTypes from 'prop-types'; + import { Combobox, ComboboxOption } from '@strapi/design-system'; import { getDisplayName } from '@strapi/helper-plugin'; +import PropTypes from 'prop-types'; import { useIntl } from 'react-intl'; import { useAdminUsers } from '../../../hooks/useAdminUsers'; @@ -36,4 +37,4 @@ AdminUsersFilter.defaultProps = { value: '', }; -export { AdminUsersFilter }; \ No newline at end of file +export { AdminUsersFilter }; diff --git a/packages/core/admin/admin/src/content-manager/components/AttributeFilter/hooks/useAllowedAttributes.js b/packages/core/admin/admin/src/content-manager/components/AttributeFilter/hooks/useAllowedAttributes.js index 675152cedd..a1f07151c0 100644 --- a/packages/core/admin/admin/src/content-manager/components/AttributeFilter/hooks/useAllowedAttributes.js +++ b/packages/core/admin/admin/src/content-manager/components/AttributeFilter/hooks/useAllowedAttributes.js @@ -1,5 +1,5 @@ -import get from 'lodash/get'; import { useRBACProvider, findMatchingPermissions, useCollator } from '@strapi/helper-plugin'; +import get from 'lodash/get'; import { useIntl } from 'react-intl'; const NOT_ALLOWED_FILTERS = ['json', 'component', 'media', 'richtext', 'dynamiczone', 'password']; diff --git a/packages/core/admin/admin/src/content-manager/components/AttributeFilter/index.js b/packages/core/admin/admin/src/content-manager/components/AttributeFilter/index.js index 2eeee58730..f8683dba7c 100644 --- a/packages/core/admin/admin/src/content-manager/components/AttributeFilter/index.js +++ b/packages/core/admin/admin/src/content-manager/components/AttributeFilter/index.js @@ -1,12 +1,14 @@ import React from 'react'; +import { useQueryParams, getDisplayName } from '@strapi/helper-plugin'; import PropTypes from 'prop-types'; import { useIntl } from 'react-intl'; -import { useQueryParams, getDisplayName } from '@strapi/helper-plugin'; + import { useAdminUsers } from '../../../hooks/useAdminUsers'; -import useAllowedAttributes from './hooks/useAllowedAttributes'; -import Filters from './Filters'; + import { AdminUsersFilter } from './AdminUsersFilter'; +import Filters from './Filters'; +import useAllowedAttributes from './hooks/useAllowedAttributes'; const AUTHOR_ATTRIBUTES = ['createdBy', 'updatedBy']; diff --git a/packages/core/admin/admin/src/content-manager/components/AttributeFilter/tests/AdminUsersFilter.test.js b/packages/core/admin/admin/src/content-manager/components/AttributeFilter/tests/AdminUsersFilter.test.js index 3f517b07bb..968b1ea414 100644 --- a/packages/core/admin/admin/src/content-manager/components/AttributeFilter/tests/AdminUsersFilter.test.js +++ b/packages/core/admin/admin/src/content-manager/components/AttributeFilter/tests/AdminUsersFilter.test.js @@ -1,11 +1,13 @@ import React from 'react'; -import { rest } from 'msw'; -import { setupServer } from 'msw/node'; + +import { ThemeProvider, lightTheme } from '@strapi/design-system'; import { render, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { ThemeProvider, lightTheme } from '@strapi/design-system'; +import { rest } from 'msw'; +import { setupServer } from 'msw/node'; import { IntlProvider } from 'react-intl'; import { QueryClientProvider, QueryClient } from 'react-query'; + import { AdminUsersFilter } from '../AdminUsersFilter'; const server = setupServer( diff --git a/packages/core/admin/admin/src/content-manager/pages/EditView/Information/tests/index.test.js b/packages/core/admin/admin/src/content-manager/pages/EditView/Information/tests/index.test.js index 91d765773d..18ac8d41c9 100644 --- a/packages/core/admin/admin/src/content-manager/pages/EditView/Information/tests/index.test.js +++ b/packages/core/admin/admin/src/content-manager/pages/EditView/Information/tests/index.test.js @@ -50,6 +50,7 @@ describe('CONTENT MANAGER | EditView | Information', () => { useCMEditViewDataManager.mockImplementationOnce(() => ({ initialData: {}, isCreatingEntry: true, + readActionAllowedFields: ['createdBy', 'updatedBy'], })); const { getByText, getAllByText } = setup(); @@ -77,6 +78,7 @@ describe('CONTENT MANAGER | EditView | Information', () => { }, }, isCreatingEntry: false, + readActionAllowedFields: ['createdBy', 'updatedBy'], })); const { getAllByText } = setup(); @@ -103,6 +105,7 @@ describe('CONTENT MANAGER | EditView | Information', () => { }, }, isCreatingEntry: false, + readActionAllowedFields: ['createdBy', 'updatedBy'], })); const { queryByText, getAllByText } = setup(); diff --git a/packages/core/admin/admin/src/content-manager/pages/EditView/InformationBox/tests/InformationBoxCe.test.js b/packages/core/admin/admin/src/content-manager/pages/EditView/InformationBox/tests/InformationBoxCe.test.js index 9023b92bef..e8bce03860 100644 --- a/packages/core/admin/admin/src/content-manager/pages/EditView/InformationBox/tests/InformationBoxCe.test.js +++ b/packages/core/admin/admin/src/content-manager/pages/EditView/InformationBox/tests/InformationBoxCe.test.js @@ -47,6 +47,7 @@ describe('CONTENT MANAGER | EditView | InformationBoxCE', () => { useCMEditViewDataManager.mockImplementationOnce(() => ({ initialData: {}, isCreatingEntry: true, + readActionAllowedFields: [], })); const { getByText } = setup(); diff --git a/packages/core/admin/ee/admin/content-manager/pages/EditView/InformationBox/tests/InformationBoxEE.test.js b/packages/core/admin/ee/admin/content-manager/pages/EditView/InformationBox/tests/InformationBoxEE.test.js index 8aa3941b0a..9bd8c94e4d 100644 --- a/packages/core/admin/ee/admin/content-manager/pages/EditView/InformationBox/tests/InformationBoxEE.test.js +++ b/packages/core/admin/ee/admin/content-manager/pages/EditView/InformationBox/tests/InformationBoxEE.test.js @@ -103,6 +103,7 @@ describe('EE | Content Manager | EditView | InformationBox', () => { initialData: {}, isCreatingEntry: true, layout: { uid: 'api::articles:articles', options: { reviewWorkflows: true } }, + readActionAllowedFields: [], }); const { getByText } = setup(); @@ -127,6 +128,7 @@ describe('EE | Content Manager | EditView | InformationBox', () => { useCMEditViewDataManager.mockReturnValue({ initialData: {}, layout: { uid: 'api::articles:articles', options: { reviewWorkflows: false } }, + readActionAllowedFields: [], }); const { queryByRole } = setup(); @@ -134,13 +136,29 @@ describe('EE | Content Manager | EditView | InformationBox', () => { expect(queryByRole('combobox')).not.toBeInTheDocument(); }); - it('does not render the select input, if the entity is being created', () => { + it('renders an error, if no workflow stage is assigned to the entity', () => { + useCMEditViewDataManager.mockReturnValue({ + initialData: { + [STAGE_ATTRIBUTE_NAME]: null, + }, + layout: { uid: 'api::articles:articles' }, + readActionAllowedFields: [], + }); + + const { getByText, queryByRole } = setup(); + + expect(getByText(/select a stage/i)).toBeInTheDocument(); + expect(queryByRole('combobox')).toBeInTheDocument(); + }); + + it('does not render the select input, if the entity is created', () => { useCMEditViewDataManager.mockReturnValue({ initialData: { [STAGE_ATTRIBUTE_NAME]: STAGE_FIXTURE, }, isCreatingEntry: true, layout: { uid: 'api::articles:articles', options: { reviewWorkflows: true } }, + readActionAllowedFields: [], }); const { queryByRole } = setup(); @@ -156,6 +174,7 @@ describe('EE | Content Manager | EditView | InformationBox', () => { }, isCreatingEntry: false, layout: { uid: 'api::articles:articles', options: { reviewWorkflows: true } }, + readActionAllowedFields: [], }); const { queryByRole } = setup(); @@ -171,6 +190,7 @@ describe('EE | Content Manager | EditView | InformationBox', () => { }, isCreatingEntry: false, layout: { uid: 'api::articles:articles', options: { reviewWorkflows: true } }, + readActionAllowedFields: [], }); const { getByRole, getByText, user } = setup();