Skip to content

Commit 4624c6c

Browse files
committed
rename test file
1 parent 489e135 commit 4624c6c

File tree

1 file changed

+149
-0
lines changed

1 file changed

+149
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
import {
2+
addUsersToGroup,
3+
addQueriesToGroup,
4+
getAllGroupMembers,
5+
getAllGroupQueries,
6+
removeUsersFromGroup,
7+
removeQueriesFromGroup,
8+
saveUserGroupMembership,
9+
} from "@/app/backend/usergroup-management";
10+
import { getAllUsersWithSingleGroupStatus } from "@/app/backend/user-management";
11+
import { getDbClient } from "@/app/backend/dbClient";
12+
import { User } from "@/app/models/entities/users";
13+
import { suppressConsoleLogs } from "./fixtures";
14+
import { QueryDataColumn } from "@/app/(pages)/queryBuilding/utils";
15+
16+
const dbClient = getDbClient();
17+
18+
jest.mock("@/app/utils/auth", () => ({
19+
superAdminAccessCheck: jest.fn(() => Promise.resolve(true)),
20+
adminAccessCheck: jest.fn(() => Promise.resolve(true)),
21+
}));
22+
23+
suppressConsoleLogs();
24+
25+
const TEST_GROUP_ID = "00000000-0000-0000-0000-000000000001";
26+
const TEST_USER_1_ID = "00000000-0000-0000-0000-000000000002";
27+
const TEST_USER_2_ID = "00000000-0000-0000-0000-000000000003";
28+
const TEST_QUERY_1_ID = "00000000-0000-0000-0000-000000000005";
29+
const TEST_QUERY_2_ID = "00000000-0000-0000-0000-000000000006";
30+
const TEST_QUERY_3_ID = "00000000-0000-0000-0000-000000000007";
31+
const TEST_QUERY_CONDITIONS: string[] = [];
32+
const TEST_QUERY_DATA: QueryDataColumn = {};
33+
34+
describe("User Group and Query Membership Tests", () => {
35+
beforeAll(async () => {
36+
await dbClient.query("BEGIN");
37+
38+
// Insert test users
39+
const insertUsersQuery = `
40+
INSERT INTO users (id, username, first_name, last_name, qc_role)
41+
VALUES
42+
($1, 'QtheMagnificent', 'Q', 'Omnipotent', 'Super Admin'),
43+
($2, 'mamaTroi', 'Lwaxana', 'Troi', 'Standard User'),
44+
45+
`;
46+
await dbClient.query(insertUsersQuery, [
47+
TEST_USER_1_ID,
48+
TEST_USER_2_ID,
49+
]);
50+
51+
// Insert test group
52+
const insertGroupQuery = `
53+
INSERT INTO usergroup (id, name)
54+
VALUES ($1, 'Enterprise Visitors');
55+
`;
56+
await dbClient.query(insertGroupQuery, [TEST_GROUP_ID]);
57+
58+
// Insert test queries
59+
const insertQueryQuery = `INSERT INTO query (id, query_name, conditions_list, query_data)
60+
VALUES
61+
($1, 'Where is Jean Luc Picard?', $4, $5),
62+
($2, 'Eaten any good books lately?', $4, $5),
63+
($3, 'Darling, dont be silly.', $4, $5);
64+
`;
65+
66+
await dbClient.query(insertQueryQuery, [
67+
TEST_QUERY_1_ID,
68+
TEST_QUERY_2_ID,
69+
TEST_QUERY_3_ID,
70+
TEST_QUERY_CONDITIONS,
71+
TEST_QUERY_DATA,
72+
]);
73+
});
74+
75+
afterAll(async () => {
76+
try {
77+
await dbClient.query(
78+
"DELETE FROM usergroup_to_users WHERE usergroup_id = $1;",
79+
[TEST_GROUP_ID],
80+
);
81+
await dbClient.query(
82+
"DELETE FROM usergroup_to_query WHERE usergroup_id = $1;",
83+
[TEST_GROUP_ID],
84+
);
85+
await dbClient.query("DELETE FROM usergroup WHERE id = $1;", [
86+
TEST_GROUP_ID,
87+
]);
88+
await dbClient.query("DELETE FROM users WHERE id IN ($1, $2, $3);", [
89+
TEST_USER_1_ID,
90+
TEST_USER_2_ID,
91+
]);
92+
await dbClient.query("DELETE FROM query WHERE id = $1;", [
93+
TEST_QUERY_1_ID,
94+
TEST_QUERY_2_ID,
95+
TEST_QUERY_3_ID,
96+
]);
97+
await dbClient.query("ROLLBACK");
98+
} catch (error) {
99+
console.error("Rollback failed:", error);
100+
}
101+
});
102+
103+
/**
104+
* Tests retrieving user group memberships.
105+
*/
106+
test("should retrieve user group memberships", async () => {
107+
const result: User[] =
108+
await getAllUsersWithSingleGroupStatus(TEST_GROUP_ID);
109+
110+
expect(Array.isArray(result)).toBe(true);
111+
expect(result[0]).toHaveProperty("id");
112+
expect(result[0]).toHaveProperty("username");
113+
expect(result[0]).toHaveProperty("userGroupMemberships");
114+
115+
const membership = result[0].userGroupMemberships?.find(
116+
(m: { usergroup_id: string; usergroup_name: string }) =>
117+
m.usergroup_id === TEST_GROUP_ID,
118+
(m: { usergroup_id: string; usergroup_name: string }) =>
119+
m.usergroup_name === "Test Group",
120+
);
121+
expect(membership).toBeDefined();
122+
expect(membership?.is_member).toBeDefined();
123+
});
124+
125+
/**
126+
* Tests adding queries to a user group.
127+
*/
128+
test("should add multiple queries to a group", async () => {
129+
const result = await addQueriesToGroup(TEST_GROUP_ID, [
130+
TEST_QUERY_2_ID,
131+
TEST_QUERY_3_ID,
132+
]);
133+
134+
expect(result.totalItems).toBe(2);
135+
expect(result.items.some((query) => query.query_id == TEST_QUERY_2_ID));
136+
expect(result.items.some((query) => query.query_id == TEST_QUERY_3_ID));
137+
138+
const queriesList = (await getAllGroupQueries(TEST_GROUP_ID)).items;
139+
140+
expect(queriesList.length).toBe(2);
141+
expect(queriesList.some((query) => query.query_id == TEST_QUERY_2_ID)).toBe(
142+
true,
143+
);
144+
expect(queriesList.some((query) => query.query_id == TEST_QUERY_3_ID)).toBe(
145+
true,
146+
);
147+
});
148+
149+
});

0 commit comments

Comments
 (0)