mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-19 17:19:42 +03:00
test(web-test): M4.C+D — drill-down + submenu-read
11-report/drill-down: dblclick по ячейке Номенклатуры сформированного
DCS-отчёта открывает форму элемента (DCS auto-drill). После Сформировать
ищется первая строка с заполненной номенклатурой, проверяется что после
clickElement({row,column},{dblclick:true}) form изменился и есть кнопка
«Записать».
02-crud/more-menu усилен под P2 submenu-read: добавлены явные проверки
clicked.kind='submenu', наличия типовых пунктов «Создать», «Изменить»,
«Расширенный поиск» (length>=5).
Покрыто 2 P2-кейса coverage matrix (11-report/drill-down,
02-crud/submenu-read). Полный регресс 14/14 зелёный (7m 1.6s).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -95,6 +95,29 @@ export default async function({ navigateSection, openCommand, getFormState, getC
|
||||
assert.equal(report.totals['Сумма'], baseTotalSum, 'Восстановился исходный итог по Сумме');
|
||||
});
|
||||
|
||||
await step('drill-down: dblclick по ячейке Номенклатура открывает форму элемента', async () => {
|
||||
// Сформируем отчёт ещё раз для чистого состояния
|
||||
await clickElement('Сформировать');
|
||||
await wait(3);
|
||||
const r = await readSpreadsheet();
|
||||
const namedIdx = r.data.findIndex(row => row['Номенклатура']);
|
||||
log(`first row with Номенклатура: idx=${namedIdx} value=${r.data[namedIdx]?.['Номенклатура']}`);
|
||||
assert.ok(namedIdx >= 0, 'есть строка с заполненной Номенклатурой');
|
||||
|
||||
const beforeForm = await getFormState();
|
||||
const clicked = await clickElement({ row: namedIdx, column: 'Номенклатура' }, { dblclick: true });
|
||||
log(`clicked: ${JSON.stringify(clicked.clicked)}`);
|
||||
assert.equal(clicked.clicked?.kind, 'spreadsheetCell', 'clicked.kind=spreadsheetCell');
|
||||
await wait(1);
|
||||
|
||||
const after = await getFormState();
|
||||
log(`after drill: form=${after.form} buttons=${after.buttons?.map(b => b.name).join(',')}`);
|
||||
assert.notEqual(after.form, beforeForm.form, 'открыта новая форма (form изменился)');
|
||||
const hasItemButton = after.buttons?.some(b => b.name === 'Записать и закрыть' || b.name === 'Записать');
|
||||
assert.ok(hasItemButton, 'открыта форма элемента (есть «Записать»)');
|
||||
await closeForm();
|
||||
});
|
||||
|
||||
await step('cleanup: закрываем форму отчёта', async () => {
|
||||
const r = await closeForm();
|
||||
log(`closed=${r.closed} formCount=${r.formCount}`);
|
||||
|
||||
Reference in New Issue
Block a user