Skip to content

Commit 8101a05

Browse files
authored
Merge pull request #2296 from Akshat187/develop
Updated the logic to return 404 instead of 200 when wrong taskRequest Id is sent
1 parent 9a59db2 commit 8101a05

File tree

3 files changed

+61
-9
lines changed

3 files changed

+61
-9
lines changed

models/taskRequests.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,16 +171,21 @@ const fetchTaskRequestById = async (taskRequestId) => {
171171
const taskRequestSnapshot = await taskRequestsCollection.doc(taskRequestId).get();
172172
const taskRequestData = taskRequestSnapshot.data();
173173

174-
if (taskRequestData) {
175-
taskRequestData.id = taskRequestSnapshot.id;
176-
taskRequestData.url = new URL(`/taskRequests/${taskRequestData.id}`, config.get("services.rdsUi.baseUrl"));
174+
if (!taskRequestData) {
175+
return {
176+
taskRequestExists: false,
177+
};
177178
}
179+
180+
taskRequestData.id = taskRequestSnapshot.id;
181+
taskRequestData.url = new URL(`/taskRequests/${taskRequestData.id}`, config.get("services.rdsUi.baseUrl"));
182+
178183
return {
179184
taskRequestData,
180185
taskRequestExists: true,
181186
};
182187
} catch (err) {
183-
logger.error("Error in updating task", err);
188+
logger.error("Error in fetching taskRequest by Id", err);
184189
}
185190

186191
return {

test/integration/taskRequests.test.js

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,22 @@ describe("Task Requests", function () {
176176
});
177177
});
178178

179+
it("should return 404 if the task request is not found for the given Id", function (done) {
180+
chai
181+
.request(app)
182+
.get(`/taskRequests/1234`)
183+
.set("cookie", `${cookieName}=${jwt}`)
184+
.end((err, res) => {
185+
if (err) {
186+
return done(err);
187+
}
188+
189+
expect(res).to.have.status(404);
190+
expect(res.body.message).to.be.equal("Task request not found");
191+
return done();
192+
});
193+
});
194+
179195
it("should return 404 if the resource is not found", function (done) {
180196
sinon.stub(taskRequestsModel, "fetchTaskRequestById").callsFake(() => []);
181197

@@ -196,21 +212,26 @@ describe("Task Requests", function () {
196212
});
197213

198214
describe("When the user is not a super user", function () {
215+
let taskRequestId;
216+
199217
before(async function () {
200218
userId = await addUser(member);
201-
sinon.stub(authService, "verifyAuthToken").callsFake(() => ({ userId }));
202-
jwt = authService.generateAuthToken({ userId });
219+
sinon.stub(authService, "verifyAuthToken").callsFake(() => ({
220+
userId,
221+
}));
222+
jwt = authService.generateAuthToken({
223+
userId,
224+
});
203225

204226
taskId = (await tasksModel.updateTask(taskData[4])).taskId;
205-
206227
await userStatusModel.updateUserStatus(userId, idleUserStatus);
207-
await taskRequestsModel.addOrUpdate(taskId, userId);
228+
taskRequestId = (await taskRequestsModel.addOrUpdate(taskId, userId)).id;
208229
});
209230

210231
it("should be successful when the user is not a super user", function (done) {
211232
chai
212233
.request(app)
213-
.get(`/taskRequests/taskrequstid`)
234+
.get(`/taskRequests/${taskRequestId}`)
214235
.set("cookie", `${cookieName}=${jwt}`)
215236
.end((err, res) => {
216237
if (err) {

test/unit/models/task-requests.test.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
const chai = require("chai");
22
const sinon = require("sinon");
33
const { expect } = chai;
4+
const assert = require("chai").assert;
45
const {
56
createRequest,
67
fetchTaskRequests,
78
approveTaskRequest,
89
fetchPaginatedTaskRequests,
10+
fetchTaskRequestById,
911
addNewFields,
1012
removeOldField,
1113
addUsersCountAndCreatedAt,
@@ -197,6 +199,30 @@ describe("Task requests | models", function () {
197199
});
198200
});
199201

202+
describe("fetchTaskRequestById", function () {
203+
afterEach(async function () {
204+
await cleanDb();
205+
});
206+
207+
it("should return task request data when task request exists", async function () {
208+
const requestData = mockData.taskRequestData;
209+
const addedTaskRequest = await createRequest(requestData, "testUser");
210+
const result = await fetchTaskRequestById(addedTaskRequest.id);
211+
assert.isTrue(result.taskRequestExists, "Task request should exist");
212+
213+
expect(result.taskRequestExists).to.be.equal(true);
214+
expect(result.taskRequestData.id).to.equal(addedTaskRequest.id);
215+
});
216+
217+
it("should return taskRequestExists as false when task request does not exist", async function () {
218+
const mockTaskRequestId = "taskRequest1234";
219+
const requestData = mockData.taskRequestData;
220+
await createRequest(requestData, "testUser");
221+
const result = await fetchTaskRequestById(mockTaskRequestId);
222+
expect(result.taskRequestExists).to.be.equal(false);
223+
});
224+
});
225+
200226
describe("fetchTaskRequests", function () {
201227
beforeEach(async function () {
202228
const approvedTaskRequest = {

0 commit comments

Comments
 (0)