Skip to content

Commit 6cb1896

Browse files
Merge pull request #2100 from OneCommunityGlobal/diya-fix-ownerMessageController-tests
Diya fix: mock mongoose session in ownerMessageController tests
2 parents 0dcefdd + 1736cbb commit 6cb1896

1 file changed

Lines changed: 43 additions & 6 deletions

File tree

src/controllers/ownerMessageController.spec.js

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,33 @@
11
jest.mock('../utilities/permissions', () => ({
22
hasPermission: jest.fn(),
33
}));
4+
5+
jest.mock('mongoose', () => {
6+
const mockSession = {
7+
startTransaction: jest.fn(),
8+
commitTransaction: jest.fn(),
9+
abortTransaction: jest.fn(),
10+
endSession: jest.fn(),
11+
};
12+
const actualMongoose = jest.requireActual('mongoose');
13+
return {
14+
...actualMongoose,
15+
startSession: jest.fn().mockResolvedValue(mockSession),
16+
};
17+
});
18+
19+
jest.mock('../models/ownerMessageLog', () => ({
20+
create: jest.fn().mockResolvedValue({}),
21+
}));
22+
23+
jest.mock('../models/userProfile', () => ({
24+
findById: jest.fn().mockResolvedValue({
25+
email: 'test@test.com',
26+
firstName: 'Test',
27+
lastName: 'User',
28+
}),
29+
}));
30+
431
const helper = require('../utilities/permissions');
532
const OwnerMessage = require('../models/ownerMessage');
633
const { mockReq, mockRes, assertResMock } = require('../test');
@@ -25,8 +52,10 @@ describe('ownerMessageController Unit Tests', () => {
2552
});
2653

2754
beforeEach(() => {
28-
mockFind = jest.spyOn(OwnerMessage, 'find');
29-
mockSave = jest.fn();
55+
mockFind = jest.spyOn(OwnerMessage, 'find').mockReturnValue({
56+
session: jest.fn().mockResolvedValue([]),
57+
});
58+
mockSave = jest.fn().mockResolvedValue({});
3059
});
3160
describe('getOwnerMessage', () => {
3261
test('Ensures getOwnerMessage returns status 404 if owner message cant be found', async () => {
@@ -80,7 +109,9 @@ describe('ownerMessageController Unit Tests', () => {
80109
});
81110
test('Ensures updateOwnerMessage returns status 201 and updates the owner message correctly with custom message', async () => {
82111
const existingMessage = { message: '', standardMessage: '', save: mockSave };
83-
mockFind.mockResolvedValue([existingMessage]);
112+
mockFind.mockReturnValue({
113+
session: jest.fn().mockResolvedValue([existingMessage]),
114+
});
84115
const mockReqDup = {
85116
...mockReq,
86117
body: {
@@ -101,7 +132,9 @@ describe('ownerMessageController Unit Tests', () => {
101132
});
102133
test('Ensures updateOwnerMessage returns status 500 if an error occurs during the update', async () => {
103134
const errorMsg = 'Error occurred during update';
104-
mockFind.mockRejectedValue(errorMsg);
135+
mockFind.mockReturnValue({
136+
session: jest.fn().mockRejectedValue(errorMsg),
137+
});
105138
const mockReqDup = { ...mockReq, body: { ...mockReq.body, requestor: { role: 'Owner' } } };
106139
helper.hasPermission.mockResolvedValue(true);
107140
await makeSut().updateOwnerMessage(mockReqDup, mockRes);
@@ -125,7 +158,9 @@ describe('ownerMessageController Unit Tests', () => {
125158
standardMessage: 'Standard message',
126159
save: mockSave,
127160
};
128-
mockFind.mockResolvedValue([existingMessage]);
161+
mockFind.mockReturnValue({
162+
session: jest.fn().mockResolvedValue([existingMessage]),
163+
});
129164
mockReq.body.requestor.role = '';
130165
helper.hasPermission.mockResolvedValue(true);
131166

@@ -140,7 +175,9 @@ describe('ownerMessageController Unit Tests', () => {
140175
});
141176
test('Ensures deleteOwnerMessage returns status 500 if an error occurs during the delete', async () => {
142177
const errorMsg = 'Error occurred during delete';
143-
mockFind.mockRejectedValue(errorMsg);
178+
mockFind.mockReturnValue({
179+
session: jest.fn().mockRejectedValue(errorMsg),
180+
});
144181
mockReq.body.requestor.role = 'Owner';
145182
helper.hasPermission.mockResolvedValue(true);
146183

0 commit comments

Comments
 (0)