mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-20 17:40:59 +03:00
test(05-table): smoke add/edit/delete для табличной части накладной
Покрывает работу с табличной частью Товары документа Приходная накладная: - fillTableRow с add:true добавляет строки последовательно - fillTableRow с row:N редактирует существующую строку (Tab-навигация) - deleteTableRow удаляет строку по индексу Закрытие формы без сохранения (save:false) — соответствует новой семантике после фикса form-compile (SavedData).
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
export const name = 'Табличная часть: add, edit, delete на Товары накладной';
|
||||
export const tags = ['table', 'smoke'];
|
||||
export const timeout = 90000;
|
||||
|
||||
export default async function({ navigateSection, openCommand, clickElement, fillFields, fillTableRow, deleteTableRow, readTable, closeForm, getFormState, assert, step, log }) {
|
||||
|
||||
await step('add: добавить две строки в Товары через fillTableRow add:true', async () => {
|
||||
await navigateSection('Склад');
|
||||
await openCommand('Приходная накладная');
|
||||
await clickElement('Создать');
|
||||
await fillFields({ 'Контрагент': 'ООО Север' });
|
||||
|
||||
await fillTableRow(
|
||||
{ 'Номенклатура': 'Товар 01', 'Количество': '5', 'Цена': '100' },
|
||||
{ table: 'Товары', add: true }
|
||||
);
|
||||
await fillTableRow(
|
||||
{ 'Номенклатура': 'Товар 02', 'Количество': '3', 'Цена': '200' },
|
||||
{ table: 'Товары', add: true }
|
||||
);
|
||||
|
||||
const t = await readTable({ table: 'Товары' });
|
||||
log(`rows after add: ${t.rows?.length}`);
|
||||
assert.equal(t.rows?.length, 2, 'Должно быть 2 строки');
|
||||
assert.equal(t.rows[0]['Номенклатура'], 'Товар 01', 'Строка 0 = Товар 01');
|
||||
assert.equal(t.rows[1]['Номенклатура'], 'Товар 02', 'Строка 1 = Товар 02');
|
||||
});
|
||||
|
||||
await step('edit: изменить количество в строке 0 через fillTableRow row:0', async () => {
|
||||
await fillTableRow(
|
||||
{ 'Количество': '10' },
|
||||
{ table: 'Товары', row: 0 }
|
||||
);
|
||||
const t = await readTable({ table: 'Товары' });
|
||||
log(`row 0 after edit: ${JSON.stringify(t.rows[0])}`);
|
||||
assert.equal(t.rows[0]['Количество'], '10,000', 'Количество строки 0 = 10');
|
||||
});
|
||||
|
||||
await step('delete: удалить первую строку', async () => {
|
||||
await deleteTableRow(0, { table: 'Товары' });
|
||||
const t = await readTable({ table: 'Товары' });
|
||||
log(`rows after delete: ${t.rows?.length}, [0]=${t.rows[0]?.['Номенклатура']}`);
|
||||
assert.equal(t.rows?.length, 1, 'Должна остаться 1 строка');
|
||||
assert.equal(t.rows[0]['Номенклатура'], 'Товар 02', 'Осталась строка Товар 02');
|
||||
await closeForm({ save: false });
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user