Skip to content

Commit 56d7514

Browse files
committed
updated tests
Signed-off-by: Abhinav Kumar <abhinav@avitechlab.com>
1 parent 071d541 commit 56d7514

File tree

4 files changed

+37
-10
lines changed

4 files changed

+37
-10
lines changed

apps/meteor/tests/e2e/global-search.spec.ts

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { IMessage } from '@rocket.chat/core-typings';
22
import { Random } from '@rocket.chat/random';
33

44
import { Users } from './fixtures/userStates';
5+
import { HomeChannel } from './page-objects';
56
import { setSettingValueById } from './utils';
67
import type { BaseTest } from './utils/test';
78
import { expect, test } from './utils/test';
@@ -11,6 +12,7 @@ test.describe.serial('Global Search', () => {
1112
let targetChannel: { name: string; _id: string };
1213
let targetGroup: { name: string; _id: string };
1314
let threadMessage: IMessage;
15+
let poHomeChannel: HomeChannel;
1416

1517
const fillMessages = async (api: BaseTest['api']) => {
1618
const { message: parentMessage } = await (
@@ -56,21 +58,18 @@ test.describe.serial('Global Search', () => {
5658
);
5759

5860
test.beforeEach(async ({ page }) => {
59-
await page.goto('/');
61+
poHomeChannel = new HomeChannel(page);
62+
await page.goto('/home');
6063
});
6164

6265
test('opens correct message when jumping from global search in group to channel thread', async ({ page }) => {
63-
await page.goto(`/group/${targetGroup.name}`);
64-
await expect(page.getByTitle('Search Messages')).toBeVisible();
65-
await page.getByTitle('Search Messages').click();
66+
// await poHomeChannel.goto(`/group/${targetGroup.name}`);
67+
await poHomeChannel.sidenav.openChat(targetGroup.name);
68+
await poHomeChannel.roomToolbar.btnSearchMessages.click();
6669

67-
await expect(page.getByText('Global search')).toBeVisible({ timeout: 10000 });
68-
await page.getByText('Global search').click();
70+
await poHomeChannel.tabs.searchMessages.search(threadMessage.msg.slice(10), { global: true, timeout: 10000 }); // fill partial text to match search
6971

70-
await expect(page.getByPlaceholder('Search Messages')).toBeVisible();
71-
await page.getByPlaceholder('Search Messages').fill(threadMessage.msg.slice(10)); // fill partial text to match search
72-
73-
const message = page.getByRole('listitem').filter({ hasText: threadMessage.msg });
72+
const message = await poHomeChannel.tabs.searchMessages.getResultItem(threadMessage.msg);
7473
await expect(message).toBeVisible();
7574
await message.hover();
7675
const jumpToMessageButton = message.getByTitle('Jump to message');
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import type { Locator, Page } from '@playwright/test';
2+
3+
export class HomeFlextabSearchMessages {
4+
readonly searchTab: Locator;
5+
6+
constructor(protected page: Page) {
7+
this.searchTab = this.page.getByRole('dialog', { name: 'Search Messages' });
8+
}
9+
10+
async search(text: string, { global = false, timeout }: { global?: boolean; timeout?: number } = {}) {
11+
if (global) {
12+
await this.searchTab.getByText('Global search').click({ timeout });
13+
}
14+
await this.searchTab.getByPlaceholder('Search Messages').fill(text, { timeout });
15+
}
16+
17+
async getResultItem(messageText: string) {
18+
return this.searchTab.getByRole('listitem', { name: messageText });
19+
}
20+
}

apps/meteor/tests/e2e/page-objects/fragments/home-flextab.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import { HomeFlextabNotificationPreferences } from './home-flextab-notificationP
77
import { HomeFlextabOtr } from './home-flextab-otr';
88
import { HomeFlextabPruneMessages } from './home-flextab-pruneMessages';
99
import { HomeFlextabRoom } from './home-flextab-room';
10+
import { HomeFlextabSearchMessages } from './home-flextab-searchMessages';
1011

1112
export class HomeFlextab {
1213
private readonly page: Page;
@@ -25,6 +26,8 @@ export class HomeFlextab {
2526

2627
readonly pruneMessages: HomeFlextabPruneMessages;
2728

29+
readonly searchMessages: HomeFlextabSearchMessages;
30+
2831
constructor(page: Page) {
2932
this.page = page;
3033
this.members = new HomeFlextabMembers(page);
@@ -34,6 +37,7 @@ export class HomeFlextab {
3437
this.otr = new HomeFlextabOtr(page);
3538
this.exportMessages = new ExportMessagesTab(page);
3639
this.pruneMessages = new HomeFlextabPruneMessages(page);
40+
this.searchMessages = new HomeFlextabSearchMessages(page);
3741
}
3842

3943
get toolbarPrimaryActions(): Locator {

apps/meteor/tests/e2e/page-objects/fragments/toolbar.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ export class RoomToolbar extends Toolbar {
6060
return this.root.getByRole('button', { name: 'Options' });
6161
}
6262

63+
get btnSearchMessages(): Locator {
64+
return this.root.getByRole('button', { name: 'Search Messages' });
65+
}
66+
6367
get btnDisableE2EEncryption(): Locator {
6468
return this.root.getByRole('button', { name: 'Disable E2E encryption' });
6569
}

0 commit comments

Comments
 (0)