fix(web-test): 02-crud использует canonical closeForm({save:true})

Гипотеза о баге fillField paste была ошибочной — реальная причина в form-compile
который не эмитит <SavedData>true</SavedData> для MainAttribute главной формы.
Платформа без SavedData не трекает modified-state, confirmation dialog не
появляется.

Платформенная верификация на патченной Form.xml: closeForm({save:true})
после fillField корректно ловит confirmation, жмёт «Да», изменения
сохраняются. См. T11 в upload/web-test-runner-tasks.md.

ВНИМАНИЕ: тест зависит от ручного патча Form.xml. После прогона
build-webtest-db.mjs тест упадёт до фикса form-compile (T11).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-05-02 15:44:39 +03:00
parent 8d6612027f
commit 99c77e1dde
+6 -6
View File
@@ -39,17 +39,17 @@ export default async function({ navigateSection, openCommand, clickElement, clos
log(`closed=${after.closed} form-was=${before.form}`);
});
await step('save-via-button: fillField + "Записать и закрыть" → значение сохранилось', async () => {
// NB: closeForm({save:true}) ожидает confirmation dialog, но fillField через
// paste не выставляет 1C "modified" флаг → диалог не появляется и Escape
// просто закрывает форму без сохранения. Save-flow покрываем через явную
// кнопку «Записать и закрыть»; confirm-save-yes отложен как баг движка.
await step('confirm-save-yes: fillField + closeForm({save:true}) → значение сохранилось', async () => {
// ВНИМАНИЕ: тест требует <SavedData>true</SavedData> у MainAttribute
// главной формы Контрагенты. См. T11 в upload/web-test-runner-tasks.md —
// form-compile сейчас не эмитит этот флаг, форма патчится вручную.
// После прогона build-webtest-db.mjs тест упадёт пока не пофиксят T11.
await navigateSection('Склад');
await openCommand('Контрагенты');
await clickElement('ООО Восток', { dblclick: true });
const newPhone = '+7 (999) 111-22-33';
await fillField('Телефон', newPhone);
await clickElement('Записать и закрыть');
await closeForm({ save: true });
// Verify persisted
await navigateSection('Склад');