diff --git a/packages/core/admin/ee/server/migrations/__tests__/review-workflows.test.js b/packages/core/admin/ee/server/migrations/__tests__/review-workflows.test.js index 3b55683239..da61fb5614 100644 --- a/packages/core/admin/ee/server/migrations/__tests__/review-workflows.test.js +++ b/packages/core/admin/ee/server/migrations/__tests__/review-workflows.test.js @@ -29,7 +29,7 @@ describe('disableReviewWorkFlows', () => { disableReviewWorkFlows({ oldContentTypes, contentTypes }); expect(whereInSpy).toHaveBeenCalledTimes(1); - expect(whereInSpy).toHaveBeenCalledWith('id', ['U1', 'U3']); + expect(whereInSpy).toHaveBeenCalledWith('related_type', ['U1', 'U3']); expect(delSpy).toHaveBeenCalledTimes(1); }); }); diff --git a/packages/core/admin/ee/server/migrations/review-workflows.js b/packages/core/admin/ee/server/migrations/review-workflows.js index 13f42a6705..0a09450930 100644 --- a/packages/core/admin/ee/server/migrations/review-workflows.js +++ b/packages/core/admin/ee/server/migrations/review-workflows.js @@ -14,7 +14,7 @@ const hasRWEnabled = (contentType) => contentType?.options?.reviewWorkflows || f const disableReviewWorkFlows = async ({ oldContentTypes, contentTypes }) => { const uidsToRemove = []; for (const uid in contentTypes) { - if (!oldContentTypes[uid]) { + if (!oldContentTypes || !oldContentTypes[uid]) { continue; } @@ -34,7 +34,7 @@ const disableReviewWorkFlows = async ({ oldContentTypes, contentTypes }) => { await strapi.db .connection('strapi_workflows_stages_related_morphs') - .whereIn('id', uidsToRemove) + .whereIn('related_type', uidsToRemove) .del(); }; diff --git a/packages/core/admin/ee/server/tests/review-workflows.test.api.js b/packages/core/admin/ee/server/tests/review-workflows.test.api.js index 4615b71928..477c759b79 100644 --- a/packages/core/admin/ee/server/tests/review-workflows.test.api.js +++ b/packages/core/admin/ee/server/tests/review-workflows.test.api.js @@ -316,8 +316,8 @@ describeOnCondition(edition === 'EE')('Review workflows', () => { }); }); - describe('Enable review workflows on a content type', () => { - test('When enabled entries in the content type should be added to the first stage of a workflow', async () => { + describe('Enabling/Disabling review workflows on a content type', () => { + test('when disabled entries in the content type should be removed from any workflow stage', async () => { await createEntry(productUID, { name: 'Product' }); await createEntry(productUID, { name: 'Product 1' }); await createEntry(productUID, { name: 'Product 2' }); @@ -326,7 +326,12 @@ describeOnCondition(edition === 'EE')('Review workflows', () => { components: [], contentType: { ...model, reviewWorkflows: true }, }); + await restart(); + await updateContentType(productUID, { + components: [], + contentType: { ...model, reviewWorkflows: false }, + }); await restart(); const res = await requests.admin({ @@ -334,7 +339,7 @@ describeOnCondition(edition === 'EE')('Review workflows', () => { url: `/content-type-builder/content-types/api::product.product`, }); - expect(res.body.data.schema.reviewWorkflows).toBeTruthy(); + expect(res.body.data.schema.reviewWorkflows).toBeFalsy(); const connection = strapi.db.getConnection(); const RWMorphTableResults = await connection @@ -342,12 +347,7 @@ describeOnCondition(edition === 'EE')('Review workflows', () => { .from('strapi_workflows_stages_related_morphs') .where('related_type', productUID); - expect(RWMorphTableResults.length).toEqual(3); - for (let i = 0; i < RWMorphTableResults.length; i += 1) { - const entry = RWMorphTableResults[i]; - expect(entry.related_id).toEqual(i + 1); - expect(entry.order).toEqual(1); - } + expect(RWMorphTableResults.length).toEqual(0); }); }); });