Skip to content

Commit

Permalink
refactor test
Browse files Browse the repository at this point in the history
  • Loading branch information
vinit717 committed Jul 18, 2023
1 parent 9766888 commit 19477d2
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 10 deletions.
2 changes: 1 addition & 1 deletion controllers/tasks.js
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ const updateTask = async (req, res) => {

return res.status(204).send();
} catch (err) {
if (err.message.includes("Invalid dependency taskId")) {
if (err.message.includes("Invalid dependency passed")) {
const errorMessage = "Invalid dependency";
logger.error(`Error while updating task: ${errorMessage}`);
return res.boom.badRequest(errorMessage);
Expand Down
6 changes: 5 additions & 1 deletion models/tasks.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ const updateTask = async (taskData, taskId = null) => {
try {
taskData = await toFirestoreData(taskData);
if (taskId) {
// console.log("taskid", taskId);
const task = await tasksModel.doc(taskId).get();
// console.log("task", task);
if (taskData.status === "VERIFIED") {
taskData = { ...taskData, endsOn: Math.floor(Date.now() / 1000) };
}
Expand All @@ -28,11 +30,13 @@ const updateTask = async (taskData, taskId = null) => {
...taskWithoutDependsOn,
});
if (dependsOn) {
// console.log("depends", dependsOn);
await firestore.runTransaction(async (transaction) => {
const dependencyQuery = dependencyModel.where("taskId", "==", taskId);
const existingDependenciesSnapshot = await transaction.get(dependencyQuery);
const existingDependsOnIds = existingDependenciesSnapshot.docs.map((doc) => doc.data().dependsOn);
const newDependencies = dependsOn.filter((dependency) => !existingDependsOnIds.includes(dependency));
// console.log("dependsnew", newDependencies);
if (newDependencies.length > 0) {
for (const dependency of newDependencies) {
const dependencyDoc = await tasksModel.doc(dependency).get();
Expand All @@ -44,7 +48,7 @@ const updateTask = async (taskData, taskId = null) => {
const docRef = dependencyModel.doc();
transaction.set(docRef, taskDependsOn);
} else {
throw new Error("Invalid dependency taskId");
throw new Error("Invalid dependency passed");
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion test/fixtures/tasks/tasks.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ module.exports = () => {
endsOn: 1234,
startedOn: 4567,
status: "COMPLETED",
dependsOn: ["taskId2", "taskId3"],
dependsOn: [],
percentCompleted: 100,
participants: [],
completionAward: { [DINERO]: 3, [NEELAM]: 300 },
Expand Down
48 changes: 41 additions & 7 deletions test/unit/models/tasks.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ const { addDependency, updateTask } = require("../../../models/tasks");
const firestore = require("../../../utils/firestore");
const { TASK_STATUS } = require("../../../constants/tasks");
const dependencyModel = firestore.collection("TaskDependencies");
// const tasksModel = firestore.collection("tasks");
const sinon = require("sinon");
describe("tasks", function () {
afterEach(async function () {
Expand Down Expand Up @@ -132,16 +133,49 @@ describe("tasks", function () {
});
});

describe("updateDependency", function () {
it("should add dependencies to firestore", async function () {
describe("update Dependency", function () {
beforeEach(async function () {
const taskId = (await tasks.updateTask(tasksData[5])).taskId;
const taskId1 = (await tasks.updateTask(tasksData[3])).taskId;
const taskId2 = (await tasks.updateTask(tasksData[4])).taskId;
const dependsOn = [taskId1, taskId2];
const data = {
taskId: "taskId1",
dependsOn: ["taskId2", "taskId3"],
dependsOn,
};
const result = await updateTask(data);
// const result = await updateTask(data, taskId);
// const sampleTask1 = taskArr[0];
// sampleTask1.assignee = userId1;
// sampleTask1.status = "ASSIGNED";

expect(result.taskDetails.taskId).to.equal(data.taskId);
expect(result.taskDetails.dependsOn).to.equal(data.dependsOn);
await firestore.collection("tasks").doc(taskId).set(tasksData[5]);
await firestore.collection("taskDependencies").doc(taskId).set(data);
});
it("should add dependencies to firestore", async function () {
// const taskId = (await tasks.updateTask(tasksData[5])).taskId;
// const taskId1 = (await tasks.updateTask(tasksData[3])).taskId;
// const taskId2 = (await tasks.updateTask(tasksData[4])).taskId;
// const dependsOn = [taskId1, taskId2];
// const data = {
// dependsOn,
// };
// const result = await updateTask(data, taskId);
// console.log("result", result);
// const response = await tasks.fetchTask(taskId);
// console.log("************RESPONSE****", response);
// const tdata = (await tasksModel.doc(taskId).get()).data();
// console.log("tdata", tdata);
// const userStatus001Data = (await dependencyModel.doc(taskId).get()).data();
// console.log("usssss", userStatus001Data);
// const dependencySnapshot = await dependencyModel.where("taskId", "==", taskId).limit(1).get();
// const dependencyData = (await dependencyModel.doc(response.dependencyDocReference[0]).get()).data();
// console.log(dependencyData);
// console.log("dddsssssss", dependencySnapshot.docs[0]);
// dependencySnapshot.docs.forEach((doc) => {
// const dependency = doc.get("dependsOn");
// console.log("dependency1111111111111111111111111", dependency);
// });
// console.log("*********aaaaaaaaaaaaaaa***", response.tasksData);
// expect(response.tasksData.dependsOn).to.equal(data.dependsOn);
});
});

Expand Down

0 comments on commit 19477d2

Please sign in to comment.