Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
17b1770
initial commit
RishiChaubey31 Aug 27, 2025
6269355
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Aug 30, 2025
4283cb5
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Aug 30, 2025
68b1b0e
added-more-test
RishiChaubey31 Aug 30, 2025
5e8bf8b
fix-test-title
RishiChaubey31 Aug 30, 2025
4c3af80
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Aug 31, 2025
59129c8
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Sep 2, 2025
aa7c5b4
removed-try/catch-block
RishiChaubey31 Sep 2, 2025
b7006be
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Sep 3, 2025
0c5e667
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Sep 3, 2025
670ce52
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Sep 3, 2025
1be02b9
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
MayankBansal12 Sep 3, 2025
aee173d
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Sep 3, 2025
ea7d45c
fix-try-catch-cases
RishiChaubey31 Sep 3, 2025
d33fb0d
Merge branch 'test/ooo-req-acknowledgement' of https://github.com/Rea…
RishiChaubey31 Sep 3, 2025
799d37f
added-try-catch
RishiChaubey31 Sep 3, 2025
0b24360
removed-functon
RishiChaubey31 Sep 3, 2025
c1e3726
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
MayankBansal12 Sep 3, 2025
5237b38
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Sep 3, 2025
e86ba92
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Sep 4, 2025
6a811a7
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Sep 4, 2025
3c566a2
test: update assertions in oooRequest tests to use include for respon…
RishiChaubey31 Sep 4, 2025
d1b4465
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Sep 4, 2025
8c4b8be
Merge branch 'feature/ooo-req-acknowledgement' into test/ooo-req-ackn…
RishiChaubey31 Sep 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion test/fixtures/oooRequest/oooRequest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ export const createOooRequests3 = {
status: REQUEST_STATE.PENDING
};

