mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-16 10:43:18 +03:00
test(06-document): smoke workflow проведения накладной
Создание, заполнение шапки и табличной части, Провести и закрыть, проверка появления документа в списке с Проведён=Да. Проверка закрытия формы документа: в синтетике web-test форма списка и форма документа делят один слот (formCount=1 в обоих состояниях), поэтому используем признак отсутствия поля Контрагент в текущем state.fields после Провести и закрыть — если поле есть, мы остались на форме документа.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
export const name = 'Документ: создание, проведение, проверка в списке';
|
||||
export const tags = ['document', 'smoke'];
|
||||
export const timeout = 90000;
|
||||
|
||||
export default async function({ navigateSection, openCommand, clickElement, fillFields, fillTableRow, readTable, closeForm, getFormState, assert, step, log }) {
|
||||
|
||||
const docId = `Тест-${Date.now()}`;
|
||||
|
||||
await step('workflow: создать накладную, заполнить, провести и закрыть', async () => {
|
||||
await navigateSection('Склад');
|
||||
await openCommand('Приходная накладная');
|
||||
await clickElement('Создать');
|
||||
|
||||
await fillFields({
|
||||
'Контрагент': 'ООО Север',
|
||||
'Комментарий': docId,
|
||||
});
|
||||
await fillTableRow(
|
||||
{ 'Номенклатура': 'Товар 01', 'Количество': '5', 'Цена': '100' },
|
||||
{ table: 'Товары', add: true }
|
||||
);
|
||||
await fillTableRow(
|
||||
{ 'Номенклатура': 'Товар 02', 'Количество': '3', 'Цена': '200' },
|
||||
{ table: 'Товары', add: true }
|
||||
);
|
||||
|
||||
await clickElement('Провести и закрыть');
|
||||
const after = await getFormState();
|
||||
const stillOnDoc = !!after.fields?.find(f => f.name === 'Контрагент');
|
||||
log(`stillOnDoc=${stillOnDoc} form=${after.form}`);
|
||||
assert.ok(!stillOnDoc, 'После Провести и закрыть форма документа должна закрыться (Контрагент-поля нет в текущей форме)');
|
||||
});
|
||||
|
||||
await step('verify-list: документ виден в списке с Проведён=Да', 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();
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user