mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-11 00:14:56 +03:00
71e3691cf1
02-crud: confirm-save-no (rollback при save:false), confirm-pending (closeForm() без решения возвращает confirmation), more-menu (clickElement 'Ещё' возвращает submenu). 03-fillfields: clear (Shift+F4 через пустое значение), reference-non-quickchoice (fillFields на quickChoice=false поле — method=dropdown через DLB; чистый form-path требует hasPick && !hasSelect, такого поля в синтетике нет). 04-selectvalue: clear (selectValue '' → Shift+F4). show-all-form отложен — требует quickChoice=true каталога с количеством > порога dropdown (в синтетике нет). 05-table: checkbox (fillTableRow с Boolean), clear (Shift+F4 на ref-ячейке + восстановление для последующего delete). Live на webtest: все шаги проходят. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
60 lines
3.2 KiB
JavaScript
60 lines
3.2 KiB
JavaScript
export const name = 'selectValue: dropdown vs форма выбора';
|
||
export const tags = ['selectvalue', 'smoke'];
|
||
export const timeout = 90000;
|
||
|
||
const findField = (state, name) => state.fields?.find(f => f.name === name || f.label === name);
|
||
|
||
export default async function({ navigateSection, openCommand, clickElement, selectValue, closeForm, assert, step, log }) {
|
||
|
||
await step('dropdown: Организация → CatalogRef.Организации (quickChoice=true)', async () => {
|
||
await navigateSection('Склад');
|
||
await openCommand('Приходная накладная');
|
||
await clickElement('Создать');
|
||
|
||
const result = await selectValue('Организация', 'Альфа');
|
||
log(`method=${result.selected?.method}, search=${result.selected?.search}`);
|
||
assert.equal(result.selected?.method, 'dropdown', 'Должен быть метод dropdown (быстрый выбор)');
|
||
|
||
const field = findField(result, 'Организация');
|
||
log(`Организация value='${field?.value}'`);
|
||
assert.includes(field?.value || '', 'Альфа', 'Организация должна показать выбранное значение');
|
||
|
||
await closeForm({ save: false });
|
||
});
|
||
|
||
await step('direct-form: Контрагент → CatalogRef.Контрагенты (quickChoice=false)', async () => {
|
||
await navigateSection('Склад');
|
||
await openCommand('Приходная накладная');
|
||
await clickElement('Создать');
|
||
|
||
const result = await selectValue('Контрагент', 'Север');
|
||
log(`method=${result.selected?.method}, search=${result.selected?.search}`);
|
||
assert.equal(result.selected?.method, 'form', 'Должен быть метод form (через форму выбора)');
|
||
|
||
const field = findField(result, 'Контрагент');
|
||
log(`Контрагент value='${field?.value}'`);
|
||
assert.includes(field?.value || '', 'Север', 'Контрагент должен показать выбранное значение');
|
||
|
||
await closeForm({ save: false });
|
||
});
|
||
|
||
await step('clear: selectValue с пустым search → Shift+F4', async () => {
|
||
await navigateSection('Склад');
|
||
await openCommand('Приходная накладная');
|
||
await clickElement('Создать');
|
||
|
||
await selectValue('Организация', 'Альфа');
|
||
const before = await selectValue('Организация', ''); // empty → clear
|
||
const field = findField(before, 'Организация');
|
||
log(`Организация after clear value='${field?.value}'`);
|
||
assert.equal(field?.value, '', 'Организация должна быть очищена');
|
||
|
||
await closeForm({ save: false });
|
||
});
|
||
|
||
}
|
||
// show-all-form ветка (P1 в матрице) требует quickChoice=true каталога с
|
||
// количеством > порога dropdown, чтобы появилась ссылка "Показать все".
|
||
// В текущей синтетике такого каталога нет (Организации ~2 элемента, остальные
|
||
// quickChoice=false). Откладывается до расширения синтетики.
|