Skip to content

Commit 7a43897

Browse files
committed
add test for retrieving progress document for the task on a particular date
1 parent 96946c6 commit 7a43897

File tree

2 files changed

+78
-1
lines changed

2 files changed

+78
-1
lines changed

test/integration/progressesTasks.test.js

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,4 +319,81 @@ describe("Test Progress Updates API for Tasks", function () {
319319
});
320320
});
321321
});
322+
323+
describe("Verify the GET endpoint for retrieving progress document for the user on a particular date", function () {
324+
let userId;
325+
let taskId;
326+
let anotherTaskId;
327+
328+
beforeEach(async function () {
329+
userId = await addUser(userData[0]);
330+
const taskObject = await tasks.updateTask(taskData[0]);
331+
taskId = taskObject.taskId;
332+
const anotherTaskObject = await tasks.updateTask(taskData[0]);
333+
anotherTaskId = anotherTaskObject.taskId;
334+
const progressData = stubbedModelTaskProgressData(userId, taskId, 1683072000000, 1682985600000);
335+
await firestore.collection("progresses").doc("progressDoc").set(progressData);
336+
});
337+
338+
it("Returns the progress data for a specific task", function (done) {
339+
chai
340+
.request(app)
341+
.get(`/progresses/task/${taskId}/date/2023-05-02`)
342+
.end((err, res) => {
343+
if (err) return done(err);
344+
expect(res).to.have.status(200);
345+
expect(res.body).to.have.keys(["message", "data"]);
346+
expect(res.body.data).to.be.an("object");
347+
expect(res.body.message).to.be.equal("Progress document retrieved successfully.");
348+
expect(res.body.data).to.have.keys([
349+
"id",
350+
"type",
351+
"completed",
352+
"planned",
353+
"blockers",
354+
"userId",
355+
"taskId",
356+
"createdAt",
357+
"date",
358+
]);
359+
return done();
360+
});
361+
});
362+
363+
it("Returns 400 for bad request", function (done) {
364+
chai
365+
.request(app)
366+
.get(`/progresses/task/${taskId}/date/2023-05-33`)
367+
.end((err, res) => {
368+
if (err) return done(err);
369+
expect(res).to.have.status(400);
370+
expect(res.body.message).to.be.equal('"date" must be in ISO 8601 date format');
371+
return done();
372+
});
373+
});
374+
375+
it("Returns 404 for invalid task id", function (done) {
376+
chai
377+
.request(app)
378+
.get(`/progresses/task/invalidTaskId/date/2023-05-02`)
379+
.end((err, res) => {
380+
if (err) return done(err);
381+
expect(res).to.have.status(404);
382+
expect(res.body.message).to.be.equal("Task with id invalidTaskId does not exist.");
383+
return done();
384+
});
385+
});
386+
387+
it("Returns 404 if the progress document doesn't exist for the task", function (done) {
388+
chai
389+
.request(app)
390+
.get(`/progresses/task/${anotherTaskId}/date/2023-05-02`)
391+
.end((err, res) => {
392+
if (err) return done(err);
393+
expect(res).to.have.status(404);
394+
expect(res.body.message).to.be.equal("No progress records found.");
395+
return done();
396+
});
397+
});
398+
});
322399
});

test/integration/progressesUsers.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ describe("Test Progress Updates API for Users", function () {
354354
});
355355
});
356356

357-
it("Returns 404 if the progress document doesn't exist for the users", function (done) {
357+
it("Returns 404 if the progress document doesn't exist for the user", function (done) {
358358
chai
359359
.request(app)
360360
.get(`/progresses/user/${anotherUserId}/date/2023-05-02`)

0 commit comments

Comments
 (0)