From f951fbae4baccb515b122f0c487f15815aee30ec Mon Sep 17 00:00:00 2001 From: Yaroslav Kovalsky <71060724+YatsekTest@users.noreply.github.com> Date: Fri, 24 Jan 2025 13:51:54 +0400 Subject: [PATCH] =?UTF-8?q?Autotests:=20#6275=20-=20All=20inproper=20libra?= =?UTF-8?q?ry=20tabs=20switching=20(Favorites,=20Peptides,=20RNA,=20CHEM)?= =?UTF-8?q?=20=E2=80=A6=20(#6329)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * All inproper library tabs switching (Favorites, Peptides, RNA, CHEM) have been replaced with the proper helper functions. * * refactor: renamed values in the Sugars enum * refactor: improve monomer selection and favorites management, update constants usage What was done: - Enhanced `selectMonomer` to support selecting various monomers across different tabs, including the Favorites tab. Added `selectMonomers`. - Added `addMonomerToFavorites`, `addMonomersToFavorites`, `removeMonomerFromFavorites`, and `removeMonomersFromFavorites` for better management of favorites. Updated usage to leverage these functions directly. - Moved monomer test IDs to the `monomer` constants file for centralized management and easier reuse. - Removed unused selectors to clean up the codebase. * feat: add new base '2imen2' to Bases enum and update test selectors for consistency --------- Co-authored-by: Svetlana Demid * #6246 - Import indigo with EXPORT_ES6 & USE_ES6_IMPORT_META options (#6330) - fixed build for esm base64 ketcher-standalone * Imports fixes. * Changes in index.ts and polymerBond.ts files. --------- Co-authored-by: Svetlana Demid <156543655+split-ends@users.noreply.github.com> Co-authored-by: Svetlana Demid Co-authored-by: Roman Rodionov --- .../Chem-monomers/chem-library.spec.ts | 3 ++- .../macro-micro-switcher2.spec.ts | 3 ++- .../RNA-Builder/add-default-presets.spec.ts | 3 ++- .../RNA-Builder/add-preset-to-favorites.spec.ts | 7 ++++--- .../Sequence-Mode/sequence-mode-edit.spec.ts | 3 ++- .../Snake-Mode/snake-bond-tool.spec.ts | 17 +++++++++-------- .../utils/files/receiveFileComparisonData.ts | 1 - .../tests/utils/macromolecules/library.ts | 3 +++ 8 files changed, 24 insertions(+), 16 deletions(-) diff --git a/ketcher-autotests/tests/Macromolecule-editor/Chem-monomers/chem-library.spec.ts b/ketcher-autotests/tests/Macromolecule-editor/Chem-monomers/chem-library.spec.ts index 2c5310e7a6..084f78ed0e 100644 --- a/ketcher-autotests/tests/Macromolecule-editor/Chem-monomers/chem-library.spec.ts +++ b/ketcher-autotests/tests/Macromolecule-editor/Chem-monomers/chem-library.spec.ts @@ -2,6 +2,7 @@ import { test, expect } from '@playwright/test'; import { waitForPageInit } from '@utils/common'; import { takeMonomerLibraryScreenshot } from '@utils'; import { turnOnMacromoleculesEditor } from '@utils/macromolecules'; +import { goToCHEMTab } from '@utils/macromolecules/library'; test.describe('Open Ketcher', () => { test.beforeEach(async ({ page }) => { @@ -22,7 +23,7 @@ test.describe('Open Ketcher', () => { Test case: #2496 - chem monomer library Description: Open Chem tab in library */ - await page.getByText('CHEM').click(); + await goToCHEMTab(page); await expect(page.getByText('A6OH')).toBeVisible(); await takeMonomerLibraryScreenshot(page); }); diff --git a/ketcher-autotests/tests/Macromolecule-editor/Macro-Micro-Switcher/macro-micro-switcher2.spec.ts b/ketcher-autotests/tests/Macromolecule-editor/Macro-Micro-Switcher/macro-micro-switcher2.spec.ts index ec317363e6..1d7d29a55d 100644 --- a/ketcher-autotests/tests/Macromolecule-editor/Macro-Micro-Switcher/macro-micro-switcher2.spec.ts +++ b/ketcher-autotests/tests/Macromolecule-editor/Macro-Micro-Switcher/macro-micro-switcher2.spec.ts @@ -56,6 +56,7 @@ import { FileType, verifyFileExport, } from '@utils/files/receiveFileComparisonData'; +import { goToFavoritesTab } from '@utils/macromolecules/library'; import { pressUndoButton } from '@utils/macromolecules/topToolBar'; async function addToFavoritesMonomers(page: Page) { @@ -96,7 +97,7 @@ test.describe('Macro-Micro-Switcher2', () => { await page.getByText('Hide').click(); await turnOnMicromoleculesEditor(page); await turnOnMacromoleculesEditor(page); - await page.getByTestId('FAVORITES-TAB').click(); + await goToFavoritesTab(page); await takeMonomerLibraryScreenshot(page); }); diff --git a/ketcher-autotests/tests/Macromolecule-editor/RNA-Builder/add-default-presets.spec.ts b/ketcher-autotests/tests/Macromolecule-editor/RNA-Builder/add-default-presets.spec.ts index 93e94bba3c..5ad37aa0ba 100644 --- a/ketcher-autotests/tests/Macromolecule-editor/RNA-Builder/add-default-presets.spec.ts +++ b/ketcher-autotests/tests/Macromolecule-editor/RNA-Builder/add-default-presets.spec.ts @@ -8,12 +8,13 @@ import { } from '@utils'; import { toggleRnaBuilderAccordion } from '@utils/macromolecules/rnaBuilder'; import { Presets } from '@constants/monomers'; +import { goToRNATab } from '@utils/macromolecules/library'; test.describe('Macromolecules default presets', () => { test.beforeEach(async ({ page }) => { await waitForPageInit(page); await turnOnMacromoleculesEditor(page); - await page.getByTestId('RNA-TAB').click(); + await goToRNATab(page); await toggleRnaBuilderAccordion(page); }); diff --git a/ketcher-autotests/tests/Macromolecule-editor/RNA-Builder/add-preset-to-favorites.spec.ts b/ketcher-autotests/tests/Macromolecule-editor/RNA-Builder/add-preset-to-favorites.spec.ts index c55cb5b135..d3ca0eb293 100644 --- a/ketcher-autotests/tests/Macromolecule-editor/RNA-Builder/add-preset-to-favorites.spec.ts +++ b/ketcher-autotests/tests/Macromolecule-editor/RNA-Builder/add-preset-to-favorites.spec.ts @@ -1,6 +1,7 @@ import { Presets } from '@constants/monomers'; import { test, expect } from '@playwright/test'; import { takeMonomerLibraryScreenshot, waitForPageInit } from '@utils'; +import { goToFavoritesTab, goToRNATab } from '@utils/macromolecules/library'; import { gotoRNA } from '@utils/macromolecules/rnaBuilder'; test.describe('Macromolecules add RNA presets to Favorites', () => { @@ -15,12 +16,12 @@ test.describe('Macromolecules add RNA presets to Favorites', () => { }); test('Should add RNA presets to Favorites', async ({ page }) => { - await page.getByTestId('FAVORITES-TAB').click(); + await goToFavoritesTab(page); await expect(page.getByTestId(Presets.A)).not.toBeVisible(); - await page.getByTestId('RNA-TAB').click(); + await goToRNATab(page); await page.locator('div[class="star "]').first().click(); - await page.getByTestId('FAVORITES-TAB').click(); + await goToFavoritesTab(page); await expect(page.getByTestId(Presets.A)).toBeVisible(); }); }); diff --git a/ketcher-autotests/tests/Macromolecule-editor/Sequence-Mode/sequence-mode-edit.spec.ts b/ketcher-autotests/tests/Macromolecule-editor/Sequence-Mode/sequence-mode-edit.spec.ts index 765fed54c8..5639a11f1d 100644 --- a/ketcher-autotests/tests/Macromolecule-editor/Sequence-Mode/sequence-mode-edit.spec.ts +++ b/ketcher-autotests/tests/Macromolecule-editor/Sequence-Mode/sequence-mode-edit.spec.ts @@ -34,6 +34,7 @@ import { enterSequence, turnOnMacromoleculesEditor, } from '@utils/macromolecules'; +import { goToRNATab } from '@utils/macromolecules/library'; import { expandCollapseRnaBuilder } from '@utils/macromolecules/rnaBuilder'; import { clickOnSequenceSymbol, @@ -441,7 +442,7 @@ test.describe('Sequence edit mode', () => { Test case: #4928 Description: System show full set of IDT aliases at preview tooltip. */ - await page.getByTestId('RNA-TAB').click(); + await goToRNATab(page); await expandCollapseRnaBuilder(page); await page.getByTestId(Presets.dR_U_P).hover(); await takePageScreenshot(page); diff --git a/ketcher-autotests/tests/Macromolecule-editor/Snake-Mode/snake-bond-tool.spec.ts b/ketcher-autotests/tests/Macromolecule-editor/Snake-Mode/snake-bond-tool.spec.ts index c7496aecea..7381ee02a0 100755 --- a/ketcher-autotests/tests/Macromolecule-editor/Snake-Mode/snake-bond-tool.spec.ts +++ b/ketcher-autotests/tests/Macromolecule-editor/Snake-Mode/snake-bond-tool.spec.ts @@ -32,6 +32,7 @@ import { turnOnMacromoleculesEditor, turnOnMicromoleculesEditor, } from '@utils/macromolecules'; +import { goToPeptidesTab, goToRNATab } from '@utils/macromolecules/library'; import { bondTwoMonomers } from '@utils/macromolecules/polymerBond'; /* eslint-disable no-magic-numbers */ @@ -216,7 +217,7 @@ test.describe('Snake Bond Tool', () => { }); test('Create snake bond between RNA nucleotides', async () => { - await page.getByTestId('RNA-TAB').click(); + await goToRNATab(page); await selectSnakeLayoutModeTool(page); const { phosphate } = await addRnaPresetOnCanvas( @@ -254,7 +255,7 @@ test.describe('Snake Bond Tool', () => { test('Check snake mode arrange for RNA chain', async () => { await selectFlexLayoutModeTool(page); - await page.getByTestId('RNA-TAB').click(); + await goToRNATab(page); const { phosphate } = await addRnaPresetOnCanvas( page, @@ -367,7 +368,7 @@ test.describe('Snake Bond Tool', () => { ); await selectFlexLayoutModeTool(page); - await page.getByTestId('PEPTIDES-TAB').click(); + await goToPeptidesTab(page); await addBondedMonomersToCanvas( page, Peptides.bAla, @@ -378,7 +379,7 @@ test.describe('Snake Bond Tool', () => { 50, 4, ); - await page.getByTestId('RNA-TAB').click(); + await goToRNATab(page); const { phosphate } = await addRnaPresetOnCanvas( page, @@ -421,7 +422,7 @@ test.describe('Snake Bond Tool', () => { }); test('Create snake bond for chain with nucleoside', async () => { - await page.getByTestId('RNA-TAB').click(); + await goToRNATab(page); await selectSnakeLayoutModeTool(page); const { phosphate } = await addRnaPresetOnCanvas( @@ -476,7 +477,7 @@ test.describe('Snake Bond Tool', () => { test('Create snake bond for chain with side chains', async () => { await pageReload(page); - await page.getByTestId('RNA-TAB').click(); + await goToRNATab(page); const { phosphate } = await addRnaPresetOnCanvas( page, Presets.C, @@ -521,7 +522,7 @@ test.describe('Snake Bond Tool', () => { 0, ); - await page.getByTestId('PEPTIDES-TAB').click(); + await goToPeptidesTab(page); const [peptide] = await addBondedMonomersToCanvas( page, Peptides.A, @@ -582,7 +583,7 @@ test.describe('Snake Bond Tool', () => { test('Create snake mode for single monomer and nucleoside', async () => { await addSingleMonomerToCanvas(page, Peptides.bAla, 'bAla', 300, 300, 0); - await page.getByTestId('RNA-TAB').click(); + await goToRNATab(page); await page.getByTestId('summary-Sugars').click(); const sugarOfNucleoside = await addSingleMonomerToCanvas( page, diff --git a/ketcher-autotests/tests/utils/files/receiveFileComparisonData.ts b/ketcher-autotests/tests/utils/files/receiveFileComparisonData.ts index 3e6189e206..c4056de1b5 100644 --- a/ketcher-autotests/tests/utils/files/receiveFileComparisonData.ts +++ b/ketcher-autotests/tests/utils/files/receiveFileComparisonData.ts @@ -42,7 +42,6 @@ const fileTypeHandlers: { [key in FileType]: FileTypeHandler } = { [FileType.SDF]: getSdf, }; - async function getFileContent( page: Page, fileType: FileType, diff --git a/ketcher-autotests/tests/utils/macromolecules/library.ts b/ketcher-autotests/tests/utils/macromolecules/library.ts index 3cb6a5a947..33766d9aec 100644 --- a/ketcher-autotests/tests/utils/macromolecules/library.ts +++ b/ketcher-autotests/tests/utils/macromolecules/library.ts @@ -14,6 +14,9 @@ export type Tabs = | typeof RNA_TAB | typeof CHEM_TAB; +export const goToFavoritesTab = async (page: Page) => + goToTab(page, FAVORITES_TAB); + export const goToRNATab = async (page: Page) => goToTab(page, RNA_TAB); export const goToCHEMTab = async (page: Page) => goToTab(page, CHEM_TAB);