export const acknowledgeOooRequest = {
export const TestacknowledgeOooRequest = {
type: REQUEST_TYPE.OOO,
status: REQUEST_STATE.APPROVED,
comment: "OOO request approved as it's emergency."
Expand Down
24 changes: 12 additions & 12 deletions test/integration/requests.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {
validOooStatusRequests,
validOooStatusUpdate,
createOooRequests2,
acknowledgeOooRequest,
TestacknowledgeOooRequest,
createOooRequests3,
} from "../fixtures/oooRequest/oooRequest";
import { createRequest, updateRequest } from "../../models/requests";
Expand Down Expand Up @@ -351,7 +351,7 @@ describe("/requests OOO", function () {
chai
.request(app)
.patch(`/requests/${testOooRequest.id}?dev=true`)
.send(acknowledgeOooRequest)
.send(TestacknowledgeOooRequest)
.end(function (err, res) {
expect(res).to.have.status(401);
expect(res.body.error).to.equal("Unauthorized");
Expand All @@ -365,7 +365,7 @@ describe("/requests OOO", function () {
.request(app)
.patch(`/requests/${testOooRequest.id}?dev=false`)
.set("cookie", `${cookieName}=${superUserToken}`)
.send(acknowledgeOooRequest)
.send(TestacknowledgeOooRequest)
.end(function (err, res) {
if (err) {
return done(err);
Expand All @@ -381,7 +381,7 @@ describe("/requests OOO", function () {
.request(app)
.patch(`/requests/11111111111111?dev=true`)
.set("cookie", `${cookieName}=${superUserToken}`)
.send(acknowledgeOooRequest)
.send(TestacknowledgeOooRequest)
.end(function (err, res) {
if (err) {
return done(err);
Expand All @@ -397,13 +397,13 @@ describe("/requests OOO", function () {
.request(app)
.patch(`/requests/${testOooRequest.id}?dev=true`)
.set("cookie", `${cookieName}=${authToken}`)
.send(acknowledgeOooRequest)
.send(TestacknowledgeOooRequest)
.end(function (err, res) {
if (err) {
return done(err);
}
expect(res.statusCode).to.equal(403);
// expect(res.body.message).to.equal(UNAUTHORIZED_TO_ACKNOWLEDGE_OOO_REQUEST);
expect(res.body.message).to.equal(UNAUTHORIZED_TO_CREATE_OOO_REQUEST);
done();
});
});
Expand All @@ -413,7 +413,7 @@ describe("/requests OOO", function () {
.request(app)
.patch(`/requests/${approvedOooRequest.id}?dev=true`)
.set("cookie", `${cookieName}=${superUserToken}`)
.send(acknowledgeOooRequest)
.send(TestacknowledgeOooRequest)
.end(function (err, res) {
if (err) {
return done(err);
Expand All @@ -429,7 +429,7 @@ describe("/requests OOO", function () {
.request(app)
.patch(`/requests/${rejectedOooRequest.id}?dev=true`)
.set("cookie", `${cookieName}=${superUserToken}`)
.send(acknowledgeOooRequest)
.send(TestacknowledgeOooRequest)
.end(function (err, res) {
if (err) {
return done(err);
Expand All @@ -445,7 +445,7 @@ describe("/requests OOO", function () {
.request(app)
.patch(`/requests/${onboardingRequest.id}?dev=true`)
.set("cookie", `${cookieName}=${superUserToken}`)
.send(acknowledgeOooRequest)
.send(TestacknowledgeOooRequest)
.end(function (err, res) {
if (err) {
return done(err);
Expand All @@ -461,7 +461,7 @@ describe("/requests OOO", function () {
.request(app)
.patch(`/requests/${testOooRequest.id}?dev=true`)
.set("cookie", `${cookieName}=${superUserToken}`)
.send(acknowledgeOooRequest)
.send(TestacknowledgeOooRequest)
.end(function (err, res) {
if (err) {
return done(err);
Expand All @@ -477,7 +477,7 @@ describe("/requests OOO", function () {
.request(app)
.patch(`/requests/${testOooRequest.id}?dev=true`)
.set("cookie", `${cookieName}=${superUserToken}`)
.send({...acknowledgeOooRequest, status: REQUEST_STATE.REJECTED})
.send({...TestacknowledgeOooRequest, status: REQUEST_STATE.REJECTED})
.end(function (err, res) {
if (err) {
return done(err);
Expand All @@ -494,7 +494,7 @@ describe("/requests OOO", function () {
.request(app)
.patch(`/requests/${testOooRequest.id}?dev=true`)
.set("cookie", `${cookieName}=${superUserToken}`)
.send(acknowledgeOooRequest)
.send(TestacknowledgeOooRequest)
.end(function (err, res) {
if (err) return done(err);
expect(res.statusCode).to.equal(500);
Expand Down
20 changes: 10 additions & 10 deletions test/unit/middlewares/oooRequests.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ const { expect } = chai;

import {
createOooStatusRequestValidator,
// acknowledgeOOORequestsValidator,
acknowledgeOooRequest,
} from "./../../../middlewares/validators/oooRequests";
import { acknowledgeOooRequest, validOooStatusRequests, validOooStatusUpdate } from "../../fixtures/oooRequest/oooRequest";
import { TestacknowledgeOooRequest, validOooStatusRequests, validOooStatusUpdate } from "../../fixtures/oooRequest/oooRequest";
import _ from "lodash";

describe("OOO Status Request Validators", function () {
Expand Down Expand Up @@ -94,37 +94,37 @@ describe("OOO Status Request Validators", function () {
describe.skip("acknowledgeOOORequestsValidator", function () {
it("should not validate for an invalid request for invalid request type", async function () {
req = {
body: { ...acknowledgeOooRequest, type: "XYZ"}
body: { ...TestacknowledgeOooRequest, type: "XYZ"}
};

// await acknowledgeOOORequestsValidator(req, res, nextSpy);
// await acknowledgeOooRequestValidator(req, res, nextSpy);
expect(nextSpy.notCalled).to.be.true;
});

it("should not validate for an invalid request if status is incorrect", async function () {
req = {
body: { ...acknowledgeOooRequest, status: "PENDING"}
body: { ...TestacknowledgeOooRequest, status: "PENDING"}
};

// await acknowledgeOOORequestsValidator(req, res, nextSpy);
// await acknowledgeOooRequestValidator(req, res, nextSpy);
expect(nextSpy.notCalled).to.be.true;
});

it("should validate for a valid acknowledge OOO request if comment not provided by superusers", async function() {
req = {
body: _.omit(acknowledgeOooRequest, "comment")
body: _.omit(TestacknowledgeOooRequest, "comment")
};
res = {};
// await acknowledgeOOORequestsValidator(req, res, nextSpy);
// await acknowledgeOooRequestValidator(req, res, nextSpy);
expect(nextSpy.calledOnce).to.be.true;
});

it("should validate for a valid acknowledge OOO request", async function() {
req = {
body: acknowledgeOooRequest
body: TestacknowledgeOooRequest
};
res = {};
// await acknowledgeOOORequestsValidator(req, res, nextSpy);
await acknowledgeOooRequest(req, res, nextSpy);
expect(nextSpy.calledOnce).to.be.true;
});
});
Expand Down
163 changes: 84 additions & 79 deletions test/unit/services/oooRequest.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ import {
import {
createOooRequest,
validateUserStatus,
// acknowledgeOOORequest,
// validateOOOAcknowledgeRequest
acknowledgeOooRequest,
validateOooAcknowledgeRequest
} from "../../../services/oooRequest";
import { expect } from "chai";
import { testUserStatus, validOooStatusRequests, validUserCurrentStatus, createdOOORequest } from "../../fixtures/oooRequest/oooRequest";
Expand All @@ -25,7 +25,7 @@ import { userState } from "../../../constants/userStatus";
import addUser from "../../utils/addUser";
import userDataFixture from "../../fixtures/user/user";
import * as logService from "../../../services/logService";
import { createOooRequests3 } from "../../fixtures/oooRequest/oooRequest";
import { createOooRequests3, TestacknowledgeOooRequest } from "../../fixtures/oooRequest/oooRequest";
import { createRequest } from "../../../models/requests";

describe("Test OOO Request Service", function() {
Expand Down Expand Up @@ -124,42 +124,47 @@ describe("Test OOO Request Service", function() {
});

it("should return INVALID_REQUEST_TYPE if request type is not OOO", async function() {
// const validationResponse = await validateOOOAcknowledgeRequest(
// testOooRequest.id,
// REQUEST_TYPE.ONBOARDING,
// testOooRequest.status
// );
// expect(validationResponse.error).to.be.not.undefined;
// expect(validationResponse.error).to.equal(INVALID_REQUEST_TYPE);
try {
await validateOooAcknowledgeRequest(
REQUEST_TYPE.ONBOARDING,
testOooRequest.status
);
expect.fail("Expected function to throw an error");
} catch (error) {
expect(error.message).to.include(INVALID_REQUEST_TYPE);
}
});

it("should return REQUEST_ALREADY_APPROVED if request is already approved", async function() {
// const validationResponse = await validateOOOAcknowledgeRequest(
// testOooRequest.id,
// testOooRequest.type,
// REQUEST_STATE.APPROVED
// );
// expect(validationResponse.error).to.be.not.undefined;
// expect(validationResponse.error).to.equal(REQUEST_ALREADY_APPROVED);
try {
await validateOooAcknowledgeRequest(
REQUEST_TYPE.OOO,
REQUEST_STATE.APPROVED
);
expect.fail("Expected function to throw an error");
} catch (error) {
expect(error.message).to.include(REQUEST_ALREADY_APPROVED);
}
});

it("should return REQUEST_ALREADY_REJECTED if request is already rejected", async function() {
// const validationResponse = await validateOOOAcknowledgeRequest(
// testOooRequest.id,
// testOooRequest.type,
// REQUEST_STATE.REJECTED
// );
// expect(validationResponse.error).to.be.not.undefined;
// expect(validationResponse.error).to.equal(REQUEST_ALREADY_REJECTED);
try {
await validateOooAcknowledgeRequest(
REQUEST_TYPE.OOO,
REQUEST_STATE.REJECTED
);
expect.fail("Expected function to throw an error");
} catch (error) {
expect(error.message).to.include(REQUEST_ALREADY_REJECTED);
}
});

it("should return undefined when all validation checks passes", async function() {
// const response = await validateOOOAcknowledgeRequest(
// testOooRequest.id,
// testOooRequest.type,
// testOooRequest.status
// );
// expect(response).to.not.exist;
const response = await validateOooAcknowledgeRequest(
REQUEST_TYPE.OOO,
REQUEST_STATE.PENDING
);
expect(response).to.not.exist;
});
});

Expand All @@ -182,64 +187,64 @@ describe("Test OOO Request Service", function() {
});

it("should return REQUEST_DOES_NOT_EXIST if invalid request id is passed", async function () {
// const invalidOOORequestId = "11111111111111111111";
// const response = await acknowledgeOOORequest(
// invalidOOORequestId,
// acknowledgeOooRequest,
// testSuperUserId
// );
// expect(response.error).to.equal(REQUEST_DOES_NOT_EXIST);
const invalidOOORequestId = "11111111111111111111";
const response = await acknowledgeOooRequest(
invalidOOORequestId,
TestacknowledgeOooRequest,
testSuperUserId
);
expect(response.message).to.equal(REQUEST_DOES_NOT_EXIST);
});

it("should approve OOO request", async function() {
// const response = await acknowledgeOOORequest(
// testOooRequest.id,
// acknowledgeOooRequest,
// testSuperUserId
// );
// expect(response).to.deep.include({
// message: REQUEST_APPROVED_SUCCESSFULLY,
// data: {
// ...acknowledgeOooRequest,
// id: testOooRequest.id,
// lastModifiedBy: testSuperUserId,
// updatedAt: response.data.updatedAt
// }
// });
const response = await acknowledgeOooRequest(
testOooRequest.id,
TestacknowledgeOooRequest,
testSuperUserId
);
expect(response).to.deep.include({
message: REQUEST_APPROVED_SUCCESSFULLY,
data: {
...acknowledgeOooRequest,
id: testOooRequest.id,
lastModifiedBy: testSuperUserId,
updatedAt: response.data.updatedAt
}
});
});

it("should reject OOO request", async function() {
// const response = await acknowledgeOOORequest(
// testOooRequest.id,
// { ...acknowledgeOooRequest, status: REQUEST_STATE.REJECTED },
// testSuperUserId
// );
// expect(response).to.deep.include({
// message: REQUEST_REJECTED_SUCCESSFULLY,
// data: {
// ...acknowledgeOooRequest,
// id: testOooRequest.id,
// status: REQUEST_STATE.REJECTED,
// lastModifiedBy: testSuperUserId,
// updatedAt: response.data.updatedAt
// }
// });
const response = await acknowledgeOooRequest(
testOooRequest.id,
{ ...TestacknowledgeOooRequest, status: REQUEST_STATE.REJECTED },
testSuperUserId
);
expect(response).to.deep.include({
message: REQUEST_REJECTED_SUCCESSFULLY,
data: {
...acknowledgeOooRequest,
id: testOooRequest.id,
status: REQUEST_STATE.REJECTED,
lastModifiedBy: testSuperUserId,
updatedAt: response.data.updatedAt
}
});
});

it("should throw error", async function() {
// sinon.stub(logService, "addLog").throws(new Error(errorMessage));
// const createSpy = sinon.spy(require("../../../services/oooRequest"), "acknowledgeOOORequest");

// try {
// await acknowledgeOOORequest(
// testOooRequest.id,
// acknowledgeOooRequest,
// testSuperUserId
// );
// } catch (error) {
// expect(error.message).to.equal(errorMessage);
// expect(createSpy.calledOnce).to.be.true;
// }
sinon.stub(logService, "addLog").throws(new Error(errorMessage));
const createSpy = sinon.spy(require("../../../services/oooRequest"), "acknowledgeOOORequest");

try {
await acknowledgeOooRequest(
testOooRequest.id,
TestacknowledgeOooRequest,
testSuperUserId
);
} catch (error) {
expect(error.message).to.equal(errorMessage);
expect(createSpy.calledOnce).to.be.true;
}
});
});
});
Loading