From a96489d5728d68e3e655ebf07ddc0febbca295b4 Mon Sep 17 00:00:00 2001 From: Tomas Kikutis Date: Tue, 13 Aug 2024 17:33:17 +0200 Subject: [PATCH 1/2] export prepareSuperdeskQuery --- scripts/core/get-superdesk-api-implementation.tsx | 4 +++- scripts/core/superdesk-api.d.ts | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/scripts/core/get-superdesk-api-implementation.tsx b/scripts/core/get-superdesk-api-implementation.tsx index 3f506a63a2..02950c3a90 100644 --- a/scripts/core/get-superdesk-api-implementation.tsx +++ b/scripts/core/get-superdesk-api-implementation.tsx @@ -119,6 +119,7 @@ import {PreviewFieldType} from 'apps/authoring/preview/previewFieldByType'; import {getLabelNameResolver} from 'apps/workspace/helpers/getLabelForFieldId'; import {getSortedFields, getSortedFieldsFiltered} from 'apps/authoring/preview/utils'; import {editor3ToOperationalFormat} from 'apps/authoring-react/fields/editor3'; +import {prepareSuperdeskQuery} from './helpers/universal-query'; function getContentType(id): Promise { return dataApi.findOne('content_types', id); @@ -291,8 +292,9 @@ export function getSuperdeskApiImplementation( getContentStateFromHtml: (html) => getContentStateFromHtml(html), tryLocking, tryUnlocking, - superdeskToElasticQuery: toElasticQuery, getArticleLabel, + superdeskToElasticQuery: toElasticQuery, + prepareSuperdeskQuery: prepareSuperdeskQuery, }, httpRequestJsonLocal, httpRequestRawLocal, diff --git a/scripts/core/superdesk-api.d.ts b/scripts/core/superdesk-api.d.ts index 8d9599f3bb..691042b1fd 100644 --- a/scripts/core/superdesk-api.d.ts +++ b/scripts/core/superdesk-api.d.ts @@ -2951,7 +2951,17 @@ declare module 'superdesk-api' { language: string, ): IEditor3Output; getContentStateFromHtml(html: string): import('draft-js').ContentState; + + /** + * @deprecated + * use prepareSuperdeskQuery + */ superdeskToElasticQuery(q: ISuperdeskQuery): {q?: string, source: string}; + + /** + * endpoint must start with `/` e.g. '/archive' + */ + prepareSuperdeskQuery(endpoint: string, query: ISuperdeskQuery): IHttpRequestOptionsLocal & {method: 'GET'}; }, components: { UserHtmlSingleLine: React.ComponentType<{html: string}>; From 02800456f27965d9f3ea1ffadbe0f198a76605d3 Mon Sep 17 00:00:00 2001 From: Tomas Kikutis Date: Wed, 14 Aug 2024 13:21:13 +0200 Subject: [PATCH 2/2] use a helper for clearing an input --- e2e/client/playwright/multiedit.spec.ts | 21 +++++++++++++-------- e2e/client/playwright/utils/inputs.tsx | 10 ++++++++++ 2 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 e2e/client/playwright/utils/inputs.tsx diff --git a/e2e/client/playwright/multiedit.spec.ts b/e2e/client/playwright/multiedit.spec.ts index 9b492310dd..73e5919230 100644 --- a/e2e/client/playwright/multiedit.spec.ts +++ b/e2e/client/playwright/multiedit.spec.ts @@ -3,6 +3,7 @@ import {Monitoring} from './page-object-models/monitoring'; import {Authoring} from './page-object-models/authoring'; import {MultiEdit} from './page-object-models/multiedit'; import {restoreDatabaseSnapshot, s} from './utils'; +import {clearInput} from './utils/inputs'; test.describe('Multiedit', async () => { test('editing articles in multi-edit mode', async ({page}) => { @@ -15,10 +16,12 @@ test.describe('Multiedit', async () => { await monitoring.executeBulkAction('Multi-edit', ['test sports story', 'story 2']); - await page - .locator(s('multiedit-screen', 'multiedit-article=test sports story', 'field--headline')) - .getByRole('textbox') - .clear(); + await clearInput( + page, + page.locator(s('multiedit-screen', 'multiedit-article=test sports story', 'field--headline')) + .getByRole('textbox'), + ); + await page .locator(s('multiedit-screen', 'multiedit-article=test sports story', 'field--headline')) .getByRole('textbox') @@ -26,10 +29,12 @@ test.describe('Multiedit', async () => { await multiedit.save('test sports story'); - await page - .locator(s('multiedit-screen', 'multiedit-article=story 2', 'field--headline')) - .getByRole('textbox') - .clear(); + await clearInput( + page, + page.locator(s('multiedit-screen', 'multiedit-article=story 2', 'field--headline')) + .getByRole('textbox'), + ); + await page .locator(s('multiedit-screen', 'multiedit-article=story 2', 'field--headline')) .getByRole('textbox') diff --git a/e2e/client/playwright/utils/inputs.tsx b/e2e/client/playwright/utils/inputs.tsx new file mode 100644 index 0000000000..600cfd29ab --- /dev/null +++ b/e2e/client/playwright/utils/inputs.tsx @@ -0,0 +1,10 @@ +import {Page, Locator} from '@playwright/test'; + +/** + * .clear method from playwright doesn't work in a stable manner for editor3 inputs + */ +export async function clearInput(page: Page, textInputLocator: Locator): Promise { + await textInputLocator.focus(); + await page.keyboard.press('Meta+A'); + await page.keyboard.press('Backspace'); +} \ No newline at end of file