From 3c596f455081742190d811b9d84740e179196dff Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 2 May 2026 20:15:20 +0300 Subject: [PATCH] =?UTF-8?q?test(12-formstate):=20smoke=20=D0=B1=D0=B0?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=D1=8B=D1=85=20=D0=BF=D0=BE=D0=BB=D0=B5=D0=B9?= =?UTF-8?q?=20getFormState?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Покрывает форму списка (form, formCount, openForms, tables, buttons) и форму элемента (fields с label и value, проверка по конкретному полю Наименование). --- tests/web-test/12-formstate.test.mjs | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 tests/web-test/12-formstate.test.mjs diff --git a/tests/web-test/12-formstate.test.mjs b/tests/web-test/12-formstate.test.mjs new file mode 100644 index 00000000..9063031c --- /dev/null +++ b/tests/web-test/12-formstate.test.mjs @@ -0,0 +1,34 @@ +export const name = 'getFormState: базовая структура — fields, buttons, tables, openForms'; +export const tags = ['formstate', 'smoke']; +export const timeout = 60000; + +export default async function({ navigateSection, openCommand, clickElement, closeForm, getFormState, assert, step, log }) { + + await step('basic: getFormState на форме списка возвращает таблицу и команды', async () => { + await navigateSection('Склад'); + const s = await openCommand('Контрагенты'); + log(`form=${s.form} formCount=${s.formCount} tables=${s.tables?.length} buttons=${s.buttons?.length}`); + assert.ok(s.form != null, 'state.form задан'); + assert.equal(s.formCount, 1, 'Открыта одна форма'); + assert.ok(Array.isArray(s.openForms) && s.openForms.length === 1, 'openForms — массив с одной записью'); + assert.ok(s.tables?.length >= 1, 'На форме списка есть таблица'); + assert.ok(s.tables[0].columns?.length >= 2, 'У таблицы есть колонки'); + assert.ok(s.buttons?.length >= 1, 'На форме есть кнопки'); + await closeForm(); + }); + + await step('basic: getFormState на форме элемента возвращает fields с label и value', async () => { + await navigateSection('Склад'); + await openCommand('Контрагенты'); + await clickElement('ООО Север', { dblclick: true }); + const s = await getFormState(); + log(`fields count=${s.fields?.length}`); + assert.ok(s.fields?.length >= 1, 'На форме элемента есть поля'); + const named = s.fields.find(f => f.name === 'Наименование'); + log(`Наименование: label='${named?.label}' value='${named?.value}'`); + assert.ok(named, 'Должно быть поле Наименование'); + assert.equal(named.value, 'ООО Север', 'value поля Наименование'); + assert.ok(named.label, 'У поля есть label'); + await closeForm(); + }); +}