Skip to content

Commit 211dd38

Browse files
Updates user status on task update (#1628)
* fix : updates the user status when task is created * chore : changes to before test helper to before each and adds after each in task requests test
1 parent f983ce8 commit 211dd38

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

controllers/tasksRequests.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const { INTERNAL_SERVER_ERROR, SOMETHING_WENT_WRONG } = require("../constants/er
22
const { TASK_REQUEST_TYPE } = require("../constants/taskRequests");
33
const taskRequestsModel = require("../models/taskRequests");
44
const tasksModel = require("../models/tasks.js");
5+
const { updateUserStatusOnTaskUpdate } = require("../models/userStatus");
56
const githubService = require("../services/githubService");
67
const usersUtils = require("../utils/users");
78

@@ -167,6 +168,8 @@ const approveTaskRequest = async (req, res) => {
167168
if (response.isTaskRequestInvalid) {
168169
return res.boom.badRequest("Task request was previously approved or rejected.");
169170
}
171+
await updateUserStatusOnTaskUpdate(user.username);
172+
170173
return res.status(200).json({
171174
message: `Task successfully assigned to user ${response.approvedTo}`,
172175
taskRequest: response.taskRequest,

test/integration/taskRequests.test.js

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ const config = require("config");
2020
const { TASK_REQUEST_TYPE } = require("../../constants/taskRequests");
2121
const usersUtils = require("../../utils/users");
2222
const githubService = require("../../services/githubService");
23+
const { userState } = require("../../constants/userStatus");
2324

2425
const cookieName = config.get("userToken.cookieName");
2526

@@ -391,7 +392,7 @@ describe("Task Requests", function () {
391392
let activeUserId, oooUserId;
392393

393394
describe("When the user is super user", function () {
394-
before(async function () {
395+
beforeEach(async function () {
395396
userId = await addUser(member);
396397
activeUserId = await addUser(activeMember);
397398
oooUserId = await addUser(member2);
@@ -407,6 +408,10 @@ describe("Task Requests", function () {
407408
await userStatusModel.updateUserStatus(oooUserId, { ...oooUserStatus });
408409
await taskRequestsModel.addOrUpdate(taskId, userId);
409410
});
411+
afterEach(async function () {
412+
sinon.restore();
413+
await cleanDb();
414+
});
410415

411416
it("should match response for successfull approval", function (done) {
412417
sinon.stub(taskRequestsModel, "approveTaskRequest").resolves({ approvedTo: member.username });
@@ -518,6 +523,38 @@ describe("Task Requests", function () {
518523
return done();
519524
});
520525
});
526+
describe("Checks the user status", function () {
527+
it("Should change the user status to ACTIVE when request is successful", async function () {
528+
sinon.stub(taskRequestsModel, "approveTaskRequest").resolves({ approvedTo: member.username });
529+
const res = await chai
530+
.request(app)
531+
.patch("/taskRequests/approve")
532+
.set("cookie", `${cookieName}=${jwt}`)
533+
.send({
534+
taskRequestId: taskId,
535+
userId,
536+
});
537+
538+
expect(res).to.have.status(200);
539+
const userStatus = await userStatusModel.getUserStatus(userId);
540+
expect(userStatus.data.currentStatus.state).to.be.equal(userState.ACTIVE);
541+
});
542+
it("Should not change the user status to ACTIVE when request is unsuccessful", async function () {
543+
sinon.stub(taskRequestsModel, "approveTaskRequest").resolves({ isTaskRequestInvalid: true });
544+
const res = await chai
545+
.request(app)
546+
.patch("/taskRequests/approve")
547+
.set("cookie", `${cookieName}=${jwt}`)
548+
.send({
549+
taskRequestId: taskId,
550+
userId,
551+
});
552+
553+
expect(res).to.have.status(400);
554+
const userStatus = await userStatusModel.getUserStatus(userId);
555+
expect(userStatus.data.currentStatus.state).to.be.equal(userState.IDLE);
556+
});
557+
});
521558
});
522559

523560
describe("When the user is not super user", function () {

0 commit comments

Comments
 (0)