mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-28 23:51:03 +03:00
feat(web-test): M5-pre #4a — Менеджер (choiceHistoryOnInput=Auto) + selectValue/auto-history
Реквизит шапки ПриходнаяНакладная.Менеджер типа CatalogRef.Контрагенты
с дефолтным choiceHistoryOnInput=Auto. Существующий Контрагент в той же
шапке имеет DontUse, что даёт парный контраст для тестирования влияния
флага на selectValue.
Новый шаг 04-selectvalue/auto-history:
- selectValue('Менеджер', 'ООО Юг') → method='dropdown' (typeahead активен,
префиксный поиск по Description находит «ООО Юг» в catalogue).
- Парный 04-selectvalue/direct-form (existing): selectValue('Контрагент',
'Север') → method='form' (typeahead подавлен DontUse → форма выбора).
Тест покрывает существующее ветвление selectValue по флагу
choiceHistoryOnInput без engine-доработок. Истории на сервере писать
заранее не нужно: typeahead использует prefix-match по Description,
а не статистику истории.
Полный регресс **18/18 зелёный** (8m 47.3s).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
62e864e474
commit
51e37f9874
@@ -151,6 +151,11 @@ export const steps = [
|
|||||||
// (для 03-fillfields/direct-edit-form). Ручной ввод запрещён,
|
// (для 03-fillfields/direct-edit-form). Ручной ввод запрещён,
|
||||||
// выбор только через pick-кнопку → форма выбора.
|
// выбор только через pick-кнопку → форма выбора.
|
||||||
{ name: 'Поставщик', type: 'CatalogRef.Контрагенты' },
|
{ name: 'Поставщик', type: 'CatalogRef.Контрагенты' },
|
||||||
|
// Менеджер — ссылка с дефолтным choiceHistoryOnInput=Auto (история включена,
|
||||||
|
// для 04-selectvalue/show-all-form). После первого выбора платформа
|
||||||
|
// запоминает значение и при повторном вводе показывает dropdown
|
||||||
|
// с историей + кнопку «Показать все» → форма выбора.
|
||||||
|
{ name: 'Менеджер', type: 'CatalogRef.Контрагенты' },
|
||||||
{ name: 'Комментарий', type: 'String', length: 200 },
|
{ name: 'Комментарий', type: 'String', length: 200 },
|
||||||
],
|
],
|
||||||
tabularSections: [{
|
tabularSections: [{
|
||||||
@@ -607,6 +612,7 @@ export const steps = [
|
|||||||
{ input: 'Источник', path: 'Объект.Источник', title: 'Источник' },
|
{ input: 'Источник', path: 'Объект.Источник', title: 'Источник' },
|
||||||
// textEdit:false — ручной ввод запрещён, только pick → форма выбора
|
// textEdit:false — ручной ввод запрещён, только pick → форма выбора
|
||||||
{ input: 'Поставщик', path: 'Объект.Поставщик', title: 'Поставщик', textEdit: false },
|
{ input: 'Поставщик', path: 'Объект.Поставщик', title: 'Поставщик', textEdit: false },
|
||||||
|
{ input: 'Менеджер', path: 'Объект.Менеджер', title: 'Менеджер' },
|
||||||
{ input: 'Комментарий', path: 'Объект.Комментарий', title: 'Комментарий' },
|
{ input: 'Комментарий', path: 'Объект.Комментарий', title: 'Комментарий' },
|
||||||
{ table: 'Товары', path: 'Объект.Товары', title: 'Товары', changeRowSet: true, columns: [
|
{ table: 'Товары', path: 'Объект.Товары', title: 'Товары', changeRowSet: true, columns: [
|
||||||
{ input: 'Номенклатура', path: 'Объект.Товары.Номенклатура', title: 'Номенклатура' },
|
{ input: 'Номенклатура', path: 'Объект.Товары.Номенклатура', title: 'Номенклатура' },
|
||||||
|
|||||||
@@ -38,6 +38,27 @@ export default async function({ navigateSection, openCommand, clickElement, sele
|
|||||||
await closeForm({ save: false });
|
await closeForm({ save: false });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
await step('auto-history: choiceHistoryOnInput=Auto → method=dropdown даже на ссылке без quickChoice', async () => {
|
||||||
|
// Менеджер и Контрагент оба ссылаются на CatalogRef.Контрагенты (quickChoice=false).
|
||||||
|
// Отличие — choiceHistoryOnInput:
|
||||||
|
// Контрагент: 'DontUse' → typeahead-dropdown подавлен → selectValue идёт в form
|
||||||
|
// Менеджер: 'Auto' (дефолт) → typeahead активен → selectValue остаётся в dropdown
|
||||||
|
// Шаг подтверждает, что флаг управляет path внутри selectValue.
|
||||||
|
await navigateSection('Склад');
|
||||||
|
await openCommand('Приходная накладная');
|
||||||
|
await clickElement('Создать');
|
||||||
|
|
||||||
|
const r = await selectValue('Менеджер', 'ООО Юг');
|
||||||
|
log(`Менеджер (Auto): method=${r.selected?.method}`);
|
||||||
|
assert.equal(r.selected?.method, 'dropdown',
|
||||||
|
'Auto-история включена → typeahead-dropdown → method=dropdown (vs form у Контрагент)');
|
||||||
|
|
||||||
|
const field = findField(r, 'Менеджер');
|
||||||
|
assert.includes(field?.value || '', 'Юг', 'значение установилось из dropdown');
|
||||||
|
|
||||||
|
await closeForm({ save: false });
|
||||||
|
});
|
||||||
|
|
||||||
await step('clear: selectValue с пустым search → Shift+F4', async () => {
|
await step('clear: selectValue с пустым search → Shift+F4', async () => {
|
||||||
await navigateSection('Склад');
|
await navigateSection('Склад');
|
||||||
await openCommand('Приходная накладная');
|
await openCommand('Приходная накладная');
|
||||||
|
|||||||
Reference in New Issue
Block a user