Skip to content

Commit c8237f1

Browse files
authored
Merge pull request #1103 from Real-Dev-Squad/feat/tests-for-tracked-progress-v1.0
Adds tests for tracked progress route
2 parents dead12d + 320f633 commit c8237f1

File tree

5 files changed

+619
-37
lines changed

5 files changed

+619
-37
lines changed

models/monitor.js

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,7 @@ const { Conflict, NotFound } = require("http-errors");
22
const fireStore = require("../utils/firestore");
33
const trackedProgressesCollection = fireStore.collection("trackedProgresses");
44
const { assertUserOrTaskExists } = require("../utils/progresses");
5-
const {
6-
buildTrackedProgressQueryByType,
7-
buildQueryForFetchingDocsOfType,
8-
getTrackedProgressDocs,
9-
buildQueryToFetchTrackedDoc,
10-
} = require("../utils/monitor");
5+
const { buildQueryByTypeId, buildQueryForFetchingDocsOfType, getTrackedProgressDocs } = require("../utils/monitor");
116
const { RESPONSE_MESSAGES } = require("../constants/monitor");
127
const { RESOURCE_NOT_FOUND, RESOURCE_ALREADY_TRACKED } = RESPONSE_MESSAGES;
138

@@ -27,7 +22,7 @@ const { RESOURCE_NOT_FOUND, RESOURCE_ALREADY_TRACKED } = RESPONSE_MESSAGES;
2722
const createTrackedProgressDocument = async (documentData) => {
2823
const { userId, taskId } = documentData;
2924
await assertUserOrTaskExists({ userId, taskId });
30-
const query = buildTrackedProgressQueryByType({ userId, taskId });
25+
const query = buildQueryByTypeId({ userId, taskId });
3126
const existingDocumentSnapshot = await query.get();
3227
if (!existingDocumentSnapshot.empty) {
3328
throw new Conflict(RESOURCE_ALREADY_TRACKED);
@@ -59,7 +54,7 @@ const createTrackedProgressDocument = async (documentData) => {
5954
const updateTrackedProgressDocument = async (req) => {
6055
const { type, typeId } = req.params;
6156
const updatedData = { type, [`${type}Id`]: typeId };
62-
const query = buildTrackedProgressQueryByType(updatedData);
57+
const query = buildQueryByTypeId(updatedData);
6358
const existingDocumentSnapshot = await query.get();
6459
if (existingDocumentSnapshot.empty) {
6560
throw new NotFound(RESOURCE_NOT_FOUND);
@@ -85,7 +80,7 @@ const getTrackedProgressDocuments = async (reqQuery) => {
8580
const { userId, taskId } = reqQuery;
8681
if (userId || taskId) {
8782
await assertUserOrTaskExists({ userId, taskId });
88-
query = buildQueryToFetchTrackedDoc(reqQuery);
83+
query = buildQueryByTypeId(reqQuery);
8984
docsData = (await getTrackedProgressDocs(query))[0];
9085
} else {
9186
query = buildQueryForFetchingDocsOfType(reqQuery);
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
const predefinedTrackedProgressDataForUser = {
2+
type: "user",
3+
monitored: true,
4+
frequency: 1,
5+
createdAt: "2023-05-20T03:49:20.298Z",
6+
updatedAt: "2023-05-20T03:49:20.298Z",
7+
};
8+
9+
const predefinedTrackedProgressDataForTask = {
10+
type: "task",
11+
monitored: true,
12+
frequency: 4,
13+
createdAt: "2023-05-20T03:49:20.298Z",
14+
updatedAt: "2023-05-20T03:49:20.298Z",
15+
};
16+
17+
const trackedProgressUserDataForPost = {
18+
type: "user",
19+
monitored: true,
20+
};
21+
22+
const trackedProgressTaskDataForPost = {
23+
type: "task",
24+
monitored: true,
25+
frequency: 2,
26+
};
27+
28+
const trackedProgressDataForPatch = {
29+
monitored: false,
30+
};
31+
32+
/**
33+
* Checks if the given value is a valid ISO string representation of a date.
34+
*
35+
* @param {string} value - The value to check.
36+
* @returns {boolean} - Returns true if the value is a valid ISO string, otherwise false.
37+
*
38+
*/
39+
const isISOString = (value) => {
40+
return new Date(value).toISOString() === value;
41+
};
42+
43+
module.exports = {
44+
predefinedTrackedProgressDataForUser,
45+
predefinedTrackedProgressDataForTask,
46+
trackedProgressUserDataForPost,
47+
trackedProgressTaskDataForPost,
48+
trackedProgressDataForPatch,
49+
isISOString,
50+
};

0 commit comments

Comments
 (0)