11jest . 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+
431const helper = require ( '../utilities/permissions' ) ;
532const OwnerMessage = require ( '../models/ownerMessage' ) ;
633const { 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