diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts new file mode 100644 index 0000000000..bca0d19842 --- /dev/null +++ b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts @@ -0,0 +1,672 @@ +import { MAX_BOND_LENGTH } from '@constants/index'; +import { test, expect, Page } from '@playwright/test'; +import { + pressButton, + takeEditorScreenshot, + waitForPageInit, + selectAtomInToolbar, + AtomButton, + clickInTheMiddleOfTheScreen, + takeRightToolbarScreenshot, + openFileAndAddToCanvas, + clickOnAtom, + moveMouseToTheMiddleOfTheScreen, + getCoordinatesOfTheMiddleOfTheScreen, + dragMouseTo, + waitForRender, + selectAtomsFromPeriodicTable, + resetCurrentTool, + moveOnAtom, + selectEraseTool, + screenshotBetweenUndoRedo, + selectPartOfMolecules, + copyAndPaste, + cutAndPaste, + saveToFile, + receiveFileComparisonData, + selectLeftPanelButton, + LeftPanelButton, + selectTopPanelButton, + TopPanelButton, + drawBenzeneRing, + getCoordinatesTopAtomOfBenzeneRing, +} from '@utils'; +import { atomsNames } from '@utils/canvas/atoms/excludedAtoms'; +import { getMolfile, getRxn } from '@utils/formats'; + +const X_DELTA_ONE = 100; + +async function clickAtomShortcut(page: Page, labelKey: string) { + await page.keyboard.press(labelKey); + await clickInTheMiddleOfTheScreen(page); +} + +test.describe('Atom Tool', () => { + test.beforeEach(async ({ page }) => { + await waitForPageInit(page); + }); + + test.afterEach(async ({ page }) => { + await takeEditorScreenshot(page); + }); + + test('Periodic table dialog', async ({ page }) => { + /* + Test case: EPMLSOPKET-1403 + Description: The "Periodic table" modal dialog is opened. + Periodic table' window is closed. No symbols appear on the canvas. + */ + await selectAtomInToolbar(AtomButton.Periodic, page); + await takeEditorScreenshot(page); + await pressButton(page, 'Cancel'); + }); + + test('Extended table dialog', async ({ page }) => { + /* + Test case: EPMLSOPKET-1467 + Description: "Extended Table" contains: + - the "Extended Table" title; + - "Atom Generics" section; + - "Group Generics" section with "Acyclic" and "Cyclic" sections; + - "Special Nodes" section; + - "Cancel" and "Add" buttons are at the right bottom corner of the window: "Cancel" is always active, "Add" becomes active when any symbol is selected; + - "x" button is at the top right corner of the window. + */ + await page.getByTestId('extended-table').click(); + }); + + test('Periodic table-selecting Atom in palette', async ({ page }) => { + /* + Test case: EPMLSOPKET-1434 + Description: Pop-up windows appear with Si element. + After pressing 'Add' button Si element added to canvas. + */ + await selectAtomInToolbar(AtomButton.Periodic, page); + await page.getByRole('button', { name: 'Si 14' }).click(); + await takeEditorScreenshot(page); + await page.getByTestId('OK').click(); + await clickInTheMiddleOfTheScreen(page); + }); + + test('Creating a new bond with atoms from Periodic table/Palette bar', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-1450 + Description: The structure is illustrated as H3Si-SH. + For now it is working incorrect https://github.com/epam/ketcher/issues/3362 + */ + await selectAtomInToolbar(AtomButton.Sulfur, page); + await clickInTheMiddleOfTheScreen(page); + await selectAtomInToolbar(AtomButton.Sulfur, page); + await moveMouseToTheMiddleOfTheScreen(page); + const { x, y } = await getCoordinatesOfTheMiddleOfTheScreen(page); + const coordinatesWithShift = x + MAX_BOND_LENGTH; + await dragMouseTo(coordinatesWithShift, y, page); + await selectAtomInToolbar(AtomButton.Periodic, page); + await page.getByRole('button', { name: 'Si 14' }).click(); + await page.getByTestId('OK').click(); + await waitForRender(page, async () => { + await clickInTheMiddleOfTheScreen(page); + }); + }); + + test('Creating a List from Periodic table', async ({ page }) => { + /* + Test case: EPMLSOPKET-1464 + Description: The selected atom symbols appear on the canvas with square brackets, for example [C, N, O]. + All listed atom symbols should be colored with black. + */ + await selectAtomsFromPeriodicTable(page, 'List', ['Au', 'In', 'Am']); + await clickInTheMiddleOfTheScreen(page); + await resetCurrentTool(page); + }); + + test('Adding a List from Periodic table to structure', async ({ page }) => { + /* + Test case: EPMLSOPKET-1464 + Description: The selected atom symbols appear on structure with square brackets, for example [C, N, O]. + All listed atom symbols should be colored with black. + */ + const anyAtom = 2; + await openFileAndAddToCanvas('KET/simple-chain.ket', page); + await selectAtomsFromPeriodicTable(page, 'List', ['Au', 'In', 'Am']); + await clickOnAtom(page, 'C', anyAtom); + await resetCurrentTool(page); + }); + + test('Creating a Not List from Periodic table', async ({ page }) => { + /* + Test case: EPMLSOPKET-1466 + Description: The selected atom symbols appear on the canvas with square brackets, for example ![C, N, O]. + All listed atom symbols should be colored with black. + */ + await selectAtomsFromPeriodicTable(page, 'Not List', ['Ti', 'V', 'Cs']); + await clickInTheMiddleOfTheScreen(page); + await resetCurrentTool(page); + }); + + test('Adding a Not List from Periodic table to structure', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-1466 + Description: The selected atom symbols appear on structure with square brackets, for example ![C, N, O]. + All listed atom symbols should be colored with black. + */ + const anyAtom = 2; + await openFileAndAddToCanvas('KET/simple-chain.ket', page); + await selectAtomsFromPeriodicTable(page, 'Not List', ['V', 'Ti', 'Cs']); + await clickOnAtom(page, 'C', anyAtom); + await resetCurrentTool(page); + }); + + test('Select Generics from Extended table', async ({ page }) => { + /* + Test case: EPMLSOPKET-1485 + Description: The selected button is highlighted. Several dialog buttons can`t be selected. + The "Add" button becomes enabled when any generic group is selected. + */ + await page.getByTestId('extended-table').click(); + await page.getByRole('button', { name: 'AH', exact: true }).click(); + }); + + test('Manipulation with structures with different atoms, List/Not List and Generic Group - Move whole structure', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-1527 + Description: The whole structure is moved. + */ + const x = 300; + const y = 300; + await openFileAndAddToCanvas( + 'Molfiles-V2000/structure-list-notlist.mol', + page, + ); + await page.keyboard.press('Control+a'); + await moveOnAtom(page, 'C', 0); + await dragMouseTo(x, y, page); + }); + + test('Delete Generic atom from structure', async ({ page }) => { + /* + Test case: EPMLSOPKET-1527 + Description: AH Generic is deleted from structure. + */ + await openFileAndAddToCanvas( + 'Molfiles-V2000/structure-list-notlist.mol', + page, + ); + await selectEraseTool(page); + await page.getByText('AH').click(); + await screenshotBetweenUndoRedo(page); + }); + + test('Erase part of structure with List/Not List and Generic Group', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-1527 + Description: Part of structure with List/Not List and Generic Group is deleted. + */ + await openFileAndAddToCanvas( + 'Molfiles-V2000/structure-list-notlist.mol', + page, + ); + await selectPartOfMolecules(page); + await waitForRender(page, async () => { + await page.getByTestId('erase').click(); + }); + await screenshotBetweenUndoRedo(page); + }); + + test('Zoom In and Zoom Out of structure with List/Not List and Generic Group', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-1527 + Description: Structure with List/Not List and Generic Group is Zoom In and Zoom Out. + */ + const numberOfPressZoomOut = 5; + const numberOfPressZoomIn = 5; + await openFileAndAddToCanvas( + 'Molfiles-V2000/structure-list-notlist.mol', + page, + ); + for (let i = 0; i < numberOfPressZoomOut; i++) { + await waitForRender(page, async () => { + await page.keyboard.press('Control+_'); + }); + } + + await takeEditorScreenshot(page); + + for (let i = 0; i < numberOfPressZoomIn; i++) { + await waitForRender(page, async () => { + await page.keyboard.press('Control+='); + }); + } + }); + + test('Copy and paste structure with List/Not List and Generic Group', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-1528 + Description: Structure with List/Not List and Generic Group is copy and pasted. + */ + const x = 300; + const y = 300; + await openFileAndAddToCanvas( + 'Molfiles-V2000/structure-list-notlist.mol', + page, + ); + await copyAndPaste(page); + await page.mouse.click(x, y); + }); + + test('Cut and paste structure with List/Not List and Generic Group', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-1528 + Description: Structure with List/Not List and Generic Group is cut and pasted. + */ + const x = 300; + const y = 300; + await openFileAndAddToCanvas( + 'Molfiles-V2000/structure-list-notlist.mol', + page, + ); + await cutAndPaste(page); + await page.mouse.click(x, y); + }); + + test('Drag and drop Bromine atom on Benzene ring-Merging atom-to-atom', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-1581 + Description: when drag & drop an atom on an atom it should replace it + */ + await drawBenzeneRing(page); + + const { x, y } = await getCoordinatesTopAtomOfBenzeneRing(page); + const bromineCoordinates = { x: x + X_DELTA_ONE, y }; + + await selectAtomInToolbar(AtomButton.Bromine, page); + await page.mouse.click(bromineCoordinates.x, bromineCoordinates.y); + + await selectLeftPanelButton(LeftPanelButton.RectangleSelection, page); + await page.mouse.move(bromineCoordinates.x, bromineCoordinates.y); + await dragMouseTo(x, y, page); + }); + + test('Colored atoms - save as mol-file and render', async ({ page }) => { + /* + Test case: EPMLSOPKET-1533 + Description: Structure is represented with correctly colored atoms. + */ + await openFileAndAddToCanvas( + 'Molfiles-V2000/chain-with-colored-atoms.mol', + page, + ); + const expectedFile = await getMolfile(page, 'v2000'); + await saveToFile( + 'Molfiles-V2000/chain-with-colored-atoms-expected.mol', + expectedFile, + ); + + const METADATA_STRING_INDEX = [1]; + const { fileExpected: molFileExpected, file: molFile } = + await receiveFileComparisonData({ + page, + expectedFileName: + 'tests/test-data/Molfiles-V2000/chain-with-colored-atoms-expected.mol', + fileFormat: 'v2000', + metaDataIndexes: METADATA_STRING_INDEX, + }); + + expect(molFile).toEqual(molFileExpected); + }); + + test('Colored atoms - save as rxn-file and render', async ({ page }) => { + /* + Test case: EPMLSOPKET-1534 + Description: Structure is represented with correctly colored atoms. + */ + await openFileAndAddToCanvas( + 'Rxn-V2000/reaction-with-colored-atoms.rxn', + page, + ); + const expectedFile = await getRxn(page, 'v2000'); + await saveToFile( + 'Rxn-V2000/reaction-with-colored-atoms-expected.rxn', + expectedFile, + ); + // eslint-disable-next-line no-magic-numbers + const METADATA_STRING_INDEX = [2, 7, 30]; + const { fileExpected: rxnFileExpected, file: rxnFile } = + await receiveFileComparisonData({ + page, + expectedFileName: + 'tests/test-data/Rxn-V2000/reaction-with-colored-atoms-expected.rxn', + fileFormat: 'v2000', + metaDataIndexes: METADATA_STRING_INDEX, + }); + + expect(rxnFile).toEqual(rxnFileExpected); + }); + + test('List/Not List - save as mol-file and render', async ({ page }) => { + /* + Test case: EPMLSOPKET-1577 + Description: The saved *.mol file is opened in Ketcher. + Structure is represented with correct List and Not List atom symbols + */ + await openFileAndAddToCanvas( + 'Molfiles-V2000/structure-list-notlist.mol', + page, + ); + const expectedFile = await getMolfile(page, 'v2000'); + await saveToFile( + 'Molfiles-V2000/structure-list-notlist-expected.mol', + expectedFile, + ); + + const METADATA_STRING_INDEX = [1]; + const { fileExpected: molFileExpected, file: molFile } = + await receiveFileComparisonData({ + page, + expectedFileName: + 'tests/test-data/Molfiles-V2000/structure-list-notlist-expected.mol', + fileFormat: 'v2000', + metaDataIndexes: METADATA_STRING_INDEX, + }); + + expect(molFile).toEqual(molFileExpected); + }); + + test('List/Not List - save as rxn-file and render', async ({ page }) => { + /* + Test case: EPMLSOPKET-1578 + Description: The saved *.rxn file is opened in Ketcher. + The reaction is represented with correct List and Not List atom symbols. + */ + await openFileAndAddToCanvas('Rxn-V2000/reaction-list-notlist.rxn', page); + const expectedFile = await getRxn(page, 'v2000'); + await saveToFile( + 'Rxn-V2000/reaction-list-notlist-expected.rxn', + expectedFile, + ); + // eslint-disable-next-line no-magic-numbers + const METADATA_STRING_INDEX = [2, 7, 32]; + const { fileExpected: rxnFileExpected, file: rxnFile } = + await receiveFileComparisonData({ + page, + expectedFileName: + 'tests/test-data/Rxn-V2000/reaction-list-notlist-expected.rxn', + fileFormat: 'v2000', + metaDataIndexes: METADATA_STRING_INDEX, + }); + + expect(rxnFile).toEqual(rxnFileExpected); + }); + + test('Generic Groups - save as rxn-file and render', async ({ page }) => { + /* + Test case: EPMLSOPKET-1580 + Description: The saved *.rxn file is opened in Ketcher. + The reaction is represented with correct Generic Groups. + */ + await openFileAndAddToCanvas( + 'Rxn-V2000/reaction-with-group-generics.rxn', + page, + ); + const expectedFile = await getRxn(page, 'v2000'); + await saveToFile( + 'Rxn-V2000/reaction-with-group-generics-expected.rxn', + expectedFile, + ); + // eslint-disable-next-line no-magic-numbers + const METADATA_STRING_INDEX = [2, 7, 30]; + const { fileExpected: rxnFileExpected, file: rxnFile } = + await receiveFileComparisonData({ + page, + expectedFileName: + 'tests/test-data/Rxn-V2000/reaction-with-group-generics-expected.rxn', + fileFormat: 'v2000', + metaDataIndexes: METADATA_STRING_INDEX, + }); + + expect(rxnFile).toEqual(rxnFileExpected); + }); + + test('Generic Groups - save as mol-file and render', async ({ page }) => { + /* + Test case: EPMLSOPKET-1579 + Description: The saved *.mol file is opened in Ketcher. + Structure is represented with correct Generic Groups + */ + await openFileAndAddToCanvas( + 'Molfiles-V2000/chain-with-group-generics.mol', + page, + ); + const expectedFile = await getMolfile(page, 'v2000'); + await saveToFile( + 'Molfiles-V2000/chain-with-group-generics-expected.mol', + expectedFile, + ); + + const METADATA_STRING_INDEX = [1]; + const { fileExpected: molFileExpected, file: molFile } = + await receiveFileComparisonData({ + page, + expectedFileName: + 'tests/test-data/Molfiles-V2000/chain-with-group-generics-expected.mol', + fileFormat: 'v2000', + metaDataIndexes: METADATA_STRING_INDEX, + }); + + expect(molFile).toEqual(molFileExpected); + }); + + test('Select part of structure and press Atom in toolbar', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-12982 + Description: Atoms appears on selected part of structure. + */ + await openFileAndAddToCanvas('KET/simple-chain.ket', page); + await selectPartOfMolecules(page); + await selectAtomInToolbar(AtomButton.Oxygen, page); + }); + + test('Deleting an atom that is bonded to another atom not deleting second atom', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-10071 + Description: Only one atom should be removed and the other should remain + */ + const numberOfAtom = 0; + await selectAtomInToolbar(AtomButton.Bromine, page); + await clickInTheMiddleOfTheScreen(page); + await selectAtomInToolbar(AtomButton.Nitrogen, page); + await moveMouseToTheMiddleOfTheScreen(page); + const { x, y } = await getCoordinatesOfTheMiddleOfTheScreen(page); + const coordinatesWithShift = x + MAX_BOND_LENGTH; + await dragMouseTo(coordinatesWithShift, y, page); + await selectLeftPanelButton(LeftPanelButton.Erase, page); + await clickOnAtom(page, 'Br', numberOfAtom); + await takeEditorScreenshot(page); + await selectTopPanelButton(TopPanelButton.Undo, page); + await clickOnAtom(page, 'N', numberOfAtom); + }); + + test('Deleting of one middle atom from a bunch of three not deleting another two atoms', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-10072 + Description: Deleting of one middle atom from a bunch of three not deleting another two atoms + */ + const numberOfAtom = 0; + await openFileAndAddToCanvas('KET/three-bonded-atoms.ket', page); + await selectLeftPanelButton(LeftPanelButton.Erase, page); + await clickOnAtom(page, 'N', numberOfAtom); + }); +}); + +test.describe('Atom Tool', () => { + test.beforeEach(async ({ page }) => { + await waitForPageInit(page); + }); + + test('Addition element buttons to right atom panel', async ({ page }) => { + /* + Test case: EPMLSOPKET-1435 + Description: The additional button with the selected atom symbol appears on the Atom Palette + */ + const elementNames = ['Si', 'Au', 'In', 'Am', 'Se', 'Pu', 'Rn']; + + for (const elementName of elementNames) { + await selectAtomInToolbar(AtomButton.Periodic, page); + await page.click(`button[data-testid="${elementName}-button"]`); + await page.getByTestId('OK').click(); + } + + await takeRightToolbarScreenshot(page); + }); + + test('Addition 8th element buttons to right atom panel', async ({ page }) => { + /* + Test case: EPMLSOPKET-1435 + Description: The first additional atom symbol is replaced with the new one. + The 8th button isn't added. In our test 'Si' replaces by 'Db'. + */ + const elementNames = ['Si', 'Au', 'In', 'Am', 'Se', 'Pu', 'Rn', 'Db']; + + for (const elementName of elementNames) { + await selectAtomInToolbar(AtomButton.Periodic, page); + await page.click(`button[data-testid="${elementName}-button"]`); + await page.getByTestId('OK').click(); + } + + await takeRightToolbarScreenshot(page); + }); + + test('Adding to structure a new atom from Periodic table', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-1443 + Description: The additional button with the selected atom symbol appears on the Atom Palette. + Additional atom can be added to structure. + */ + const elementNames = ['Si', 'Au', 'In', 'Am', 'Se', 'Pu', 'Rn']; + + for (const elementName of elementNames) { + await selectAtomInToolbar(AtomButton.Periodic, page); + await page.click(`button[data-testid="${elementName}-button"]`); + await page.getByTestId('OK').click(); + } + + const anyAtom = 0; + await openFileAndAddToCanvas('KET/simple-chain.ket', page); + await selectAtomInToolbar(AtomButton.Gold, page); + await clickOnAtom(page, 'C', anyAtom); + await takeEditorScreenshot(page); + }); + + test('Click on the keyboard shortcut related to the molecule', async ({ + page, + }) => { + /* + Test case: EPMLSOPKET-5262 + Description: The selected atom appeared on the canvas + */ + const atomShortcuts = ['a', 'q', 'r', 'k', 'm', 'x']; + + for (const labelKey of atomShortcuts) { + await waitForRender(page, async () => { + await clickAtomShortcut(page, labelKey); + await resetCurrentTool(page); + await takeEditorScreenshot(page); + }); + } + }); + + test('Default colours of atom symbols', async ({ page }) => { + /* + Test case: EPMLSOPKET-1344, EPMLSOPKET-1341 + Description: + "H" and "C" are #000000, black. + "N" is #304FF7, blue. + "O" is #FF0D0D, red. + "S" is #C99A19, yellow. + "P" is #FF8000, brick red. + "F" is #78BC42, grass green. + "Cl" is #1FD01F, light green. + "Br" is #A62929, red-brown. + "I" is #940094, purple. + */ + await takeRightToolbarScreenshot(page); + }); + + test('Add atoms from right toolbar to Benzene ring', async ({ page }) => { + /* + Test case: EPMLSOPKET-1354, EPMLSOPKET-1361, EPMLSOPKET-1369, EPMLSOPKET-1370, + EPMLSOPKET-1372, EPMLSOPKET-1373, EPMLSOPKET-1379, EPMLSOPKET-1387, EPMLSOPKET-1388, EPMLSOPKET-1402 + Description: Atom added to Benzene ring. + */ + const anyAtom = 0; + + for (const atomName of atomsNames) { + await drawBenzeneRing(page); + await selectAtomInToolbar(atomName, page); + await clickOnAtom(page, 'C', anyAtom); + await takeEditorScreenshot(page); + } + }); + + test('Add atoms by hotkey to Benzene ring', async ({ page }) => { + /* + Test case: EPMLSOPKET-1354, EPMLSOPKET-1361, EPMLSOPKET-1369, EPMLSOPKET-1370, + EPMLSOPKET-1372, EPMLSOPKET-1373, EPMLSOPKET-1379, EPMLSOPKET-1387, EPMLSOPKET-1388, EPMLSOPKET-1402 + Description: Atom added to Benzene ring. + */ + const anyAtom = 2; + const atomsNames = ['h', 'c', 'n', 'o', 's', 'p', 'f', 'b', 'i']; + + for (const atomName of atomsNames) { + await drawBenzeneRing(page); + await resetCurrentTool(page); + await clickOnAtom(page, 'C', anyAtom); + await page.keyboard.press(atomName); + await takeEditorScreenshot(page); + } + }); + + test('Select Atom and drag on Benzene ring', async ({ page }) => { + /* + Test case: EPMLSOPKET-1354, EPMLSOPKET-1361, EPMLSOPKET-1369, EPMLSOPKET-1370, + EPMLSOPKET-1372, EPMLSOPKET-1373, EPMLSOPKET-1379, EPMLSOPKET-1387, EPMLSOPKET-1388, EPMLSOPKET-1402 + Description: Atom added to Benzene ring. + */ + const anyAtom = 2; + + for (const atomName of atomsNames) { + await drawBenzeneRing(page); + await selectAtomInToolbar(atomName, page); + await moveOnAtom(page, 'C', anyAtom); + const { x, y } = await getCoordinatesTopAtomOfBenzeneRing(page); + const coordinatesWithShift = y - MAX_BOND_LENGTH; + await dragMouseTo(x, coordinatesWithShift, page); + await takeEditorScreenshot(page); + await selectTopPanelButton(TopPanelButton.Undo, page); + } + }); +}); diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-1-chromium-linux.png new file mode 100644 index 0000000000..d3deb5cb0d Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-10-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-10-chromium-linux.png new file mode 100644 index 0000000000..a2cd3f8d93 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-10-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-2-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-2-chromium-linux.png new file mode 100644 index 0000000000..a114819c1f Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-2-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-3-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-3-chromium-linux.png new file mode 100644 index 0000000000..53d45323bd Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-3-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-4-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-4-chromium-linux.png new file mode 100644 index 0000000000..3fadea510e Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-4-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-5-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-5-chromium-linux.png new file mode 100644 index 0000000000..eefdeffcc0 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-5-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-6-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-6-chromium-linux.png new file mode 100644 index 0000000000..2aa1b8be68 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-6-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-7-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-7-chromium-linux.png new file mode 100644 index 0000000000..399c6322ad Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-7-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-8-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-8-chromium-linux.png new file mode 100644 index 0000000000..940a52a7e5 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-8-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-9-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-9-chromium-linux.png new file mode 100644 index 0000000000..a2cd3f8d93 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-by-hotkey-to-Benzene-ring-9-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-1-chromium-linux.png new file mode 100644 index 0000000000..a572000299 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-10-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-10-chromium-linux.png new file mode 100644 index 0000000000..328f52e6af Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-10-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-2-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-2-chromium-linux.png new file mode 100644 index 0000000000..e343e8b8a0 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-2-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-3-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-3-chromium-linux.png new file mode 100644 index 0000000000..d63a41ae7a Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-3-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-4-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-4-chromium-linux.png new file mode 100644 index 0000000000..3fd3e9a401 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-4-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-5-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-5-chromium-linux.png new file mode 100644 index 0000000000..afc08d2be4 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-5-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-6-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-6-chromium-linux.png new file mode 100644 index 0000000000..6988bfdd09 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-6-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-7-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-7-chromium-linux.png new file mode 100644 index 0000000000..d985b6cf90 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-7-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-8-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-8-chromium-linux.png new file mode 100644 index 0000000000..3422d51c04 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-8-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-9-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-9-chromium-linux.png new file mode 100644 index 0000000000..26cdc37777 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Add-atoms-from-right-toolbar-to-Benzene-ring-9-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Adding-a-List-from-Periodic-table-to-structure-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Adding-a-List-from-Periodic-table-to-structure-1-chromium-linux.png new file mode 100644 index 0000000000..44e2156f49 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Adding-a-List-from-Periodic-table-to-structure-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Adding-a-Not-List-from-Periodic-table-to-structure-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Adding-a-Not-List-from-Periodic-table-to-structure-1-chromium-linux.png new file mode 100644 index 0000000000..20e6d011b6 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Adding-a-Not-List-from-Periodic-table-to-structure-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Adding-to-structure-a-new-atom-from-Periodic-table-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Adding-to-structure-a-new-atom-from-Periodic-table-1-chromium-linux.png new file mode 100644 index 0000000000..efbd90d194 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Adding-to-structure-a-new-atom-from-Periodic-table-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Addition-8th-element-buttons-to-right-atom-panel-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Addition-8th-element-buttons-to-right-atom-panel-1-chromium-linux.png new file mode 100644 index 0000000000..6f7cdf3ad8 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Addition-8th-element-buttons-to-right-atom-panel-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Addition-element-buttons-to-right-atom-panel-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Addition-element-buttons-to-right-atom-panel-1-chromium-linux.png new file mode 100644 index 0000000000..94d4a02d66 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Addition-element-buttons-to-right-atom-panel-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-1-chromium-linux.png new file mode 100644 index 0000000000..2ac9228e57 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-2-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-2-chromium-linux.png new file mode 100644 index 0000000000..62ed739dfa Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-2-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-3-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-3-chromium-linux.png new file mode 100644 index 0000000000..86062479e0 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-3-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-4-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-4-chromium-linux.png new file mode 100644 index 0000000000..b760532c98 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-4-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-5-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-5-chromium-linux.png new file mode 100644 index 0000000000..03fa9e9855 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-5-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-6-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-6-chromium-linux.png new file mode 100644 index 0000000000..803ce19e90 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Click-on-the-keyboard-shortcut-related-to-the-molecule-6-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Colored-atoms---save-as-mol-file-and-render-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Colored-atoms---save-as-mol-file-and-render-1-chromium-linux.png new file mode 100644 index 0000000000..aa5fcb95dc Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Colored-atoms---save-as-mol-file-and-render-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Colored-atoms---save-as-rxn-file-and-render-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Colored-atoms---save-as-rxn-file-and-render-1-chromium-linux.png new file mode 100644 index 0000000000..7ea7ee6320 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Colored-atoms---save-as-rxn-file-and-render-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Copy-and-paste-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Copy-and-paste-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png new file mode 100644 index 0000000000..2fffd8690f Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Copy-and-paste-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Creating-a-List-from-Periodic-table-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Creating-a-List-from-Periodic-table-1-chromium-linux.png new file mode 100644 index 0000000000..3c3638d913 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Creating-a-List-from-Periodic-table-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Creating-a-Not-List-from-Periodic-table-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Creating-a-Not-List-from-Periodic-table-1-chromium-linux.png new file mode 100644 index 0000000000..2976a68993 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Creating-a-Not-List-from-Periodic-table-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Creating-a-new-bond-with-atoms-from-Periodic-table-Palette-bar-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Creating-a-new-bond-with-atoms-from-Periodic-table-Palette-bar-1-chromium-linux.png new file mode 100644 index 0000000000..a7849dc065 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Creating-a-new-bond-with-atoms-from-Periodic-table-Palette-bar-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Cut-and-paste-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Cut-and-paste-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png new file mode 100644 index 0000000000..c3041c29ea Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Cut-and-paste-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Default-colours-of-atom-symbols-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Default-colours-of-atom-symbols-1-chromium-linux.png new file mode 100644 index 0000000000..5d1007213c Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Default-colours-of-atom-symbols-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Delete-Generic-atom-from-structure-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Delete-Generic-atom-from-structure-1-chromium-linux.png new file mode 100644 index 0000000000..5e2b5d721f Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Delete-Generic-atom-from-structure-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Delete-Generic-atom-from-structure-2-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Delete-Generic-atom-from-structure-2-chromium-linux.png new file mode 100644 index 0000000000..b309f857fb Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Delete-Generic-atom-from-structure-2-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Deleting-an-atom-that-is-bonded-to-another-atom-not-deleting-second-atom-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Deleting-an-atom-that-is-bonded-to-another-atom-not-deleting-second-atom-1-chromium-linux.png new file mode 100644 index 0000000000..19ba20f9f0 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Deleting-an-atom-that-is-bonded-to-another-atom-not-deleting-second-atom-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Deleting-an-atom-that-is-bonded-to-another-atom-not-deleting-second-atom-2-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Deleting-an-atom-that-is-bonded-to-another-atom-not-deleting-second-atom-2-chromium-linux.png new file mode 100644 index 0000000000..6482139def Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Deleting-an-atom-that-is-bonded-to-another-atom-not-deleting-second-atom-2-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Deleting-of-one-middle-atom-from-a-bunch-of-three-not-deleting-another-two-atoms-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Deleting-of-one-middle-atom-from-a-bunch-of-three-not-deleting-another-two-atoms-1-chromium-linux.png new file mode 100644 index 0000000000..b978f172f9 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Deleting-of-one-middle-atom-from-a-bunch-of-three-not-deleting-another-two-atoms-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Drag-and-drop-Bromine-atom-on-Benzene-ring-Merging-atom-to-atom-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Drag-and-drop-Bromine-atom-on-Benzene-ring-Merging-atom-to-atom-1-chromium-linux.png new file mode 100644 index 0000000000..8d0936e1ef Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Drag-and-drop-Bromine-atom-on-Benzene-ring-Merging-atom-to-atom-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Erase-part-of-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Erase-part-of-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png new file mode 100644 index 0000000000..b3c7bf6aaa Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Erase-part-of-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Erase-part-of-structure-with-List-Not-List-and-Generic-Group-2-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Erase-part-of-structure-with-List-Not-List-and-Generic-Group-2-chromium-linux.png new file mode 100644 index 0000000000..334eee60da Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Erase-part-of-structure-with-List-Not-List-and-Generic-Group-2-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Extended-table-dialog-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Extended-table-dialog-1-chromium-linux.png new file mode 100644 index 0000000000..df0f679a9e Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Extended-table-dialog-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Generic-Groups---save-as-mol-file-and-render-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Generic-Groups---save-as-mol-file-and-render-1-chromium-linux.png new file mode 100644 index 0000000000..d0a9a49610 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Generic-Groups---save-as-mol-file-and-render-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Generic-Groups---save-as-rxn-file-and-render-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Generic-Groups---save-as-rxn-file-and-render-1-chromium-linux.png new file mode 100644 index 0000000000..b8fe90c273 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Generic-Groups---save-as-rxn-file-and-render-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-List-Not-List---save-as-mol-file-and-render-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-List-Not-List---save-as-mol-file-and-render-1-chromium-linux.png new file mode 100644 index 0000000000..74befd7a15 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-List-Not-List---save-as-mol-file-and-render-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-List-Not-List---save-as-rxn-file-and-render-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-List-Not-List---save-as-rxn-file-and-render-1-chromium-linux.png new file mode 100644 index 0000000000..2937bc7f1e Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-List-Not-List---save-as-rxn-file-and-render-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Manipulation-with-structures-with-di-514e5-List-and-Generic-Group---Move-whole-structure-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Manipulation-with-structures-with-di-514e5-List-and-Generic-Group---Move-whole-structure-1-chromium-linux.png new file mode 100644 index 0000000000..e8b0f51efc Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Manipulation-with-structures-with-di-514e5-List-and-Generic-Group---Move-whole-structure-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-dialog-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-dialog-1-chromium-linux.png new file mode 100644 index 0000000000..02adc9fb92 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-dialog-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-dialog-2-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-dialog-2-chromium-linux.png new file mode 100644 index 0000000000..b06752df37 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-dialog-2-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-selecting-Atom-in-palette-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-selecting-Atom-in-palette-1-chromium-linux.png new file mode 100644 index 0000000000..07a5b35f8e Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-selecting-Atom-in-palette-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-selecting-Atom-in-palette-2-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-selecting-Atom-in-palette-2-chromium-linux.png new file mode 100644 index 0000000000..b02ee0076a Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Periodic-table-selecting-Atom-in-palette-2-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-1-chromium-linux.png new file mode 100644 index 0000000000..1db25f846c Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-10-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-10-chromium-linux.png new file mode 100644 index 0000000000..a5d4faf93e Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-10-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-2-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-2-chromium-linux.png new file mode 100644 index 0000000000..f9f48a5bc3 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-2-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-3-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-3-chromium-linux.png new file mode 100644 index 0000000000..1b97dae572 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-3-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-4-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-4-chromium-linux.png new file mode 100644 index 0000000000..2908209ac7 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-4-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-5-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-5-chromium-linux.png new file mode 100644 index 0000000000..39df78acb0 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-5-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-6-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-6-chromium-linux.png new file mode 100644 index 0000000000..31e0dbf9d1 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-6-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-7-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-7-chromium-linux.png new file mode 100644 index 0000000000..5f0ddeb7e8 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-7-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-8-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-8-chromium-linux.png new file mode 100644 index 0000000000..7039d67f87 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-8-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-9-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-9-chromium-linux.png new file mode 100644 index 0000000000..38b132701a Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Atom-and-drag-on-Benzene-ring-9-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Generics-from-Extended-table-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Generics-from-Extended-table-1-chromium-linux.png new file mode 100644 index 0000000000..21fee912d9 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-Generics-from-Extended-table-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-part-of-structure-and-press-Atom-in-toolbar-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-part-of-structure-and-press-Atom-in-toolbar-1-chromium-linux.png new file mode 100644 index 0000000000..ee72f996a2 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Select-part-of-structure-and-press-Atom-in-toolbar-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Zoom-In-and-Zoom-Out-of-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Zoom-In-and-Zoom-Out-of-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png new file mode 100644 index 0000000000..41f9edf830 Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Zoom-In-and-Zoom-Out-of-structure-with-List-Not-List-and-Generic-Group-1-chromium-linux.png differ diff --git a/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Zoom-In-and-Zoom-Out-of-structure-with-List-Not-List-and-Generic-Group-2-chromium-linux.png b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Zoom-In-and-Zoom-Out-of-structure-with-List-Not-List-and-Generic-Group-2-chromium-linux.png new file mode 100644 index 0000000000..2d0e61862a Binary files /dev/null and b/ketcher-autotests/tests/Structure-Creating-&-Editing/Atom/Atom-Tool/atom-tool.spec.ts-snapshots/Atom-Tool-Zoom-In-and-Zoom-Out-of-structure-with-List-Not-List-and-Generic-Group-2-chromium-linux.png differ diff --git a/ketcher-autotests/tests/test-data/KET/three-bonded-atoms.ket b/ketcher-autotests/tests/test-data/KET/three-bonded-atoms.ket new file mode 100644 index 0000000000..25d7da5b21 --- /dev/null +++ b/ketcher-autotests/tests/test-data/KET/three-bonded-atoms.ket @@ -0,0 +1,59 @@ +{ + "root": { + "nodes": [ + { + "$ref": "mol0" + } + ] + }, + "mol0": { + "type": "molecule", + "atoms": [ + { + "label": "Br", + "location": [ + 15.875000000000002, + -7.375, + 0 + ] + }, + { + "label": "N", + "location": [ + 16.875, + -7.375, + 0 + ] + }, + { + "label": "O", + "location": [ + 17.875, + -7.375, + 0 + ] + } + ], + "bonds": [ + { + "type": 1, + "atoms": [ + 0, + 1 + ] + }, + { + "type": 1, + "atoms": [ + 1, + 2 + ] + } + ], + "stereoFlagPosition": { + "x": 17.875, + "y": 6.375, + "z": 0 + } + } +} \ No newline at end of file diff --git a/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-colored-atoms-expected.mol b/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-colored-atoms-expected.mol new file mode 100644 index 0000000000..a9760922a9 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-colored-atoms-expected.mol @@ -0,0 +1,22 @@ + + Ketcher 9262318192D 1 1.00000 0.00000 0 + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 11.6109 -8.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.4769 -8.5500 0.0000 Xe 0 0 0 0 0 0 0 0 0 0 0 0 + 13.3430 -8.0500 0.0000 Ti 0 0 0 0 0 0 0 0 0 0 0 0 + 14.2090 -8.5500 0.0000 K 0 0 0 0 0 0 0 0 0 0 0 0 + 15.0750 -8.0500 0.0000 Np 0 0 0 0 0 0 0 0 0 0 0 0 + 15.9410 -8.5500 0.0000 Ho 0 0 0 0 0 0 0 0 0 0 0 0 + 16.8071 -8.0500 0.0000 Th 0 0 0 0 0 0 0 0 0 0 0 0 + 17.6731 -8.5500 0.0000 Mg 0 0 0 0 0 0 0 0 0 0 0 0 + 18.5391 -8.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 + 2 3 1 0 0 0 + 3 4 1 0 0 0 + 4 5 1 0 0 0 + 5 6 1 0 0 0 + 6 7 1 0 0 0 + 7 8 1 0 0 0 + 8 9 1 0 0 0 +M END diff --git a/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-colored-atoms.mol b/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-colored-atoms.mol new file mode 100644 index 0000000000..060722e562 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-colored-atoms.mol @@ -0,0 +1,22 @@ + + Ketcher 9262316512D 1 1.00000 0.00000 0 + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 10.4000 -8.1250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.2660 -8.6250 0.0000 Xe 0 0 0 0 0 0 0 0 0 0 0 0 + 12.1321 -8.1250 0.0000 Ti 0 0 0 0 0 0 0 0 0 0 0 0 + 12.9981 -8.6250 0.0000 K 0 0 0 0 0 0 0 0 0 0 0 0 + 13.8641 -8.1250 0.0000 Np 0 0 0 0 0 0 0 0 0 0 0 0 + 14.7301 -8.6250 0.0000 Ho 0 0 0 0 0 0 0 0 0 0 0 0 + 15.5962 -8.1250 0.0000 Th 0 0 0 0 0 0 0 0 0 0 0 0 + 16.4622 -8.6250 0.0000 Mg 0 0 0 0 0 0 0 0 0 0 0 0 + 17.3282 -8.1250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 + 2 3 1 0 0 0 + 3 4 1 0 0 0 + 4 5 1 0 0 0 + 5 6 1 0 0 0 + 6 7 1 0 0 0 + 7 8 1 0 0 0 + 8 9 1 0 0 0 +M END diff --git a/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-group-generics-expected.mol b/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-group-generics-expected.mol new file mode 100644 index 0000000000..23308248d8 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-group-generics-expected.mol @@ -0,0 +1,22 @@ + + Ketcher 9262318192D 1 1.00000 0.00000 0 + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 11.6109 -8.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.4769 -8.5500 0.0000 G 0 0 0 0 0 0 0 0 0 0 0 0 + 13.3430 -8.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 14.2090 -8.5500 0.0000 GH 0 0 0 0 0 0 0 0 0 0 0 0 + 15.0750 -8.0500 0.0000 G* 0 0 0 0 0 0 0 0 0 0 0 0 + 15.9410 -8.5500 0.0000 GH* 0 0 0 0 0 0 0 0 0 0 0 0 + 16.8071 -8.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 17.6731 -8.5500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 18.5391 -8.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 + 2 3 1 0 0 0 + 3 4 1 0 0 0 + 4 5 1 0 0 0 + 5 6 1 0 0 0 + 6 7 1 0 0 0 + 7 8 1 0 0 0 + 8 9 1 0 0 0 +M END diff --git a/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-group-generics.mol b/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-group-generics.mol new file mode 100644 index 0000000000..e31e06a996 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Molfiles-V2000/chain-with-group-generics.mol @@ -0,0 +1,22 @@ + + Ketcher 9262321122D 1 1.00000 0.00000 0 + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 7.9250 -8.1250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.7910 -8.6250 0.0000 G 0 0 0 0 0 0 0 0 0 0 0 0 + 9.6571 -8.1250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.5231 -8.6250 0.0000 GH 0 0 0 0 0 0 0 0 0 0 0 0 + 11.3891 -8.1250 0.0000 G* 0 0 0 0 0 0 0 0 0 0 0 0 + 12.2551 -8.6250 0.0000 GH* 0 0 0 0 0 0 0 0 0 0 0 0 + 13.1212 -8.1250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.9872 -8.6250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 14.8532 -8.1250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 + 2 3 1 0 0 0 + 3 4 1 0 0 0 + 4 5 1 0 0 0 + 5 6 1 0 0 0 + 6 7 1 0 0 0 + 7 8 1 0 0 0 + 8 9 1 0 0 0 +M END diff --git a/ketcher-autotests/tests/test-data/Molfiles-V2000/structure-list-notlist-expected.mol b/ketcher-autotests/tests/test-data/Molfiles-V2000/structure-list-notlist-expected.mol new file mode 100644 index 0000000000..6f4ba23ed6 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Molfiles-V2000/structure-list-notlist-expected.mol @@ -0,0 +1,24 @@ + + Ketcher 9262318192D 1 1.00000 0.00000 0 + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 11.6109 -8.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.4769 -8.5500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 13.3430 -8.0500 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 14.2090 -8.5500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.0750 -8.0500 0.0000 AH 0 0 0 0 0 0 0 0 0 0 0 0 + 15.9410 -8.5500 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 16.8071 -8.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 17.6731 -8.5500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 18.5391 -8.0500 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 + 2 3 1 0 0 0 + 3 4 1 0 0 0 + 4 5 1 0 0 0 + 5 6 1 0 0 0 + 6 7 1 0 0 0 + 7 8 1 0 0 0 + 8 9 1 0 0 0 +M ALS 3 3 F W Pb Se +M ALS 6 3 T Pm Pu Ti +M END diff --git a/ketcher-autotests/tests/test-data/Molfiles-V2000/structure-list-notlist.mol b/ketcher-autotests/tests/test-data/Molfiles-V2000/structure-list-notlist.mol new file mode 100644 index 0000000000..acbb3a11d1 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Molfiles-V2000/structure-list-notlist.mol @@ -0,0 +1,24 @@ + + Ketcher 9262315122D 1 1.00000 0.00000 0 + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 8.9750 -6.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.8410 -7.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.7071 -6.5000 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 11.5731 -7.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 12.4391 -6.5000 0.0000 AH 0 0 0 0 0 0 0 0 0 0 0 0 + 13.3051 -7.0000 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 14.1712 -6.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.0372 -7.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 15.9032 -6.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 + 2 3 1 0 0 0 + 3 4 1 0 0 0 + 4 5 1 0 0 0 + 5 6 1 0 0 0 + 6 7 1 0 0 0 + 7 8 1 0 0 0 + 8 9 1 0 0 0 +M ALS 3 3 F W Pb Se +M ALS 6 3 T Pm Pu Ti +M END diff --git a/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-list-notlist-expected.rxn b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-list-notlist-expected.rxn new file mode 100644 index 0000000000..1768a81608 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-list-notlist-expected.rxn @@ -0,0 +1,55 @@ +$RXN + + -INDIGO- 0926231819 + + 1 1 +$MOL + + -INDIGO-09262318192D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 5.0234 -8.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.8894 -8.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.7555 -8.0000 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 7.6215 -8.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.4875 -8.0000 0.0000 AH 0 0 0 0 0 0 0 0 0 0 0 0 + 9.3535 -8.5000 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 10.2196 -8.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.0856 -8.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.9516 -8.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M ALS 3 3 F W Pb Se +M ALS 6 3 T Pm Pu Ti +M END +$MOL + + -INDIGO-09262318192D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 18.1984 -8.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 19.0644 -8.6000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 19.9305 -8.1000 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 20.7965 -8.6000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 21.6625 -8.1000 0.0000 AH 0 0 0 0 0 0 0 0 0 0 0 0 + 22.5285 -8.6000 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 23.3946 -8.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 24.2606 -8.6000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 25.1266 -8.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M ALS 3 3 F W Pb Se +M ALS 6 3 T Pm Pu Ti +M END diff --git a/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-list-notlist.rxn b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-list-notlist.rxn new file mode 100644 index 0000000000..798bbb3856 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-list-notlist.rxn @@ -0,0 +1,55 @@ +$RXN + + -INDIGO- 0926232053 + + 1 1 +$MOL + + -INDIGO-09262320532D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 3.2609 -7.8750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.1269 -8.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 4.9930 -7.8750 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 5.8590 -8.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 6.7250 -7.8750 0.0000 AH 0 0 0 0 0 0 0 0 0 0 0 0 + 7.5910 -8.3750 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 8.4571 -7.8750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.3231 -8.3750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.1891 -7.8750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M ALS 3 3 F W Pb Se +M ALS 6 3 T Pm Pu Ti +M END +$MOL + + -INDIGO-09262320532D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 16.4359 -7.9750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 17.3019 -8.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 18.1680 -7.9750 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 19.0340 -8.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 19.9000 -7.9750 0.0000 AH 0 0 0 0 0 0 0 0 0 0 0 0 + 20.7660 -8.4750 0.0000 L 0 0 0 0 0 0 0 0 0 0 0 0 + 21.6321 -7.9750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 22.4981 -8.4750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 23.3641 -7.9750 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M ALS 3 3 F W Pb Se +M ALS 6 3 T Pm Pu Ti +M END diff --git a/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-colored-atoms-expected.rxn b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-colored-atoms-expected.rxn new file mode 100644 index 0000000000..74326b7582 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-colored-atoms-expected.rxn @@ -0,0 +1,51 @@ +$RXN + + -INDIGO- 0926231819 + + 1 1 +$MOL + + -INDIGO-09262318192D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 4.1929 -7.9125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.0589 -8.4125 0.0000 Xe 0 0 0 0 0 0 0 0 0 0 0 0 + 5.9250 -7.9125 0.0000 Ti 0 0 0 0 0 0 0 0 0 0 0 0 + 6.7910 -8.4125 0.0000 K 0 0 0 0 0 0 0 0 0 0 0 0 + 7.6570 -7.9125 0.0000 Np 0 0 0 0 0 0 0 0 0 0 0 0 + 8.5230 -8.4125 0.0000 Ho 0 0 0 0 0 0 0 0 0 0 0 0 + 9.3891 -7.9125 0.0000 Th 0 0 0 0 0 0 0 0 0 0 0 0 + 10.2551 -8.4125 0.0000 Mg 0 0 0 0 0 0 0 0 0 0 0 0 + 11.1211 -7.9125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M END +$MOL + + -INDIGO-09262318192D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 19.0289 -8.1875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 19.8949 -8.6875 0.0000 Xe 0 0 0 0 0 0 0 0 0 0 0 0 + 20.7609 -8.1875 0.0000 Ti 0 0 0 0 0 0 0 0 0 0 0 0 + 21.6270 -8.6875 0.0000 K 0 0 0 0 0 0 0 0 0 0 0 0 + 22.4930 -8.1875 0.0000 Np 0 0 0 0 0 0 0 0 0 0 0 0 + 23.3590 -8.6875 0.0000 Ho 0 0 0 0 0 0 0 0 0 0 0 0 + 24.2251 -8.1875 0.0000 Th 0 0 0 0 0 0 0 0 0 0 0 0 + 25.0911 -8.6875 0.0000 Mg 0 0 0 0 0 0 0 0 0 0 0 0 + 25.9571 -8.1875 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M END diff --git a/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-colored-atoms.rxn b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-colored-atoms.rxn new file mode 100644 index 0000000000..d995528fbe --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-colored-atoms.rxn @@ -0,0 +1,51 @@ +$RXN + + -INDIGO- 0926231718 + + 1 1 +$MOL + + -INDIGO-09262317182D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 4.6000 -8.4250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.4660 -8.9250 0.0000 Xe 0 0 0 0 0 0 0 0 0 0 0 0 + 6.3321 -8.4250 0.0000 Ti 0 0 0 0 0 0 0 0 0 0 0 0 + 7.1981 -8.9250 0.0000 K 0 0 0 0 0 0 0 0 0 0 0 0 + 8.0641 -8.4250 0.0000 Np 0 0 0 0 0 0 0 0 0 0 0 0 + 8.9301 -8.9250 0.0000 Ho 0 0 0 0 0 0 0 0 0 0 0 0 + 9.7962 -8.4250 0.0000 Th 0 0 0 0 0 0 0 0 0 0 0 0 + 10.6622 -8.9250 0.0000 Mg 0 0 0 0 0 0 0 0 0 0 0 0 + 11.5282 -8.4250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M END +$MOL + + -INDIGO-09262317182D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 19.4359 -8.7000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 20.3019 -9.2000 0.0000 Xe 0 0 0 0 0 0 0 0 0 0 0 0 + 21.1679 -8.7000 0.0000 Ti 0 0 0 0 0 0 0 0 0 0 0 0 + 22.0340 -9.2000 0.0000 K 0 0 0 0 0 0 0 0 0 0 0 0 + 22.9000 -8.7000 0.0000 Np 0 0 0 0 0 0 0 0 0 0 0 0 + 23.7660 -9.2000 0.0000 Ho 0 0 0 0 0 0 0 0 0 0 0 0 + 24.6321 -8.7000 0.0000 Th 0 0 0 0 0 0 0 0 0 0 0 0 + 25.4981 -9.2000 0.0000 Mg 0 0 0 0 0 0 0 0 0 0 0 0 + 26.3641 -8.7000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M END diff --git a/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-group-generics-expected.rxn b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-group-generics-expected.rxn new file mode 100644 index 0000000000..5e61c47b0b --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-group-generics-expected.rxn @@ -0,0 +1,51 @@ +$RXN + + -INDIGO- 0926231819 + + 1 1 +$MOL + + -INDIGO-09262318192D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 4.9304 -8.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.7964 -8.5000 0.0000 G 0 0 0 0 0 0 0 0 0 0 0 0 + 6.6625 -8.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 7.5285 -8.5000 0.0000 GH 0 0 0 0 0 0 0 0 0 0 0 0 + 8.3945 -8.0000 0.0000 G* 0 0 0 0 0 0 0 0 0 0 0 0 + 9.2605 -8.5000 0.0000 GH* 0 0 0 0 0 0 0 0 0 0 0 0 + 10.1266 -8.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 10.9926 -8.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 11.8586 -8.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M END +$MOL + + -INDIGO-09262318192D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 18.2914 -8.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 19.1574 -8.6000 0.0000 G 0 0 0 0 0 0 0 0 0 0 0 0 + 20.0235 -8.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 20.8895 -8.6000 0.0000 GH 0 0 0 0 0 0 0 0 0 0 0 0 + 21.7555 -8.1000 0.0000 G* 0 0 0 0 0 0 0 0 0 0 0 0 + 22.6215 -8.6000 0.0000 GH* 0 0 0 0 0 0 0 0 0 0 0 0 + 23.4875 -8.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 24.3536 -8.6000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 25.2196 -8.1000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M END diff --git a/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-group-generics.rxn b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-group-generics.rxn new file mode 100644 index 0000000000..9f27331f55 --- /dev/null +++ b/ketcher-autotests/tests/test-data/Rxn-V2000/reaction-with-group-generics.rxn @@ -0,0 +1,51 @@ +$RXN + + -INDIGO- 0926232102 + + 1 1 +$MOL + + -INDIGO-09262321022D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 2.6750 -8.4000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 3.5410 -8.9000 0.0000 G 0 0 0 0 0 0 0 0 0 0 0 0 + 4.4071 -8.4000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 5.2731 -8.9000 0.0000 GH 0 0 0 0 0 0 0 0 0 0 0 0 + 6.1391 -8.4000 0.0000 G* 0 0 0 0 0 0 0 0 0 0 0 0 + 7.0051 -8.9000 0.0000 GH* 0 0 0 0 0 0 0 0 0 0 0 0 + 7.8712 -8.4000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 8.7372 -8.9000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 9.6032 -8.4000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M END +$MOL + + -INDIGO-09262321022D + + 9 8 0 0 0 0 0 0 0 0999 V2000 + 16.0359 -8.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 16.9019 -9.0000 0.0000 G 0 0 0 0 0 0 0 0 0 0 0 0 + 17.7680 -8.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 18.6340 -9.0000 0.0000 GH 0 0 0 0 0 0 0 0 0 0 0 0 + 19.5000 -8.5000 0.0000 G* 0 0 0 0 0 0 0 0 0 0 0 0 + 20.3660 -9.0000 0.0000 GH* 0 0 0 0 0 0 0 0 0 0 0 0 + 21.2320 -8.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 22.0981 -9.0000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 22.9641 -8.5000 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0 + 1 2 1 0 0 0 0 + 2 3 1 0 0 0 0 + 3 4 1 0 0 0 0 + 4 5 1 0 0 0 0 + 5 6 1 0 0 0 0 + 6 7 1 0 0 0 0 + 7 8 1 0 0 0 0 + 8 9 1 0 0 0 0 +M END diff --git a/ketcher-autotests/tests/utils/canvas/atoms/excludedAtoms.ts b/ketcher-autotests/tests/utils/canvas/atoms/excludedAtoms.ts new file mode 100644 index 0000000000..ffdb98812b --- /dev/null +++ b/ketcher-autotests/tests/utils/canvas/atoms/excludedAtoms.ts @@ -0,0 +1,12 @@ +import { AtomButton } from '@utils'; + +export const atomsNames: AtomButton[] = Object.values(AtomButton).filter( + (name) => + ![ + AtomButton.Gold, + AtomButton.Platinum, + AtomButton.Periodic, + AtomButton.Any, + AtomButton.Extended, + ].includes(name), +); diff --git a/ketcher-autotests/tests/utils/canvas/atoms/index.ts b/ketcher-autotests/tests/utils/canvas/atoms/index.ts index ddc0d1b1e9..2a753118da 100644 --- a/ketcher-autotests/tests/utils/canvas/atoms/index.ts +++ b/ketcher-autotests/tests/utils/canvas/atoms/index.ts @@ -6,6 +6,7 @@ import { getLeftAtomByAttributes } from './getLeftAtomByAttributes/getLeftAtomBy // eslint-disable-next-line max-len import { getFirstAtomCoordinatesByAttributes } from './getFirstAtomCoordinatesByAttributes/getFirstAtomCoordinatesByAttributes'; import { getAtomsCoordinatesByAttributes } from './getAtomsCoordinatesByAttributes/getAtomsCoordinatesByAttributes'; +export * from '@utils/canvas/atoms'; export { getAtomByIndex, diff --git a/ketcher-autotests/tests/utils/canvas/helpers.ts b/ketcher-autotests/tests/utils/canvas/helpers.ts index fd3c4ee1f5..75d58834ce 100644 --- a/ketcher-autotests/tests/utils/canvas/helpers.ts +++ b/ketcher-autotests/tests/utils/canvas/helpers.ts @@ -97,6 +97,13 @@ export async function takeLeftToolbarScreenshot(page: Page) { await expect(editor).toHaveScreenshot(); } +export async function takeRightToolbarScreenshot(page: Page) { + const maxTimeout = 3000; + const editor = page.getByTestId('right-toolbar'); + await waitForRender(page, emptyFunction, maxTimeout); + await expect(editor).toHaveScreenshot(); +} + export async function takeTopToolbarScreenshot(page: Page) { const maxTimeout = 3000; const editor = page.getByTestId('top-toolbar'); diff --git a/ketcher-autotests/tests/utils/selectors/buttons.ts b/ketcher-autotests/tests/utils/selectors/buttons.ts index d217a1d57b..0467d9b007 100644 --- a/ketcher-autotests/tests/utils/selectors/buttons.ts +++ b/ketcher-autotests/tests/utils/selectors/buttons.ts @@ -41,12 +41,22 @@ export enum AtomButton { Chlorine = 'Chlorine', Bromine = 'Bromine', Iodine = 'Iodine', + Gold = 'Gold', Platinum = 'Platinum', Periodic = 'Periodic', Any = 'Any', Extended = 'Extended', } +export type Atoms = Exclude< + AtomButton, + | AtomButton.Gold + | AtomButton.Platinum + | AtomButton.Periodic + | AtomButton.Any + | AtomButton.Extended +>; + export enum TopPanelButton { Clear = 'Clear', Open = 'Open...', diff --git a/ketcher-autotests/tests/utils/selectors/templateModal.ts b/ketcher-autotests/tests/utils/selectors/templateModal.ts index 7f2b7c1fe5..7a2a184fbf 100644 --- a/ketcher-autotests/tests/utils/selectors/templateModal.ts +++ b/ketcher-autotests/tests/utils/selectors/templateModal.ts @@ -10,6 +10,7 @@ import { STRUCTURE_LIBRARY_BUTTON_NAME, pressButton, } from '@utils'; +import { ElementLabel } from 'ketcher-core'; export enum SaltsAndSolvents { AceticAcid = 'acetic acid', @@ -241,3 +242,18 @@ export async function fillFieldByPlaceholder( await page.getByPlaceholder(fieldLabel).click(); await page.getByPlaceholder(fieldLabel).fill(testValue); } + +export async function selectAtomsFromPeriodicTable( + page: Page, + selectlisting: 'List' | 'Not List', + elements: ElementLabel[], +) { + await page.getByTestId('period-table').click(); + await page.getByText(selectlisting, { exact: true }).click(); + + for (const element of elements) { + await page.getByTestId(`${element}-button`).click(); + } + + await page.getByTestId('OK').click(); +} diff --git a/packages/ketcher-react/src/script/ui/component/view/Atom/Atom.jsx b/packages/ketcher-react/src/script/ui/component/view/Atom/Atom.jsx index 86d2640aa0..34495d3101 100644 --- a/packages/ketcher-react/src/script/ui/component/view/Atom/Atom.jsx +++ b/packages/ketcher-react/src/script/ui/component/view/Atom/Atom.jsx @@ -25,6 +25,7 @@ function Atom({ el, shortcut, selected, ...props }) { selected, })} value={el.number} + data-testid={`${el.label}-button`} {...props} > {el.label}