Skip to content

Commit f0b0c0a

Browse files
committed
test(private-rooms-override): WIP - add test structure for view-all-private-rooms permission
1 parent 4e1f6e8 commit f0b0c0a

File tree

1 file changed

+86
-0
lines changed

1 file changed

+86
-0
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
import { faker } from '@faker-js/faker';
2+
import type { IRoom, IUser } from '@rocket.chat/core-typings';
3+
import type { Credentials } from '@rocket.chat/api-client';
4+
import type { TestUser } from '../data/users.helper';
5+
import { createUser, deleteUser, login } from '../data/users.helper';
6+
import { createRoom, deleteRoom } from '../data/rooms.helper';
7+
import { password } from '../data/user';
8+
9+
import { test, expect } from './utils/test';
10+
import { HomeChannel } from './page-objects';
11+
import { Directory } from './page-objects/directory';
12+
//import { Users } from './fixtures/userStates';
13+
//import { createTargetChannel, createTargetPrivateChannel } from './utils';
14+
15+
test.describe.serial('private-rooms-override', () => {
16+
let poHomeChannel: HomeChannel;
17+
let poDirectory: Directory;
18+
let testUser: TestUser<IUser>;
19+
let adminUser: TestUser<IUser>;
20+
let testUserCredentials: Credentials;
21+
let privateRoom: IRoom;
22+
23+
test.beforeAll(async ({ api }) => {
24+
// Create test users
25+
testUser = await createUser({
26+
username: faker.internet.userName(),
27+
roles: ['user']
28+
});
29+
30+
// Set required permission
31+
await api.post('/permissions.update', {
32+
permissions: [{
33+
_id: 'view-all-private-rooms',
34+
roles: ['user']
35+
}]
36+
});
37+
38+
// Get user credentials
39+
testUserCredentials = await login(testUser.username, password);
40+
41+
// Create a private room for testing
42+
privateRoom = (await createRoom({
43+
type: 'p',
44+
name: `private-room-${faker.string.uuid()}`,
45+
credentials: testUserCredentials
46+
})).body.group;
47+
});
48+
49+
test.beforeEach(async ({ page }) => {
50+
poHomeChannel = new HomeChannel(page);
51+
poDirectory = new Directory(page);
52+
await page.goto('/home');
53+
});
54+
55+
test.afterAll(async ({ api }) => {
56+
await Promise.all([
57+
// Delete test room
58+
deleteRoom({ type: 'p', roomId: privateRoom._id }),
59+
// Delete test user
60+
deleteUser(testUser),
61+
// Reset permission
62+
api.post('/permissions.update', {
63+
permissions: [{
64+
_id: 'view-all-private-rooms',
65+
roles: ['admin']
66+
}]
67+
})
68+
]);
69+
});
70+
71+
test('should show all private rooms in directory regardless of membership', async ({ page }) => {
72+
// Visit the directory page as the test user
73+
// Navigate to channels tab
74+
// Verify private room is visible in the list
75+
// Verify room details are correctly displayed
76+
// Try to access the room
77+
// Verify appropriate access level is granted
78+
});
79+
80+
test('should respect view-all-private-rooms permission', async ({ page }) => {
81+
// Remove view-all-private-rooms permission
82+
// Verify private room is no longer visible
83+
// Add back view-all-private-rooms permission
84+
// Verify private room becomes visible again
85+
});
86+
});

0 commit comments

Comments
 (0)