test(review-workflows): API test for RW down migration

This commit is contained in:
Jamie Howard 2023-03-08 16:38:02 +00:00
parent 1a77c49380
commit ccf36d4436
3 changed files with 12 additions and 12 deletions

View File

@ -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);
});
});

View File

@ -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();
};

View File

@ -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);
});
});
});