@@ -27,6 +27,9 @@ import userDataFixture from "../../fixtures/user/user";
2727import * as logService from "../../../services/logService" ;
2828import { testAcknowledgeOooRequest , createOooRequests3 } from "../../fixtures/oooRequest/oooRequest" ;
2929import { createRequest } from "../../../models/requests" ;
30+ import * as requestModel from "../../../models/requests" ;
31+ import * as oooRequestService from "../../../services/oooRequest" ;
32+ import { NotFound , Conflict , BadRequest } from "http-errors" ;
3033
3134describe ( "Test OOO Request Service" , function ( ) {
3235
@@ -125,38 +128,37 @@ describe("Test OOO Request Service", function() {
125128 } ) ;
126129
127130 it ( "should return INVALID_REQUEST_TYPE if request type is not OOO" , async function ( ) {
128- const validationResponse = await validateOooAcknowledgeRequest (
129- testOooRequest . id ,
131+ await validateOooAcknowledgeRequest (
130132 REQUEST_TYPE . ONBOARDING ,
131133 testOooRequest . status
132- ) ;
133- expect ( validationResponse . error ) . to . be . not . undefined ;
134- expect ( validationResponse . error ) . to . equal ( INVALID_REQUEST_TYPE ) ;
134+ ) . catch ( ( error ) => {
135+ expect ( error ) . to . be . not . undefined ;
136+ expect ( error . message ) . to . equal ( INVALID_REQUEST_TYPE ) ;
137+ } ) ;
135138 } ) ;
136139
137140 it ( "should return REQUEST_ALREADY_APPROVED if request is already approved" , async function ( ) {
138- const validationResponse = await validateOooAcknowledgeRequest (
139- testOooRequest . id ,
141+ await validateOooAcknowledgeRequest (
140142 testOooRequest . type ,
141143 REQUEST_STATE . APPROVED
142- ) ;
143- expect ( validationResponse . error ) . to . be . not . undefined ;
144- expect ( validationResponse . error ) . to . equal ( REQUEST_ALREADY_APPROVED ) ;
144+ ) . catch ( ( error ) => {
145+ expect ( error ) . to . be . not . undefined ;
146+ expect ( error . message ) . to . equal ( REQUEST_ALREADY_APPROVED ) ;
147+ } ) ;
145148 } ) ;
146149
147150 it ( "should return REQUEST_ALREADY_REJECTED if request is already rejected" , async function ( ) {
148- const validationResponse = await validateOooAcknowledgeRequest (
149- testOooRequest . id ,
151+ await validateOooAcknowledgeRequest (
150152 testOooRequest . type ,
151153 REQUEST_STATE . REJECTED
152- ) ;
153- expect ( validationResponse . error ) . to . be . not . undefined ;
154- expect ( validationResponse . error ) . to . equal ( REQUEST_ALREADY_REJECTED ) ;
154+ ) . catch ( ( error ) => {
155+ expect ( error ) . to . be . not . undefined ;
156+ expect ( error . message ) . to . equal ( REQUEST_ALREADY_REJECTED ) ;
157+ } ) ;
155158 } ) ;
156159
157160 it ( "should return undefined when all validation checks passes" , async function ( ) {
158161 const response = await validateOooAcknowledgeRequest (
159- testOooRequest . id ,
160162 testOooRequest . type ,
161163 testOooRequest . status
162164 ) ;
@@ -183,54 +185,72 @@ describe("Test OOO Request Service", function() {
183185 } ) ;
184186
185187 it ( "should return REQUEST_DOES_NOT_EXIST if invalid request id is passed" , async function ( ) {
186- const invalidOOORequestId = "11111111111111111111" ;
187- const response = await acknowledgeOooRequest (
188- invalidOOORequestId ,
188+ sinon . stub ( requestModel , "getRequestById" ) . throws ( new NotFound ( REQUEST_DOES_NOT_EXIST ) ) ;
189+ await acknowledgeOooRequest (
190+ "11111111111111111111" ,
189191 testAcknowledgeOooRequest ,
190192 testSuperUserId
191- ) ;
192- expect ( response . error ) . to . equal ( REQUEST_DOES_NOT_EXIST ) ;
193+ ) . catch ( ( error ) => {
194+ expect ( error ) . to . be . not . undefined ;
195+ expect ( error . message ) . to . equal ( REQUEST_DOES_NOT_EXIST ) ;
196+ } ) ;
197+ } ) ;
198+
199+ it ( "should return REQUEST_ALREADY_APPROVED when status is approved" , async function ( ) {
200+ sinon . stub ( requestModel , "getRequestById" ) . returns ( testOooRequest ) ;
201+ sinon . stub ( oooRequestService , "validateOooAcknowledgeRequest" ) . throws ( new Conflict ( REQUEST_ALREADY_APPROVED ) ) ;
202+ await acknowledgeOooRequest (
203+ testOooRequest . id ,
204+ testAcknowledgeOooRequest ,
205+ testSuperUserId
206+ ) . catch ( ( error ) => {
207+ expect ( error ) . to . be . not . undefined ;
208+ expect ( error . message ) . to . equal ( REQUEST_ALREADY_APPROVED ) ;
209+ } ) ;
210+ } ) ;
211+
212+ it ( "should throw error when approve or rejection fails" , async function ( ) {
213+ sinon . stub ( requestModel , "getRequestById" ) . returns ( testOooRequest ) ;
214+ sinon . stub ( oooRequestService , "validateOooAcknowledgeRequest" ) ;
215+ sinon . stub ( requestModel , "updateRequest" ) . throws ( new BadRequest ( errorMessage ) ) ;
216+ await acknowledgeOooRequest (
217+ testOooRequest . id ,
218+ testAcknowledgeOooRequest ,
219+ testSuperUserId
220+ ) . catch ( ( error ) => {
221+ expect ( error ) . to . be . not . undefined ;
222+ expect ( error . message ) . to . equal ( errorMessage ) ;
223+ } ) ;
193224 } ) ;
194225
195226 it ( "should approve OOO request" , async function ( ) {
227+ sinon . stub ( requestModel , "getRequestById" ) . returns ( testOooRequest ) ;
228+ sinon . stub ( oooRequestService , "validateOooAcknowledgeRequest" ) ;
229+ sinon . stub ( requestModel , "updateRequest" ) . returns ( { ...testOooRequest , status : REQUEST_STATE . APPROVED } ) ;
196230 const response = await acknowledgeOooRequest (
197231 testOooRequest . id ,
198232 testAcknowledgeOooRequest ,
199233 testSuperUserId
200234 ) ;
201- expect ( response ) . to . deep . include ( {
202- message : REQUEST_APPROVED_SUCCESSFULLY ,
203- data : {
204- ...testAcknowledgeOooRequest ,
205- id : testOooRequest . id ,
206- lastModifiedBy : testSuperUserId ,
207- updatedAt : response . data . updatedAt
208- }
209- } ) ;
235+ expect ( response . message ) . to . equal ( REQUEST_APPROVED_SUCCESSFULLY ) ;
236+ expect ( response . data . status ) . to . equal ( REQUEST_STATE . APPROVED ) ;
210237 } ) ;
211238
212239 it ( "should reject OOO request" , async function ( ) {
240+ sinon . stub ( requestModel , "getRequestById" ) . returns ( testOooRequest ) ;
241+ sinon . stub ( oooRequestService , "validateOooAcknowledgeRequest" ) ;
242+ sinon . stub ( requestModel , "updateRequest" ) . returns ( { ...testOooRequest , status : REQUEST_STATE . REJECTED } ) ;
213243 const response = await acknowledgeOooRequest (
214244 testOooRequest . id ,
215245 { ...testAcknowledgeOooRequest , status : REQUEST_STATE . REJECTED } ,
216246 testSuperUserId
217247 ) ;
218- expect ( response ) . to . deep . include ( {
219- message : REQUEST_REJECTED_SUCCESSFULLY ,
220- data : {
221- ...testAcknowledgeOooRequest ,
222- id : testOooRequest . id ,
223- status : REQUEST_STATE . REJECTED ,
224- lastModifiedBy : testSuperUserId ,
225- updatedAt : response . data . updatedAt
226- }
227- } ) ;
248+ expect ( response . message ) . to . equal ( REQUEST_REJECTED_SUCCESSFULLY ) ;
249+ expect ( response . data . status ) . to . equal ( REQUEST_STATE . REJECTED ) ;
228250 } ) ;
229251
230252 it ( "should throw error" , async function ( ) {
231- sinon . stub ( logService , "addLog" ) . throws ( new Error ( errorMessage ) ) ;
232- const createSpy = sinon . spy ( require ( "../../../services/oooRequest" ) , "acknowledgeOooRequest" ) ;
233-
253+ sinon . stub ( requestModel , "getRequestById" ) . throws ( new Error ( errorMessage ) ) ;
234254 try {
235255 await acknowledgeOooRequest (
236256 testOooRequest . id ,
@@ -239,7 +259,6 @@ describe("Test OOO Request Service", function() {
239259 ) ;
240260 } catch ( error ) {
241261 expect ( error . message ) . to . equal ( errorMessage ) ;
242- expect ( createSpy . calledOnce ) . to . be . true ;
243262 }
244263 } ) ;
245264 } ) ;
0 commit comments