Skip to content

Commit 2555dcb

Browse files
authored
Merge pull request #1125 from khushi818/fix/assignee-handle
fixed the bug for assignee patch request
2 parents 588a387 + 22fef8a commit 2555dcb

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

controllers/tasks.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const { OLD_ACTIVE, OLD_BLOCKED, OLD_PENDING } = TASK_STATUS_OLD;
77
const { IN_PROGRESS, BLOCKED, SMOKE_TESTING, ASSIGNED } = TASK_STATUS;
88
const { INTERNAL_SERVER_ERROR, SOMETHING_WENT_WRONG } = require("../constants/errorMessages");
99
const dependencyModel = require("../models/tasks");
10+
const userQuery = require("../models/users");
1011
/**
1112
* Creates new task
1213
*
@@ -177,7 +178,12 @@ const updateTask = async (req, res) => {
177178
if (!task.taskData) {
178179
return res.boom.notFound("Task not found");
179180
}
180-
181+
if (req.body?.assignee) {
182+
const user = await userQuery.fetchUser({ username: req.body.assignee });
183+
if (!user.userExists) {
184+
return res.boom.notFound("User doesn't exist");
185+
}
186+
}
181187
await tasks.updateTask(req.body, req.params.id);
182188
return res.status(204).send();
183189
} catch (err) {

test/integration/tasks.test.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,37 @@ describe("Tasks", function () {
365365
return done();
366366
});
367367
});
368+
369+
it("Should return 204 if assignee exists", function (done) {
370+
chai
371+
.request(app)
372+
.patch(`/tasks/${taskId}`)
373+
.set("cookie", `${cookieName}=${jwt}`)
374+
.send({ assignee: `${userData[4].username}` })
375+
.end((err, res) => {
376+
if (err) {
377+
return done(err);
378+
}
379+
expect(res).to.have.status(204);
380+
return done();
381+
});
382+
});
383+
384+
it("should return 404 if assignee is not in user db", function (done) {
385+
chai
386+
.request(app)
387+
.patch(`/tasks/${taskId}`)
388+
.set("cookie", `${cookieName}=${jwt}`)
389+
.send({ assignee: "invaliduser" })
390+
.end((err, res) => {
391+
if (err) {
392+
return done(err);
393+
}
394+
expect(res).to.have.status(404);
395+
expect(res.body.message).to.be.equal("User doesn't exist");
396+
return done();
397+
});
398+
});
368399
});
369400

370401
describe("GET /tasks/:username", function () {

0 commit comments

Comments
 (0)