From e51917ccf7964f06ba2bafe66270c62babff0cdc Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Fri, 9 Feb 2024 02:03:19 +0530 Subject: [PATCH 1/7] include prid for rooms --- apps/meteor/server/lib/spotlight.js | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/meteor/server/lib/spotlight.js b/apps/meteor/server/lib/spotlight.js index 62218bd5928fc..dc182ee9d3a6f 100644 --- a/apps/meteor/server/lib/spotlight.js +++ b/apps/meteor/server/lib/spotlight.js @@ -34,6 +34,7 @@ export class Spotlight { joinCodeRequired: 1, lastMessage: 1, federated: true, + prid: 1, }, sort: { name: 1, From 45b37faec1dba7ba430f780711849131e2d6255a Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Fri, 9 Feb 2024 02:07:04 +0530 Subject: [PATCH 2/7] added changeset --- .changeset/rude-avocados-notice.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/rude-avocados-notice.md diff --git a/.changeset/rude-avocados-notice.md b/.changeset/rude-avocados-notice.md new file mode 100644 index 0000000000000..8b8b8715657c6 --- /dev/null +++ b/.changeset/rude-avocados-notice.md @@ -0,0 +1,5 @@ +--- +'@rocket.chat/meteor': patch +--- + +Fixed discussion names displaying as IDs in sidebar search results From f4f3c3de61b1129da815b9368841dd3e48cc4b82 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Thu, 15 Feb 2024 17:39:26 +0530 Subject: [PATCH 3/7] added tests for discussion search Signed-off-by: Abhinav Kumar --- apps/meteor/package.json | 2 +- .../page-objects/fragments/home-sidenav.ts | 8 ++++ .../tests/e2e/search-discussion.spec.ts | 47 +++++++++++++++++++ .../tests/e2e/utils/create-target-channel.ts | 11 +++++ .../tests/e2e/utils/getSettingValueById.ts | 7 +++ apps/meteor/tests/e2e/utils/test.ts | 2 +- 6 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 apps/meteor/tests/e2e/search-discussion.spec.ts create mode 100644 apps/meteor/tests/e2e/utils/getSettingValueById.ts diff --git a/apps/meteor/package.json b/apps/meteor/package.json index e637783c4c8ec..75177c6597df3 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -73,7 +73,7 @@ "@babel/preset-react": "~7.22.15", "@babel/register": "~7.22.15", "@faker-js/faker": "~8.0.2", - "@playwright/test": "^1.40.1", + "@playwright/test": "^1.40.2", "@rocket.chat/eslint-config": "workspace:^", "@rocket.chat/livechat": "workspace:^", "@rocket.chat/mock-providers": "workspace:^", diff --git a/apps/meteor/tests/e2e/page-objects/fragments/home-sidenav.ts b/apps/meteor/tests/e2e/page-objects/fragments/home-sidenav.ts index 0a4444c073c63..12a38f3b61851 100644 --- a/apps/meteor/tests/e2e/page-objects/fragments/home-sidenav.ts +++ b/apps/meteor/tests/e2e/page-objects/fragments/home-sidenav.ts @@ -33,6 +33,10 @@ export class HomeSidenav { return this.page.locator('role=button[name="Create"]'); } + get inputSearch(): Locator { + return this.page.locator('[placeholder="Search (Ctrl+K)"]').first(); + } + getSidebarItemByName(name: string): Locator { return this.page.locator(`[data-qa="sidebar-item"][aria-label="${name}"]`); } @@ -59,6 +63,10 @@ export class HomeSidenav { await this.page.locator(`role=menuitem[name="${text}"]`).click(); } + async openSearch(): Promise { + await this.page.locator('role=button[name="Search"]').click(); + } + async logout(): Promise { await this.page.locator('[data-qa="sidebar-avatar-button"]').click(); await this.page.locator('//*[contains(@class, "rcx-option__content") and contains(text(), "Logout")]').click(); diff --git a/apps/meteor/tests/e2e/search-discussion.spec.ts b/apps/meteor/tests/e2e/search-discussion.spec.ts new file mode 100644 index 0000000000000..e14813bc2dc3c --- /dev/null +++ b/apps/meteor/tests/e2e/search-discussion.spec.ts @@ -0,0 +1,47 @@ +import { Page } from '@playwright/test'; + +import { Users } from './fixtures/userStates'; +import { HomeChannel } from './page-objects'; +import { createTargetDiscussion } from './utils'; +import { getSettingValueById } from './utils/getSettingValueById'; +import { setSettingValueById } from './utils/setSettingValueById'; +import { test, expect } from './utils/test'; + +test.use({ storageState: Users.user1.state }); + +test.describe.serial('search-discussion', () => { + let settingDefaultValue: unknown; + let poHomeChannel: HomeChannel; + let discussionName: string; + + test.beforeAll(async ({ api }) => { + settingDefaultValue = await getSettingValueById(api, 'UI_Allow_room_names_with_special_chars'); + }); + + test.beforeEach(async ({ page, api }) => { + discussionName = await createTargetDiscussion(api); + poHomeChannel = new HomeChannel(page); + await page.goto('/home'); + }); + + test.afterAll(async ({ api }) => { + await setSettingValueById(api, 'UI_Allow_room_names_with_special_chars', settingDefaultValue); + }); + + const testDiscussionSearch = async (page: Page) => { + await poHomeChannel.sidenav.openSearch(); + await poHomeChannel.sidenav.inputSearch.type(discussionName); + const targetSearchItem = page.locator('role=listbox').getByText(discussionName).first(); + await expect(targetSearchItem).toBeVisible(); + } + + test('expect search discussion to show fname when UI_Allow_room_names_with_special_chars=true', async ({ page, api }) => { + await setSettingValueById(api, 'UI_Allow_room_names_with_special_chars', true); + await testDiscussionSearch(page); + }); + + test('expect search discussion to show fname when UI_Allow_room_names_with_special_chars=false', async ({ page, api }) => { + await setSettingValueById(api, 'UI_Allow_room_names_with_special_chars', false); + await testDiscussionSearch(page); + }); +}); diff --git a/apps/meteor/tests/e2e/utils/create-target-channel.ts b/apps/meteor/tests/e2e/utils/create-target-channel.ts index 856972eeffb8e..ce145f4233bd8 100644 --- a/apps/meteor/tests/e2e/utils/create-target-channel.ts +++ b/apps/meteor/tests/e2e/utils/create-target-channel.ts @@ -33,3 +33,14 @@ export async function createDirectMessage(api: BaseTest['api']): Promise { usernames: 'user1,user2', }); } + +export async function createTargetDiscussion(api: BaseTest['api']): Promise { + const channelName = faker.string.uuid(); + const discussionName = faker.string.uuid(); + + const response = await api.post('/channels.create', { name: channelName }); + const { channel } = await response.json(); + await api.post('/rooms.createDiscussion', { t_name: discussionName, prid: channel._id}); + + return discussionName; +} diff --git a/apps/meteor/tests/e2e/utils/getSettingValueById.ts b/apps/meteor/tests/e2e/utils/getSettingValueById.ts new file mode 100644 index 0000000000000..a4737024a5e68 --- /dev/null +++ b/apps/meteor/tests/e2e/utils/getSettingValueById.ts @@ -0,0 +1,7 @@ +import type { BaseTest } from './test'; + +export const getSettingValueById = async (api: BaseTest['api'], settingId: string): Promise => { + const response = await api.get(`/settings/${settingId}`); + const { value } = await response.json(); + return value; +}; diff --git a/apps/meteor/tests/e2e/utils/test.ts b/apps/meteor/tests/e2e/utils/test.ts index 81479231fd65d..80598423612e5 100644 --- a/apps/meteor/tests/e2e/utils/test.ts +++ b/apps/meteor/tests/e2e/utils/test.ts @@ -116,7 +116,7 @@ export const test = baseTest.extend({ }, makeAxeBuilder: async ({ page }, use) => { const SELECT_KNOW_ISSUES = ['aria-hidden-focus', 'nested-interactive'] - + const makeAxeBuilder = () => new AxeBuilder({ page }).withTags(['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa']).include('body').disableRules([...SELECT_KNOW_ISSUES]); await use(makeAxeBuilder); } From 883aea26ffe05716027bc4f60857b95294805303 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Fri, 16 Feb 2024 15:00:08 +0530 Subject: [PATCH 4/7] yarn.lock Signed-off-by: Abhinav Kumar --- yarn.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5215936a1c3b1..259cc756541c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5951,14 +5951,14 @@ __metadata: languageName: node linkType: hard -"@playwright/test@npm:^1.40.1": - version: 1.40.1 - resolution: "@playwright/test@npm:1.40.1" +"@playwright/test@npm:^1.40.2": + version: 1.41.2 + resolution: "@playwright/test@npm:1.41.2" dependencies: - playwright: 1.40.1 + playwright: 1.41.2 bin: playwright: cli.js - checksum: ae094e6cb809365c0707ee2b184e42d2a2542569ada020d2d44ca5866066941262bd9a67af185f86c2fb0133c9b712ea8cb73e2959a289e4261c5fd17077283c + checksum: 87d9e725106111b2af1b2dec32454cd2a2d9665ff735669dc751caa30240e6db595ecfb9422719fa65dcff6ca19dea93ac2ae70d587efddde31def0754549d4c languageName: node linkType: hard @@ -9702,7 +9702,7 @@ __metadata: "@nivo/heatmap": 0.84.0 "@nivo/line": 0.84.0 "@nivo/pie": 0.84.0 - "@playwright/test": ^1.40.1 + "@playwright/test": ^1.40.2 "@react-aria/color": ^3.0.0-beta.15 "@react-aria/toolbar": ^3.0.0-beta.1 "@react-pdf/renderer": ^3.1.14 @@ -33205,12 +33205,12 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.40.1": - version: 1.40.1 - resolution: "playwright-core@npm:1.40.1" +"playwright-core@npm:1.41.2": + version: 1.41.2 + resolution: "playwright-core@npm:1.41.2" bin: playwright-core: cli.js - checksum: 84d92fb9b86e3c225b16b6886bf858eb5059b4e60fa1205ff23336e56a06dcb2eac62650992dede72f406c8e70a7b6a5303e511f9b4bc0b85022ede356a01ee0 + checksum: b41ede0db3fd3e3f7e0b0efbdfb2dbc4db345e113cf9c4451af21d1d5b5d9ab5e969f5662852925e37b2198ae5daab92aa48108fe3d4eb81c849ba8752aaf8cc languageName: node linkType: hard @@ -33225,18 +33225,18 @@ __metadata: languageName: node linkType: hard -"playwright@npm:1.40.1": - version: 1.40.1 - resolution: "playwright@npm:1.40.1" +"playwright@npm:1.41.2": + version: 1.41.2 + resolution: "playwright@npm:1.41.2" dependencies: fsevents: 2.3.2 - playwright-core: 1.40.1 + playwright-core: 1.41.2 dependenciesMeta: fsevents: optional: true bin: playwright: cli.js - checksum: 9e36791c1b4a649c104aa365fdd9d049924eeb518c5967c0e921aa38b9b00994aa6ee54784d6c2af194b3b494b6f69772673081ef53c6c4a4b2065af9955c4ba + checksum: acf166003ec42cd795f5fca096c5135880d78e84ec2d0a1911b2cab984cf75dc06e50d3aa24b56cbcbc5369ca8c61831e76c5f8674531a272fbd0f6e624fa387 languageName: node linkType: hard From 414f0e3eb6d1f83094d491dd92c0359a861c3788 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Thu, 22 Feb 2024 02:22:12 +0530 Subject: [PATCH 5/7] playwright/test version reverse Signed-off-by: Abhinav Kumar --- apps/meteor/package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/meteor/package.json b/apps/meteor/package.json index be33847f5add6..6e1b6a0b3836f 100644 --- a/apps/meteor/package.json +++ b/apps/meteor/package.json @@ -73,7 +73,7 @@ "@babel/preset-react": "~7.22.15", "@babel/register": "~7.22.15", "@faker-js/faker": "~8.0.2", - "@playwright/test": "^1.40.2", + "@playwright/test": "^1.40.1", "@rocket.chat/eslint-config": "workspace:^", "@rocket.chat/livechat": "workspace:^", "@rocket.chat/mock-providers": "workspace:^", diff --git a/yarn.lock b/yarn.lock index 07ebfc10a1d4e..c57c90c5845fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5951,7 +5951,7 @@ __metadata: languageName: node linkType: hard -"@playwright/test@npm:^1.40.2": +"@playwright/test@npm:^1.40.1": version: 1.41.2 resolution: "@playwright/test@npm:1.41.2" dependencies: @@ -9350,9 +9350,9 @@ __metadata: "@rocket.chat/prettier-config": "*" "@rocket.chat/styled": "*" "@rocket.chat/ui-avatar": "*" - "@rocket.chat/ui-contexts": 4.0.0 + "@rocket.chat/ui-contexts": 4.0.1 "@rocket.chat/ui-kit": 0.33.0 - "@rocket.chat/ui-video-conf": 4.0.0 + "@rocket.chat/ui-video-conf": 4.0.1 "@tanstack/react-query": "*" react: "*" react-dom: "*" @@ -9440,8 +9440,8 @@ __metadata: "@rocket.chat/fuselage-tokens": "*" "@rocket.chat/message-parser": "*" "@rocket.chat/styled": "*" - "@rocket.chat/ui-client": 4.0.0 - "@rocket.chat/ui-contexts": 4.0.0 + "@rocket.chat/ui-client": 4.0.1 + "@rocket.chat/ui-contexts": 4.0.1 katex: "*" react: "*" languageName: unknown @@ -9704,7 +9704,7 @@ __metadata: "@nivo/heatmap": 0.84.0 "@nivo/line": 0.84.0 "@nivo/pie": 0.84.0 - "@playwright/test": ^1.40.2 + "@playwright/test": ^1.40.1 "@react-aria/color": ^3.0.0-beta.15 "@react-aria/toolbar": ^3.0.0-beta.1 "@react-pdf/renderer": ^3.1.14 @@ -10648,7 +10648,7 @@ __metadata: "@rocket.chat/fuselage": "*" "@rocket.chat/fuselage-hooks": "*" "@rocket.chat/icons": "*" - "@rocket.chat/ui-contexts": 4.0.0 + "@rocket.chat/ui-contexts": 4.0.1 react: ~17.0.2 languageName: unknown linkType: soft @@ -10825,7 +10825,7 @@ __metadata: "@rocket.chat/icons": "*" "@rocket.chat/styled": "*" "@rocket.chat/ui-avatar": "*" - "@rocket.chat/ui-contexts": 4.0.0 + "@rocket.chat/ui-contexts": 4.0.1 react: ^17.0.2 react-dom: ^17.0.2 languageName: unknown @@ -10915,7 +10915,7 @@ __metadata: peerDependencies: "@rocket.chat/layout": "*" "@rocket.chat/tools": 0.2.1 - "@rocket.chat/ui-contexts": 4.0.0 + "@rocket.chat/ui-contexts": 4.0.1 "@tanstack/react-query": "*" react: "*" react-hook-form: "*" From 0378eafe71fad57078bdb339b0c88e48bf87ef21 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Thu, 22 Feb 2024 02:28:51 +0530 Subject: [PATCH 6/7] yarn.lock --- yarn.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/yarn.lock b/yarn.lock index fe9cdfc08f20f..066187e54b318 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5364,13 +5364,13 @@ __metadata: linkType: hard "@playwright/test@npm:^1.40.1": - version: 1.41.2 - resolution: "@playwright/test@npm:1.41.2" + version: 1.40.1 + resolution: "@playwright/test@npm:1.40.1" dependencies: - playwright: 1.41.2 + playwright: 1.40.1 bin: playwright: cli.js - checksum: 87d9e725106111b2af1b2dec32454cd2a2d9665ff735669dc751caa30240e6db595ecfb9422719fa65dcff6ca19dea93ac2ae70d587efddde31def0754549d4c + checksum: ae094e6cb809365c0707ee2b184e42d2a2542569ada020d2d44ca5866066941262bd9a67af185f86c2fb0133c9b712ea8cb73e2959a289e4261c5fd17077283c languageName: node linkType: hard @@ -32844,12 +32844,12 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.41.2": - version: 1.41.2 - resolution: "playwright-core@npm:1.41.2" +"playwright-core@npm:1.40.1": + version: 1.40.1 + resolution: "playwright-core@npm:1.40.1" bin: playwright-core: cli.js - checksum: b41ede0db3fd3e3f7e0b0efbdfb2dbc4db345e113cf9c4451af21d1d5b5d9ab5e969f5662852925e37b2198ae5daab92aa48108fe3d4eb81c849ba8752aaf8cc + checksum: 84d92fb9b86e3c225b16b6886bf858eb5059b4e60fa1205ff23336e56a06dcb2eac62650992dede72f406c8e70a7b6a5303e511f9b4bc0b85022ede356a01ee0 languageName: node linkType: hard @@ -32864,18 +32864,18 @@ __metadata: languageName: node linkType: hard -"playwright@npm:1.41.2": - version: 1.41.2 - resolution: "playwright@npm:1.41.2" +"playwright@npm:1.40.1": + version: 1.40.1 + resolution: "playwright@npm:1.40.1" dependencies: fsevents: 2.3.2 - playwright-core: 1.41.2 + playwright-core: 1.40.1 dependenciesMeta: fsevents: optional: true bin: playwright: cli.js - checksum: acf166003ec42cd795f5fca096c5135880d78e84ec2d0a1911b2cab984cf75dc06e50d3aa24b56cbcbc5369ca8c61831e76c5f8674531a272fbd0f6e624fa387 + checksum: 9e36791c1b4a649c104aa365fdd9d049924eeb518c5967c0e921aa38b9b00994aa6ee54784d6c2af194b3b494b6f69772673081ef53c6c4a4b2065af9955c4ba languageName: node linkType: hard From 02cf5f06b761cfb9941fc8d91da46ac74af46d08 Mon Sep 17 00:00:00 2001 From: Abhinav Kumar Date: Thu, 22 Feb 2024 02:31:21 +0530 Subject: [PATCH 7/7] tests.ts --- apps/meteor/tests/e2e/utils/test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/meteor/tests/e2e/utils/test.ts b/apps/meteor/tests/e2e/utils/test.ts index 80598423612e5..81479231fd65d 100644 --- a/apps/meteor/tests/e2e/utils/test.ts +++ b/apps/meteor/tests/e2e/utils/test.ts @@ -116,7 +116,7 @@ export const test = baseTest.extend({ }, makeAxeBuilder: async ({ page }, use) => { const SELECT_KNOW_ISSUES = ['aria-hidden-focus', 'nested-interactive'] - + const makeAxeBuilder = () => new AxeBuilder({ page }).withTags(['wcag2a', 'wcag2aa', 'wcag21a', 'wcag21aa']).include('body').disableRules([...SELECT_KNOW_ISSUES]); await use(makeAxeBuilder); }