mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-21 20:21:02 +03:00
cfe-patch-method стал source-aware: читает оригинал метода из -ConfigPath. Тест не передавал -ConfigPath и опирался на пустой ObjectModule источника → шаг перехвата падал «Не указан -ConfigPath». Добавлен seed-шаг с процедурой ПриЗаписи в исходный модуль + -ConfigPath в вызов перехватчика. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
54 lines
2.5 KiB
JavaScript
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' },
|
|
},
|
|
];
|