From 58e5e054322df1229f82337f9151273e17cdb786 Mon Sep 17 00:00:00 2001 From: juliajforesti Date: Mon, 24 Jun 2024 17:54:28 -0300 Subject: [PATCH 1/5] test: `omnichannel-custom-fields` inputSearch selector --- apps/meteor/tests/e2e/page-objects/omnichannel-custom-fields.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/meteor/tests/e2e/page-objects/omnichannel-custom-fields.ts b/apps/meteor/tests/e2e/page-objects/omnichannel-custom-fields.ts index 9768139fe09d3..365f8aee6ceb1 100644 --- a/apps/meteor/tests/e2e/page-objects/omnichannel-custom-fields.ts +++ b/apps/meteor/tests/e2e/page-objects/omnichannel-custom-fields.ts @@ -33,7 +33,7 @@ export class OmnichannelCustomFields { } get inputSearch(): Locator { - return this.page.locator('[placeholder="Search"]'); + return this.page.getByRole('main').getByPlaceholder('Search', { exact: true }); } firstRowInTable(filedName: string) { From c8e35b5ada25ea2c706847b2e1c44cef4925681c Mon Sep 17 00:00:00 2001 From: juliajforesti Date: Mon, 24 Jun 2024 18:33:35 -0300 Subject: [PATCH 2/5] add `FilterByText` aria-label --- apps/meteor/client/components/FilterByText.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/meteor/client/components/FilterByText.tsx b/apps/meteor/client/components/FilterByText.tsx index 0f317dea61e4d..0f3ad745ff328 100644 --- a/apps/meteor/client/components/FilterByText.tsx +++ b/apps/meteor/client/components/FilterByText.tsx @@ -54,6 +54,7 @@ const FilterByText = forwardRef(function Fi value={text} flexGrow={2} minWidth='x220' + aria-label={placeholder ?? 'Search'} /> {isFilterByTextPropsWithButton(props) ? ( From c155b0ef2cd9dc2570059b8ec2ee5fcbb6452656 Mon Sep 17 00:00:00 2001 From: juliajforesti Date: Mon, 24 Jun 2024 18:33:52 -0300 Subject: [PATCH 3/5] add `AddManager` field ids --- .../client/views/omnichannel/managers/AddManager.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/meteor/client/views/omnichannel/managers/AddManager.tsx b/apps/meteor/client/views/omnichannel/managers/AddManager.tsx index b4f56f78b62bb..e21896eef9fa1 100644 --- a/apps/meteor/client/views/omnichannel/managers/AddManager.tsx +++ b/apps/meteor/client/views/omnichannel/managers/AddManager.tsx @@ -1,5 +1,5 @@ import { Button, Box, Field, FieldLabel, FieldRow } from '@rocket.chat/fuselage'; -import { useMutableCallback } from '@rocket.chat/fuselage-hooks'; +import { useMutableCallback, useUniqueId } from '@rocket.chat/fuselage-hooks'; import { useToastMessageDispatch, useTranslation } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import React, { useState } from 'react'; @@ -12,6 +12,8 @@ const AddManager = ({ reload }: { reload: () => void }): ReactElement => { const [username, setUsername] = useState(''); const dispatchToastMessage = useToastMessageDispatch(); + const usernameFieldId = useUniqueId(); + const saveAction = useEndpointAction('POST', '/v1/livechat/users/manager'); const handleSave = useMutableCallback(async () => { @@ -34,9 +36,9 @@ const AddManager = ({ reload }: { reload: () => void }): ReactElement => { return ( - {t('Username')} + {t('Username')} - + From 80bb46de42458bb6ffcf5b8b10982f05bfe921af Mon Sep 17 00:00:00 2001 From: juliajforesti Date: Mon, 24 Jun 2024 18:34:32 -0300 Subject: [PATCH 4/5] omnichannel fragments - add specificity to `inputSearch` fragment selectors --- apps/meteor/tests/e2e/page-objects/omnichannel-agents.ts | 2 +- .../tests/e2e/page-objects/omnichannel-business-hours.ts | 2 +- .../tests/e2e/page-objects/omnichannel-custom-fields.ts | 2 +- apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts | 2 +- apps/meteor/tests/e2e/page-objects/omnichannel-manager.ts | 4 ++-- apps/meteor/tests/e2e/page-objects/omnichannel-monitors.ts | 2 +- .../meteor/tests/e2e/page-objects/omnichannel-sla-policies.ts | 2 +- apps/meteor/tests/e2e/page-objects/omnichannel-tags.ts | 2 +- apps/meteor/tests/e2e/page-objects/omnichannel-units.ts | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/meteor/tests/e2e/page-objects/omnichannel-agents.ts b/apps/meteor/tests/e2e/page-objects/omnichannel-agents.ts index 63818a06032ae..d588e409423ff 100644 --- a/apps/meteor/tests/e2e/page-objects/omnichannel-agents.ts +++ b/apps/meteor/tests/e2e/page-objects/omnichannel-agents.ts @@ -23,7 +23,7 @@ export class OmnichannelAgents { } get inputSearch(): Locator { - return this.page.locator('[placeholder="Search"]'); + return this.page.getByRole('main').getByRole('textbox', { name: 'Search' }); } get btnAdd(): Locator { diff --git a/apps/meteor/tests/e2e/page-objects/omnichannel-business-hours.ts b/apps/meteor/tests/e2e/page-objects/omnichannel-business-hours.ts index 19e93cefb307a..a77784c4538ec 100644 --- a/apps/meteor/tests/e2e/page-objects/omnichannel-business-hours.ts +++ b/apps/meteor/tests/e2e/page-objects/omnichannel-business-hours.ts @@ -20,7 +20,7 @@ export class OmnichannelBusinessHours extends OmnichannelAdministration { } get inputSearch(): Locator { - return this.page.locator('[placeholder="Search"]'); + return this.page.getByRole('main').getByRole('textbox', { name: 'Search' }); } get inputName(): Locator { diff --git a/apps/meteor/tests/e2e/page-objects/omnichannel-custom-fields.ts b/apps/meteor/tests/e2e/page-objects/omnichannel-custom-fields.ts index 365f8aee6ceb1..e3fd6e382b9fa 100644 --- a/apps/meteor/tests/e2e/page-objects/omnichannel-custom-fields.ts +++ b/apps/meteor/tests/e2e/page-objects/omnichannel-custom-fields.ts @@ -33,7 +33,7 @@ export class OmnichannelCustomFields { } get inputSearch(): Locator { - return this.page.getByRole('main').getByPlaceholder('Search', { exact: true }); + return this.page.getByRole('main').getByRole('textbox', { name: 'Search' }); } firstRowInTable(filedName: string) { diff --git a/apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts b/apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts index c1012442f1159..a41332122a363 100644 --- a/apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts +++ b/apps/meteor/tests/e2e/page-objects/omnichannel-departments.ts @@ -13,7 +13,7 @@ export class OmnichannelDepartments { } get inputSearch() { - return this.page.locator('[placeholder="Search"]'); + return this.page.getByRole('main').getByRole('textbox', { name: 'Search' }); } async search(text: string) { diff --git a/apps/meteor/tests/e2e/page-objects/omnichannel-manager.ts b/apps/meteor/tests/e2e/page-objects/omnichannel-manager.ts index 0f2e9ac516e79..f52aa66fda629 100644 --- a/apps/meteor/tests/e2e/page-objects/omnichannel-manager.ts +++ b/apps/meteor/tests/e2e/page-objects/omnichannel-manager.ts @@ -13,7 +13,7 @@ export class OmnichannelManager { } private get inputSearch() { - return this.page.locator('[placeholder="Search"]'); + return this.page.getByRole('main').getByRole('textbox', { name: 'Search' }); } async search(text: string) { @@ -27,7 +27,7 @@ export class OmnichannelManager { } get inputUsername(): Locator { - return this.page.locator('input').first(); + return this.page.getByRole('main').getByLabel('Username'); } async selectUsername(username: string) { diff --git a/apps/meteor/tests/e2e/page-objects/omnichannel-monitors.ts b/apps/meteor/tests/e2e/page-objects/omnichannel-monitors.ts index b72594024aaf3..e31878842ddb4 100644 --- a/apps/meteor/tests/e2e/page-objects/omnichannel-monitors.ts +++ b/apps/meteor/tests/e2e/page-objects/omnichannel-monitors.ts @@ -20,7 +20,7 @@ export class OmnichannelMonitors extends OmnichannelAdministration { } get inputSearch(): Locator { - return this.page.locator('input[placeholder="Search"]'); + return this.page.getByRole('main').getByRole('textbox', { name: 'Search' }); } findRowByName(name: string): Locator { diff --git a/apps/meteor/tests/e2e/page-objects/omnichannel-sla-policies.ts b/apps/meteor/tests/e2e/page-objects/omnichannel-sla-policies.ts index d44d4d0f37b46..185639569d803 100644 --- a/apps/meteor/tests/e2e/page-objects/omnichannel-sla-policies.ts +++ b/apps/meteor/tests/e2e/page-objects/omnichannel-sla-policies.ts @@ -60,7 +60,7 @@ export class OmnichannelSlaPolicies { } get inputSearch() { - return this.page.locator('[placeholder="Search"]'); + return this.page.getByRole('main').getByRole('textbox', { name: 'Search' }); } headingButtonNew(name: string) { diff --git a/apps/meteor/tests/e2e/page-objects/omnichannel-tags.ts b/apps/meteor/tests/e2e/page-objects/omnichannel-tags.ts index afb5775ba1f56..f283473505cf2 100644 --- a/apps/meteor/tests/e2e/page-objects/omnichannel-tags.ts +++ b/apps/meteor/tests/e2e/page-objects/omnichannel-tags.ts @@ -24,7 +24,7 @@ export class OmnichannelTags extends OmnichannelAdministration { } get inputSearch(): Locator { - return this.page.locator('[placeholder="Search"]'); + return this.page.getByRole('main').getByRole('textbox', { name: 'Search' }); } get confirmDeleteModal(): Locator { diff --git a/apps/meteor/tests/e2e/page-objects/omnichannel-units.ts b/apps/meteor/tests/e2e/page-objects/omnichannel-units.ts index f5d02e2150c71..abcd794f8efa9 100644 --- a/apps/meteor/tests/e2e/page-objects/omnichannel-units.ts +++ b/apps/meteor/tests/e2e/page-objects/omnichannel-units.ts @@ -4,7 +4,7 @@ import { OmnichannelAdministration } from './omnichannel-administration'; export class OmnichannelUnits extends OmnichannelAdministration { get inputSearch() { - return this.page.locator('[placeholder="Search"]'); + return this.page.getByRole('main').getByRole('textbox', { name: 'Search' }); } async search(text: string) { From 1428d3ebea6b5f842fe71d449633aaa10722836c Mon Sep 17 00:00:00 2001 From: juliajforesti Date: Mon, 24 Jun 2024 18:38:50 -0300 Subject: [PATCH 5/5] :) --- apps/meteor/client/components/FilterByText.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/meteor/client/components/FilterByText.tsx b/apps/meteor/client/components/FilterByText.tsx index 0f3ad745ff328..1aeeb29a0a57a 100644 --- a/apps/meteor/client/components/FilterByText.tsx +++ b/apps/meteor/client/components/FilterByText.tsx @@ -54,7 +54,7 @@ const FilterByText = forwardRef(function Fi value={text} flexGrow={2} minWidth='x220' - aria-label={placeholder ?? 'Search'} + aria-label={placeholder ?? t('Search')} /> {isFilterByTextPropsWithButton(props) ? (