Skip to content

Commit

Permalink
minor fix and test improvements
Browse files Browse the repository at this point in the history
Signed-off-by: Abhinav Kumar <abhinav@avitechlab.com>
  • Loading branch information
abhinavkrin committed Jun 21, 2024
1 parent 10483e2 commit 29facd0
Show file tree
Hide file tree
Showing 4 changed files with 155 additions and 57 deletions.
2 changes: 1 addition & 1 deletion apps/meteor/app/api/server/v1/rooms.ts
Original file line number Diff line number Diff line change
Expand Up @@ -696,7 +696,7 @@ API.v1.addRoute(
return API.v1.failure('error-user-not-found');
}

if (await canAccessRoomAsync(room, this.user)) {
if (await canAccessRoomAsync(room, { _id: this.user._id })) {
return API.v1.success({
exists: (await Subscriptions.countByRoomIdAndUserId(room._id, user._id)) > 0,
});
Expand Down
77 changes: 77 additions & 0 deletions apps/meteor/tests/e2e/user-card-info-actions-by-member.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
import { Users } from './fixtures/userStates';
import { HomeChannel } from './page-objects';
import { createTargetChannel, deleteChannel } from './utils';
import { expect, test } from './utils/test';

test.use({ storageState: Users.user3.state });

test.describe.parallel('Mention User Card [To Member]', () => {

Check failure on line 9 in apps/meteor/tests/e2e/user-card-info-actions-by-member.spec.ts

View workflow job for this annotation

GitHub Actions / 🔎 Code Check / Code Lint

Delete `⏎`
let poHomeChannel: HomeChannel;
let targetChannel: string;

test.beforeAll(async ({ api }) => {
targetChannel = await createTargetChannel(api, { members: [Users.user1.data.username, Users.user3.data.username] });

await api.post(`/chat.postMessage`, {
text: `Hello @${Users.user1.data.username} @${Users.user2.data.username}`,
channel: targetChannel,
});
});

test.beforeEach(async ({ page }) => {
poHomeChannel = new HomeChannel(page);

await page.goto('/home');
});

test.afterAll(({ api }) => deleteChannel(api, targetChannel));

test('should show correct userinfo actions for a member of the room to a non-privileged member', async ({ page }) => {
await poHomeChannel.sidenav.openChat(targetChannel);
const mentionSpan = page.locator(`span[title="Mentions user"][data-uid="${Users.user1.data.username}"]`);
await mentionSpan.click();

await expect(page.locator('div[aria-label="User card actions"]')).toBeVisible();
const moreButton = await page.locator('div[aria-label="User card actions"] button[title="More"]');
if (await moreButton.isVisible()) {
await moreButton.click();
}

const isAddToRoomVisible = await page.locator('button[title="Add to room"]').isVisible() || await page.locator('label[data-key="Add to room"]').isVisible();

Check failure on line 41 in apps/meteor/tests/e2e/user-card-info-actions-by-member.spec.ts

View workflow job for this annotation

GitHub Actions / 🔎 Code Check / Code Lint

Replace `·await·page.locator('button[title="Add·to·room"]').isVisible()·||·await·page.locator('label[data-key="Add·to·room"]').isVisible(` with `⏎↹↹↹(await·page.locator('button[title="Add·to·room"]').isVisible())·||·(await·page.locator('label[data-key="Add·to·room"]').isVisible()`
await expect(isAddToRoomVisible).toBeFalsy();

const isRemoveFromRoomVisible = await page.locator('button[title="Remove from room"]').isVisible() || await page.locator('label[data-key="Remove from room"]').isVisible();

Check failure on line 44 in apps/meteor/tests/e2e/user-card-info-actions-by-member.spec.ts

View workflow job for this annotation

GitHub Actions / 🔎 Code Check / Code Lint

Replace `·await·page.locator('button[title="Remove·from·room"]').isVisible()·||·await·page.locator('label[data-key="Remove·from·room"]').isVisible(` with `⏎↹↹↹(await·page.locator('button[title="Remove·from·room"]').isVisible())·||⏎↹↹↹(await·page.locator('label[data-key="Remove·from·room"]').isVisible()`
await expect(isRemoveFromRoomVisible).toBeFalsy();

const isSetAsLeaderVisible = await page.locator('button[title="Set as leader"]').isVisible() || await page.locator('label[data-key="Set as leader"]').isVisible();

Check failure on line 47 in apps/meteor/tests/e2e/user-card-info-actions-by-member.spec.ts

View workflow job for this annotation

GitHub Actions / 🔎 Code Check / Code Lint

Replace `·await·page.locator('button[title="Set·as·leader"]').isVisible()·||·await·page.locator('label[data-key="Set·as·leader"]').isVisible(` with `⏎↹↹↹(await·page.locator('button[title="Set·as·leader"]').isVisible())·||⏎↹↹↹(await·page.locator('label[data-key="Set·as·leader"]').isVisible()`
await expect(isSetAsLeaderVisible).toBeFalsy();

const isSetAsModeratorVisible = await page.locator('button[title="Set as moderator"]').isVisible() || await page.locator('label[data-key="Set as moderator"]').isVisible();

Check failure on line 50 in apps/meteor/tests/e2e/user-card-info-actions-by-member.spec.ts

View workflow job for this annotation

GitHub Actions / 🔎 Code Check / Code Lint

Replace `·await·page.locator('button[title="Set·as·moderator"]').isVisible()·||·await·page.locator('label[data-key="Set·as·moderator"]').isVisible(` with `⏎↹↹↹(await·page.locator('button[title="Set·as·moderator"]').isVisible())·||⏎↹↹↹(await·page.locator('label[data-key="Set·as·moderator"]').isVisible()`
await expect(isSetAsModeratorVisible).toBeFalsy();
});

test('should show correct userinfo actions for a non-member of the room to a non-privileged member', async ({ page }) => {
await poHomeChannel.sidenav.openChat(targetChannel);
const mentionSpan = page.locator(`span[title="Mentions user"][data-uid="${Users.user2.data.username}"]`);
await mentionSpan.click();

await expect(page.locator('div[aria-label="User card actions"]')).toBeVisible();
const moreButton = await page.locator('div[aria-label="User card actions"] button[title="More"]');
if (await moreButton.isVisible()) {
await moreButton.click();
}

const isAddToRoomVisible = await page.locator('button[title="Add to room"]').isVisible() || await page.locator('label[data-key="Add to room"]').isVisible();

Check failure on line 65 in apps/meteor/tests/e2e/user-card-info-actions-by-member.spec.ts

View workflow job for this annotation

GitHub Actions / 🔎 Code Check / Code Lint

Replace `·await·page.locator('button[title="Add·to·room"]').isVisible()·||·await·page.locator('label[data-key="Add·to·room"]').isVisible(` with `⏎↹↹↹(await·page.locator('button[title="Add·to·room"]').isVisible())·||·(await·page.locator('label[data-key="Add·to·room"]').isVisible()`
await expect(isAddToRoomVisible).toBeFalsy();

const isRemoveFromRoomVisible = await page.locator('button[title="Remove from room"]').isVisible() || await page.locator('label[data-key="Remove from room"]').isVisible();

Check failure on line 68 in apps/meteor/tests/e2e/user-card-info-actions-by-member.spec.ts

View workflow job for this annotation

GitHub Actions / 🔎 Code Check / Code Lint

Replace `·await·page.locator('button[title="Remove·from·room"]').isVisible()·||·await·page.locator('label[data-key="Remove·from·room"]').isVisible(` with `⏎↹↹↹(await·page.locator('button[title="Remove·from·room"]').isVisible())·||⏎↹↹↹(await·page.locator('label[data-key="Remove·from·room"]').isVisible()`
await expect(isRemoveFromRoomVisible).toBeFalsy();

const isSetAsLeaderVisible = await page.locator('button[title="Set as leader"]').isVisible() || await page.locator('label[data-key="Set as leader"]').isVisible();

Check failure on line 71 in apps/meteor/tests/e2e/user-card-info-actions-by-member.spec.ts

View workflow job for this annotation

GitHub Actions / 🔎 Code Check / Code Lint

Replace `·await·page.locator('button[title="Set·as·leader"]').isVisible()·||·await·page.locator('label[data-key="Set·as·leader"]').isVisible(` with `⏎↹↹↹(await·page.locator('button[title="Set·as·leader"]').isVisible())·||⏎↹↹↹(await·page.locator('label[data-key="Set·as·leader"]').isVisible()`
await expect(isSetAsLeaderVisible).toBeFalsy();

const isSetAsModeratorVisible = await page.locator('button[title="Set as moderator"]').isVisible() || await page.locator('label[data-key="Set as moderator"]').isVisible();

Check failure on line 74 in apps/meteor/tests/e2e/user-card-info-actions-by-member.spec.ts

View workflow job for this annotation

GitHub Actions / 🔎 Code Check / Code Lint

Replace `·await·page.locator('button[title="Set·as·moderator"]').isVisible()·||·await·page.locator('label[data-key="Set·as·moderator"]').isVisible(` with `⏎↹↹↹(await·page.locator('button[title="Set·as·moderator"]').isVisible())·||⏎↹↹↹(await·page.locator('label[data-key="Set·as·moderator"]').isVisible()`
await expect(isSetAsModeratorVisible).toBeFalsy();
});
});
77 changes: 77 additions & 0 deletions apps/meteor/tests/e2e/user-card-info-actions-by-room-owner.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
import { Users } from './fixtures/userStates';
import { HomeChannel } from './page-objects';
import { createTargetChannel, deleteChannel } from './utils';
import { expect, test } from './utils/test';

test.use({ storageState: Users.admin.state });
test.describe.parallel('Mention User Card [To Room Owner]', () => {

let poHomeChannel: HomeChannel;
let targetChannel: string;

test.beforeAll(async ({ api }) => {
targetChannel = await createTargetChannel(api, { members: [Users.user1.data.username] });

await api.post(`/chat.postMessage`, {
text: `Hello @${Users.user1.data.username} @${Users.user2.data.username}`,
channel: targetChannel,
});
});

test.beforeEach(async ({ page }) => {
poHomeChannel = new HomeChannel(page);

await page.goto('/home');
});

test.afterAll(({ api }) => deleteChannel(api, targetChannel));

test('should show correct userinfo actions for a member of the room to the room owner', async ({ page }) => {
await poHomeChannel.sidenav.openChat(targetChannel);
const mentionSpan = page.locator(`span[title="Mentions user"][data-uid="${Users.user1.data.username}"]`);
await mentionSpan.click();

await expect(page.locator('div[aria-label="User card actions"]')).toBeVisible();
const moreButton = await page.locator('div[aria-label="User card actions"] button[title="More"]');

if (await moreButton.isVisible()) {
await moreButton.click();
}

const isAddToRoomVisible = await page.locator('button[title="Add to room"]').isVisible() || await page.locator('label[data-key="Add to room"]').isVisible();
await expect(isAddToRoomVisible).toBeFalsy();

const isRemoveFromRoomVisible = await page.locator('button[title="Remove from room"]').isVisible() || await page.locator('label[data-key="Remove from room"]').isVisible();
await expect(isRemoveFromRoomVisible).toBeTruthy();

const isSetAsLeaderVisible = await page.locator('button[title="Set as leader"]').isVisible() || await page.locator('label[data-key="Set as leader"]').isVisible();
await expect(isSetAsLeaderVisible).toBeTruthy();

const isSetAsModeratorVisible = await page.locator('button[title="Set as moderator"]').isVisible() || await page.locator('label[data-key="Set as moderator"]').isVisible();
await expect(isSetAsModeratorVisible).toBeTruthy();
});

test('should show correct userinfo actions for a non-member of the room to the room owner', async ({ page }) => {
await poHomeChannel.sidenav.openChat(targetChannel);
const mentionSpan = page.locator(`span[title="Mentions user"][data-uid="${Users.user2.data.username}"]`);
await mentionSpan.click();

await expect(page.locator('div[aria-label="User card actions"]')).toBeVisible();
const moreButton = await page.locator('div[aria-label="User card actions"] button[title="More"]');
if (await moreButton.isVisible()) {
await moreButton.click();
}

const isAddToRoomVisible = await page.locator('button[title="Add to room"]').isVisible() || await page.locator('label[data-key="Add to room"]').isVisible();
await expect(isAddToRoomVisible).toBeTruthy();

const isRemoveFromRoomVisible = await page.locator('button[title="Remove from room"]').isVisible() || await page.locator('label[data-key="Remove from room"]').isVisible();
await expect(isRemoveFromRoomVisible).toBeFalsy();

const isSetAsLeaderVisible = await page.locator('button[title="Set as leader"]').isVisible() || await page.locator('label[data-key="Set as leader"]').isVisible();
await expect(isSetAsLeaderVisible).toBeFalsy();

const isSetAsModeratorVisible = await page.locator('button[title="Set as moderator"]').isVisible() || await page.locator('label[data-key="Set as moderator"]').isVisible();
await expect(isSetAsModeratorVisible).toBeFalsy();
});
});
56 changes: 0 additions & 56 deletions apps/meteor/tests/e2e/user-card-info-in-room.spec.ts

This file was deleted.

0 comments on commit 29facd0

Please sign in to comment.