From 11e961c816ab3caa29ababdb1fb77eff73e2e810 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 2 May 2026 20:07:46 +0300 Subject: [PATCH] =?UTF-8?q?test(07-tabs):=20smoke=20=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=20=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D1=8B=20=D0=9E=D1=81=D0=BD=D0=BE=D0=B2=D0=BD=D0=BE=D0=B5/?= =?UTF-8?q?=D0=94=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8=D1=82=D0=B5=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Покрывает clickElement по имени страницы как механизм переключения вкладок формы. Используем форму элемента Номенклатура: page1 показывает шапку (Артикул, ВидНоменклатуры, ...), page2 — Дополнительно (ЕдиницаИзмерения, Комментарий). Verify: набор state.fields различен после переключения и совпадает после возврата. --- tests/web-test/07-tabs.test.mjs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/web-test/07-tabs.test.mjs diff --git a/tests/web-test/07-tabs.test.mjs b/tests/web-test/07-tabs.test.mjs new file mode 100644 index 00000000..2a80d279 --- /dev/null +++ b/tests/web-test/07-tabs.test.mjs @@ -0,0 +1,32 @@ +export const name = 'Страницы формы: переключение между Основное и Дополнительно'; +export const tags = ['tabs', 'smoke']; +export const timeout = 60000; + +export default async function({ navigateSection, openCommand, clickElement, closeForm, getFormState, assert, step, log }) { + + await step('switch: переключение страниц на форме номенклатуры', async () => { + await navigateSection('Склад'); + await openCommand('Номенклатура'); + await clickElement('Товары', { dblclick: true }); + await clickElement('Товар 01', { dblclick: true }); + + const s1 = await getFormState(); + const names1 = s1.fields?.map(f => f.name) || []; + log(`page1 fields: ${names1.join(', ')}`); + assert.includes(names1, 'Артикул', 'На странице Основное должен быть Артикул'); + + await clickElement('Дополнительно'); + const s2 = await getFormState(); + const names2 = s2.fields?.map(f => f.name) || []; + log(`page2 fields: ${names2.join(', ')}`); + assert.notEqual(names2.join(','), names1.join(','), 'Набор полей на странице Дополнительно должен отличаться'); + + await clickElement('Основное'); + const s3 = await getFormState(); + const names3 = s3.fields?.map(f => f.name) || []; + log(`back to page1 fields: ${names3.join(', ')}`); + assert.includes(names3, 'Артикул', 'После возврата на Основное снова виден Артикул'); + + await closeForm({ save: false }); + }); +}