Skip to content

Commit 96946c6

Browse files
committed
add test for retrieving progress document for the user on a particular date
1 parent 16e15c7 commit 96946c6

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

test/integration/progressesUsers.test.js

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,4 +294,76 @@ describe("Test Progress Updates API for Users", function () {
294294
});
295295
});
296296
});
297+
298+
describe("Verify the GET endpoint for retrieving progress document for the user on a particular date", function () {
299+
let userId;
300+
let anotherUserId;
301+
302+
beforeEach(async function () {
303+
userId = await addUser(userData[0]);
304+
anotherUserId = await addUser(userData[1]);
305+
const progressData = stubbedModelProgressData(userId, 1683072000000, 1682985600000);
306+
await firestore.collection("progresses").doc("progressDoc").set(progressData);
307+
});
308+
309+
it("Returns the progress data for a specific user", function (done) {
310+
chai
311+
.request(app)
312+
.get(`/progresses/user/${userId}/date/2023-05-02`)
313+
.end((err, res) => {
314+
if (err) return done(err);
315+
expect(res).to.have.status(200);
316+
expect(res.body).to.have.keys(["message", "data"]);
317+
expect(res.body.data).to.be.an("object");
318+
expect(res.body.message).to.be.equal("Progress document retrieved successfully.");
319+
expect(res.body.data).to.have.keys([
320+
"id",
321+
"type",
322+
"completed",
323+
"planned",
324+
"blockers",
325+
"userId",
326+
"createdAt",
327+
"date",
328+
]);
329+
return done();
330+
});
331+
});
332+
333+
it("Returns 400 for bad request", function (done) {
334+
chai
335+
.request(app)
336+
.get(`/progresses/user/${userId}/date/2023-05-33`)
337+
.end((err, res) => {
338+
if (err) return done(err);
339+
expect(res).to.have.status(400);
340+
expect(res.body.message).to.be.equal('"date" must be in ISO 8601 date format');
341+
return done();
342+
});
343+
});
344+
345+
it("Returns 404 for invalid user id", function (done) {
346+
chai
347+
.request(app)
348+
.get(`/progresses/user/invalidUserId/date/2023-05-02`)
349+
.end((err, res) => {
350+
if (err) return done(err);
351+
expect(res).to.have.status(404);
352+
expect(res.body.message).to.be.equal("User with id invalidUserId does not exist.");
353+
return done();
354+
});
355+
});
356+
357+
it("Returns 404 if the progress document doesn't exist for the users", function (done) {
358+
chai
359+
.request(app)
360+
.get(`/progresses/user/${anotherUserId}/date/2023-05-02`)
361+
.end((err, res) => {
362+
if (err) return done(err);
363+
expect(res).to.have.status(404);
364+
expect(res.body.message).to.be.equal("No progress records found.");
365+
return done();
366+
});
367+
});
368+
});
297369
});

0 commit comments

Comments
 (0)