Skip to content

Commit c77e3df

Browse files
committed
Add test for super user check
1 parent dbea094 commit c77e3df

File tree

2 files changed

+58
-10
lines changed

2 files changed

+58
-10
lines changed

tests/fixtures/fixture.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { InteractionType } from "discord-interactions";
88
import { UserBackend } from "../../src/typeDefinitions/userBackend.types";
99
import { TaskOverdueResponse } from "../../src/typeDefinitions/taskOverdue.types";
1010
import { UserStatus } from "../../src/typeDefinitions/userStatus.type";
11+
import { SUPER_USER_ONE } from "../../src/constants/variables";
1112

1213
export const dummyHelloMessage: discordMessageRequest = {
1314
type: InteractionType.APPLICATION_COMMAND,
@@ -292,6 +293,30 @@ export const userFutureStatusMock: UserStatus = {
292293
message: "User Status found successfully.",
293294
};
294295

296+
export const messageRequestMemberMockNonSuperUser = {
297+
member: {
298+
user: {
299+
id: 123455,
300+
username: "ankush",
301+
avatar: "https://cdn.discordapp.com/avatars/1/userAvatarHash.jpg",
302+
discriminator: "discriminator",
303+
},
304+
joined_at: "2024-03-07T18:46:20.327000+00:00",
305+
},
306+
};
307+
308+
export const messageRequestMemberMockSuperUser = {
309+
member: {
310+
user: {
311+
id: Number(SUPER_USER_ONE),
312+
username: "ankush",
313+
avatar: "https://cdn.discordapp.com/avatars/1/userAvatarHash.jpg",
314+
discriminator: "discriminator",
315+
},
316+
joined_at: "2024-03-07T18:46:20.327000+00:00",
317+
},
318+
};
319+
295320
export const memberGroupRoleList: memberGroupRole[] = [
296321
{ userid: "XXXX", roleid: "XXXX" },
297322
{ userid: "YYYY", roleid: "YYYY" },

tests/unit/handlers/kickEachUser.test.ts

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
import { kickEachUser } from "../../../src/controllers/kickEachUser";
2-
import { transformedArgument, ctx } from "../../fixtures/fixture";
2+
import {
3+
transformedArgument,
4+
ctx,
5+
messageRequestMemberMockSuperUser,
6+
} from "../../fixtures/fixture";
37

48
describe("kickEachUser", () => {
59
it("should run when found no users with Matched Role", async () => {
@@ -13,15 +17,7 @@ describe("kickEachUser", () => {
1317
const messageRequestMember = {
1418
roleToBeRemovedObj: roleToBeTaggedObj,
1519
channelId: 12345,
16-
member: {
17-
user: {
18-
id: 123455,
19-
username: "ankush",
20-
avatar: "",
21-
discriminator: "",
22-
},
23-
joined_at: "12345",
24-
},
20+
...messageRequestMemberMockSuperUser,
2521
};
2622
const response = kickEachUser(messageRequestMember, env, ctx);
2723

@@ -36,4 +32,31 @@ describe("kickEachUser", () => {
3632
`We couldn't find any user(s) assigned to <@&${roleID}> role.`
3733
);
3834
});
35+
36+
it("should fail when a non super_user runs ", async () => {
37+
const env = {
38+
BOT_PUBLIC_KEY: "xyz",
39+
DISCORD_GUILD_ID: "123",
40+
DISCORD_TOKEN: "abc",
41+
};
42+
43+
const { roleToBeTaggedObj } = transformedArgument; // Extracting roleToBeTaggedObj
44+
const messageRequestMember = {
45+
roleToBeRemovedObj: roleToBeTaggedObj,
46+
channelId: 12345,
47+
...messageRequestMemberMockSuperUser,
48+
};
49+
const response = kickEachUser(messageRequestMember, env, ctx);
50+
51+
const roleID = roleToBeTaggedObj.value;
52+
53+
expect(response).toBeInstanceOf(Promise);
54+
55+
const textMessage: { data: { content: string } } = await response.then(
56+
(res) => res.json()
57+
);
58+
expect(textMessage.data.content).toBe(
59+
`You're not authorized to make this request.`
60+
);
61+
});
3962
});

0 commit comments

Comments
 (0)