test(ee): unit test for assignee update

This commit is contained in:
Jamie Howard 2023-07-10 14:47:34 +01:00
parent 33decf1f3c
commit dd51304dc5

View File

@ -0,0 +1,76 @@
'use strict';
jest.mock('@strapi/strapi/lib/utils/ee', () => {
const eeModule = () => true;
Object.assign(eeModule, {
features: {
isEnabled() {
return true;
},
getEnabled() {
return ['review-workflows'];
},
},
});
return eeModule;
});
const { ENTITY_ASSIGNEE_ATTRIBUTE } = require('../../constants/workflows');
const assigneeFactory = require('../review-workflows/assignees');
const uid = 'uid';
const fromAssigneeId = 1;
const entityServiceMock = {
findOne: jest.fn(() => {
return {
[ENTITY_ASSIGNEE_ATTRIBUTE]: {
id: fromAssigneeId,
},
};
}),
update: jest.fn((uid, id, { data }) => data),
};
const servicesMock = {
'admin::user': {
exists: jest.fn(() => true),
},
'admin::review-workflows-metrics': {
sendDidEditAssignee: jest.fn(),
},
};
const strapiMock = {
entityService: entityServiceMock,
service: jest.fn((serviceName) => {
return servicesMock[serviceName];
}),
};
const assigneeService = assigneeFactory({ strapi: strapiMock });
describe('Review workflows - Stages service', () => {
afterEach(() => {
jest.clearAllMocks();
});
describe('updateEntityAssignee', () => {
it('should update the assignee of an entity', async () => {
const id = 10;
const toId = 2;
await assigneeService.updateEntityAssignee(id, uid, toId);
expect(servicesMock['admin::user'].exists).toBeCalled();
expect(servicesMock['admin::review-workflows-metrics'].sendDidEditAssignee).toBeCalledWith(
fromAssigneeId,
toId
);
expect(entityServiceMock.update).toBeCalledWith(uid, id, {
data: { strapi_assignee: toId },
fields: [],
populate: [ENTITY_ASSIGNEE_ATTRIBUTE],
});
});
});
});