Skip to content

Commit 854f1c8

Browse files
authored
Merge branch 'develop' into feat/test-user-ooo-acknowledge
2 parents 40ab7dc + b3b4c17 commit 854f1c8

File tree

3 files changed

+43
-38
lines changed

3 files changed

+43
-38
lines changed

models/discordactions.js

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,7 +1019,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => {
10191019
usersMap.set(taskAssignee, {
10201020
tasksCount: 1,
10211021
latestProgressCount: dateGap + 1,
1022-
isActive: false,
1022+
isOOO: false,
10231023
});
10241024
}
10251025
const updateTasksIdMap = async () => {
@@ -1038,10 +1038,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => {
10381038
const userIdChunks = chunks(Array.from(usersMap.keys()), FIRESTORE_IN_CLAUSE_SIZE);
10391039
const userStatusSnapshotPromise = userIdChunks.map(
10401040
async (userIdList) =>
1041-
await userStatusModel
1042-
.where("currentStatus.state", "==", userState.ACTIVE)
1043-
.where("userId", "in", userIdList)
1044-
.get()
1041+
await userStatusModel.where("currentStatus.state", "==", userState.OOO).where("userId", "in", userIdList).get()
10451042
);
10461043
const userDetailsPromise = userIdChunks.map(
10471044
async (userIdList) =>
@@ -1055,7 +1052,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => {
10551052

10561053
userStatusChunks.forEach((userStatusList) =>
10571054
userStatusList.forEach((doc) => {
1058-
usersMap.get(doc.data().userId).isActive = true;
1055+
usersMap.get(doc.data().userId).isOOO = true;
10591056
})
10601057
);
10611058

@@ -1097,7 +1094,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => {
10971094
const isDiscordMember = !!discordUserData;
10981095
const shouldAddRole =
10991096
userData.latestProgressCount === 0 &&
1100-
userData.isActive &&
1097+
!userData.isOOO &&
11011098
isDiscordMember &&
11021099
discordUserData.isDeveloper &&
11031100
!discordUserData.isMaven &&

test/integration/tasks.test.js

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1813,39 +1813,45 @@ describe("Tasks", function () {
18131813
});
18141814

18151815
describe("GET /tasks/users", function () {
1816-
let activeUserWithProgressUpdates;
1816+
let activeUserWithMissedProgressUpdates;
18171817
let idleUser;
18181818
let userNotInDiscord;
18191819
let jwtToken;
18201820
let getDiscordMembersStub;
1821+
let oooUserWithMissedUpdates;
1822+
let activeUserWithProgressUpdates;
18211823

18221824
beforeEach(async function () {
18231825
await cleanDb();
18241826
idleUser = { ...userData[9], discordId: getDiscordMembers[0].user.id };
1825-
activeUserWithProgressUpdates = { ...userData[10], discordId: getDiscordMembers[1].user.id };
1826-
const activeUserWithNoUpdates = { ...userData[0], discordId: getDiscordMembers[2].user.id };
1827+
activeUserWithMissedProgressUpdates = { ...userData[10], discordId: getDiscordMembers[1].user.id };
1828+
activeUserWithProgressUpdates = { ...userData[0], discordId: getDiscordMembers[2].user.id };
18271829
userNotInDiscord = { ...userData[4], discordId: "Not in discord" };
1830+
oooUserWithMissedUpdates = { ...userData[1], discordId: getDiscordMembers[3].user.id };
1831+
18281832
const {
18291833
idleStatus: idleUserStatus,
18301834
activeStatus: activeUserStatus,
18311835
userStatusDataForOooState: oooUserStatus,
18321836
} = userStatusData;
18331837
const userIdList = await Promise.all([
1834-
await addUser(idleUser), // idle user with no task progress updates
1835-
await addUser(activeUserWithProgressUpdates), // active user with task progress updates
1836-
await addUser(activeUserWithNoUpdates), // active user with no task progress updates
1837-
await addUser(userNotInDiscord), // OOO user with
1838+
await addUser(idleUser),
1839+
await addUser(activeUserWithMissedProgressUpdates),
1840+
await addUser(activeUserWithProgressUpdates),
1841+
await addUser(userNotInDiscord),
1842+
await addUser(oooUserWithMissedUpdates),
18381843
]);
18391844
await Promise.all([
18401845
await userStatusModel.updateUserStatus(userIdList[0], idleUserStatus),
18411846
await userStatusModel.updateUserStatus(userIdList[1], activeUserStatus),
18421847
await userStatusModel.updateUserStatus(userIdList[2], activeUserStatus),
18431848
await userStatusModel.updateUserStatus(userIdList[3], oooUserStatus),
1849+
await userStatusModel.updateUserStatus(userIdList[4], oooUserStatus),
18441850
]);
18451851

18461852
const tasksPromise = [];
18471853

1848-
for (let index = 0; index < 4; index++) {
1854+
for (let index = 0; index < 5; index++) {
18491855
const task = tasksData[index];
18501856
const validTask = {
18511857
...task,
@@ -1889,14 +1895,15 @@ describe("Tasks", function () {
18891895
.get("/tasks/users/discord")
18901896
.query({ q: `status:${tasksUsersStatus.MISSED_UPDATES}` })
18911897
.set("Authorization", `Bearer ${jwtToken}`);
1892-
expect(response.body).to.be.deep.equal({
1893-
message: "Discord details of users with status missed updates fetched successfully",
1894-
data: {
1895-
usersToAddRole: [activeUserWithProgressUpdates.discordId],
1896-
tasks: 4,
1897-
missedUpdatesTasks: 3,
1898-
},
1899-
});
1898+
1899+
expect(response.body.message).to.equal(
1900+
"Discord details of users with status missed updates fetched successfully"
1901+
);
1902+
expect(response.body.data.tasks).to.equal(5);
1903+
expect(response.body.data.missedUpdatesTasks).to.equal(4);
1904+
expect(response.body.data.usersToAddRole.includes(activeUserWithMissedProgressUpdates.discordId)).to.equal(true);
1905+
expect(response.body.data.usersToAddRole.includes(idleUser.discordId)).to.equal(true);
1906+
expect(response.body.data.usersToAddRole.includes(oooUserWithMissedUpdates.discordId)).to.equal(false);
19001907
expect(response.status).to.be.equal(200);
19011908
});
19021909

@@ -1905,15 +1912,15 @@ describe("Tasks", function () {
19051912
.request(app)
19061913
.get("/tasks/users/discord")
19071914
.query({
1908-
size: 5,
1915+
size: 6,
19091916
q: `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -weekday:tue -weekday:wed -weekday:thu -weekday:fri -date:231423432 -days-count:4`,
19101917
})
19111918
.set("Authorization", `Bearer ${jwtToken}`);
19121919
expect(response.body).to.be.deep.equal({
19131920
message: "Discord details of users with status missed updates fetched successfully",
19141921
data: {
19151922
usersToAddRole: [],
1916-
tasks: 4,
1923+
tasks: 5,
19171924
missedUpdatesTasks: 0,
19181925
},
19191926
});

test/unit/models/discordactions.test.js

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -685,26 +685,27 @@ describe("discordactions", function () {
685685
});
686686

687687
describe("getMissedProgressUpdatesUsers", function () {
688-
let activeUserWithProgressUpdates;
688+
let activeUserWithMissedProgressUpdates;
689689
let idleUser;
690690
let userNotInDiscord;
691691
let activeUserId;
692+
let activeUserWithProgressUpdates;
692693

693694
beforeEach(async function () {
694695
idleUser = { ...userData[9], discordId: getDiscordMembers[0].user.id };
695-
activeUserWithProgressUpdates = { ...userData[10], discordId: getDiscordMembers[1].user.id };
696-
const activeUserWithNoUpdates = { ...userData[0], discordId: getDiscordMembers[2].user.id };
696+
activeUserWithMissedProgressUpdates = { ...userData[10], discordId: getDiscordMembers[1].user.id };
697+
activeUserWithProgressUpdates = { ...userData[0], discordId: getDiscordMembers[2].user.id };
697698
userNotInDiscord = { ...userData[4], discordId: "Not in discord" };
698699
const {
699700
idleStatus: idleUserStatus,
700701
activeStatus: activeUserStatus,
701702
userStatusDataForOooState: oooUserStatus,
702703
} = userStatusData;
703704
const userIdList = await Promise.all([
704-
await addUser(idleUser), // idle user with no task progress updates
705-
await addUser(activeUserWithProgressUpdates), // active user with task progress updates
706-
await addUser(activeUserWithNoUpdates), // active user with no task progress updates
707-
await addUser(userNotInDiscord), // OOO user with no task progress updates
705+
await addUser(idleUser),
706+
await addUser(activeUserWithMissedProgressUpdates),
707+
await addUser(activeUserWithProgressUpdates),
708+
await addUser(userNotInDiscord),
708709
]);
709710
activeUserId = userIdList[2];
710711
await Promise.all([
@@ -751,17 +752,17 @@ describe("discordactions", function () {
751752
it("should list of users who missed updating progress", async function () {
752753
const result = await getMissedProgressUpdatesUsers();
753754
expect(result).to.be.an("object");
754-
expect(result).to.be.deep.equal({
755-
tasks: 4,
756-
missedUpdatesTasks: 3,
757-
usersToAddRole: [activeUserWithProgressUpdates.discordId],
758-
});
755+
expect(result.tasks).to.not.equal(undefined);
756+
expect(result.tasks).to.equal(4);
757+
expect(result.missedUpdatesTasks).to.not.equal(undefined);
758+
expect(result.missedUpdatesTasks).to.equal(3);
759+
expect(result.usersToAddRole.includes(activeUserWithMissedProgressUpdates.discordId)).to.equal(true);
760+
expect(result.usersToAddRole.includes(idleUser.discordId)).to.equal(true);
759761
});
760762

761763
it("should not list of users who are not active and who missed updating progress", async function () {
762764
const result = await getMissedProgressUpdatesUsers();
763765
expect(result).to.be.an("object");
764-
expect(result.usersToAddRole).to.not.contain(idleUser.discordId);
765766
expect(result.usersToAddRole).to.not.contain(userNotInDiscord.discordId);
766767
});
767768

0 commit comments

Comments
 (0)