Files
cc-1c-skills/tests/skills/integration/build-cfe.test.mjs
T
Nick ShirokovandClaude Opus 4.8 28f3410463 test(build-cfe): актуализировать под cfe-patch-method v2 (source-aware)
cfe-patch-method стал source-aware: читает оригинал метода из -ConfigPath.
Тест не передавал -ConfigPath и опирался на пустой ObjectModule источника →
шаг перехвата падал «Не указан -ConfigPath». Добавлен seed-шаг с процедурой
ПриЗаписи в исходный модуль + -ConfigPath в вызов перехватчика.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 19:50:06 +03:00

54 lines
2.5 KiB
JavaScript

// build-cfe.test.mjs — Integration test: build a 1C extension (CFE) from scratch
// Steps: cfe-init → cfe-borrow (catalog) → seed source method → cfe-patch-method (Before interceptor) → cfe-validate
export const name = 'Сборка расширения конфигурации (CFE)';
export const setup = 'base-config';
export const steps = [
// ── 1. Init extension pointing at the base config ──
{
name: 'cfe-init: расширение ТестовоеРасширение',
script: 'cfe-init/scripts/cfe-init',
args: { '-Name': 'ТестовоеРасширение', '-OutputDir': '{workDir}/ext', '-ConfigPath': '{workDir}' },
validate: { script: 'cfe-validate/scripts/cfe-validate', flag: '-ExtensionPath', path: 'ext' },
},
// ── 2. Borrow a catalog from the base config ──
{
name: 'cfe-borrow: заимствование Catalog.Контрагенты',
script: 'cfe-borrow/scripts/cfe-borrow',
args: { '-ExtensionPath': '{workDir}/ext', '-ConfigPath': '{workDir}', '-Object': 'Catalog.Контрагенты' },
validate: { script: 'cfe-validate/scripts/cfe-validate', flag: '-ExtensionPath', path: 'ext' },
},
// ── 2b. Seed the source object module with a method to intercept ──
// cfe-patch-method (v2) reads the original from -ConfigPath; base-config ships an empty
// ObjectModule, so provide a ПриЗаписи handler for the interceptor to wrap.
{
name: 'seed: ПриЗаписи в исходном модуле Контрагентов',
writeFile: '{workDir}/Catalogs/Контрагенты/Ext/ObjectModule.bsl',
content: 'Процедура ПриЗаписи(Отказ)\n\nКонецПроцедуры\n',
},
// ── 3. Add a Before interceptor for a method on the borrowed catalog ──
{
name: 'cfe-patch-method: перехватчик Перед для ПриЗаписи',
script: 'cfe-patch-method/scripts/cfe-patch-method',
args: {
'-ExtensionPath': '{workDir}/ext',
'-ConfigPath': '{workDir}',
'-ModulePath': 'Catalog.Контрагенты.ObjectModule',
'-MethodName': 'ПриЗаписи',
'-InterceptorType': 'Before',
},
validate: { script: 'cfe-validate/scripts/cfe-validate', flag: '-ExtensionPath', path: 'ext' },
},
// ── 4. Final validation ──
{
name: 'cfe-validate: финальная валидация расширения',
script: 'cfe-validate/scripts/cfe-validate',
args: { '-ExtensionPath': '{workDir}/ext' },
},
];