From 05ca81046181028a31f525ce5e0d46e4c76c65c5 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sat, 2 May 2026 20:04:38 +0300 Subject: [PATCH] =?UTF-8?q?test(06-document):=20=D1=81=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=81=20=D0=9A=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=80=D0=B8=D0=B9=3DdocId,=20=D0=B7=D0=B0=D1=89?= =?UTF-8?q?=D0=B8=D1=82=D0=B0=20=D0=BE=D1=82=20=D0=B3=D1=80=D1=8F=D0=B7?= =?UTF-8?q?=D0=BD=D0=BE=D0=B9=20=D0=B1=D0=B0=D0=B7=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Раньше verify-list брал первый попавшийся проведённый документ Север — если в базе уже лежал проведённый Север из прошлого прогона, тест проходил даже если текущий не сохранился. Теперь среди кандидатов открываем каждый и сверяем Комментарий с уникальным docId текущего прогона; ассерт срабатывает только при совпадении. --- tests/web-test/06-document.test.mjs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/tests/web-test/06-document.test.mjs b/tests/web-test/06-document.test.mjs index 54c867d2..6dd6b9c1 100644 --- a/tests/web-test/06-document.test.mjs +++ b/tests/web-test/06-document.test.mjs @@ -31,13 +31,24 @@ export default async function({ navigateSection, openCommand, clickElement, fill assert.notEqual(after.form, before.form, 'После Провести и закрыть текущая форма должна смениться (документ закрылся)'); }); - await step('verify-list: документ виден в списке с Проведён=Да', async () => { + await step('verify-list: документ текущего прогона проведён (по Комментарий=docId)', async () => { await navigateSection('Склад'); await openCommand('Приходная накладная'); const t = await readTable({ maxRows: 50 }); - const ours = t.rows.find(r => r['Контрагент'] === 'ООО Север' && r['Проведён'] === 'Да'); - log(`found posted: ${JSON.stringify(ours)}`); - assert.ok(ours, 'Должен быть проведённый документ ООО Север'); - await closeForm(); + const candidates = t.rows.filter(r => r['Контрагент'] === 'ООО Север' && r['Проведён'] === 'Да'); + log(`candidates posted Север: ${candidates.length}`); + assert.ok(candidates.length > 0, 'В списке должен быть хотя бы один проведённый документ Север'); + + let foundOurs = null; + for (const row of candidates) { + await clickElement(row['Номер'], { dblclick: true }); + const s = await getFormState(); + const cmt = s.fields?.find(f => f.name === 'Комментарий')?.value; + const num = row['Номер']; + log(`№${num} Комментарий='${cmt}'`); + await closeForm(); + if (cmt === docId) { foundOurs = num; break; } + } + assert.ok(foundOurs, `Среди проведённых должен быть документ с Комментарий='${docId}'`); }); }