diff --git a/tests/skills/cases/cf-init/_skill.json b/tests/skills/cases/cf-init/_skill.json new file mode 100644 index 00000000..83c5b86e --- /dev/null +++ b/tests/skills/cases/cf-init/_skill.json @@ -0,0 +1,12 @@ +{ + "script": "cf-init/scripts/cf-init", + "setup": "none", + "args": [ + { "flag": "-Name", "from": "case.name" }, + { "flag": "-OutputDir", "from": "workDir" } + ], + "snapshot": { + "root": "workDir", + "normalizeUuids": true + } +} diff --git a/tests/skills/cases/cf-init/basic.json b/tests/skills/cases/cf-init/basic.json new file mode 100644 index 00000000..bfc9218c --- /dev/null +++ b/tests/skills/cases/cf-init/basic.json @@ -0,0 +1,7 @@ +{ + "name": "Пустая конфигурация", + "params": { "name": "ТестоваяКонфигурация" }, + "expect": { + "files": ["Configuration.xml", "Languages/Русский.xml"] + } +} diff --git a/tests/skills/cases/cf-init/error-already-exists.json b/tests/skills/cases/cf-init/error-already-exists.json new file mode 100644 index 00000000..4d42d10e --- /dev/null +++ b/tests/skills/cases/cf-init/error-already-exists.json @@ -0,0 +1,6 @@ +{ + "name": "Ошибка: Configuration.xml уже существует", + "setup": "empty-config", + "params": { "name": "Дубль" }, + "expectError": true +} diff --git a/tests/skills/cases/cf-init/snapshots/basic/Configuration.xml b/tests/skills/cases/cf-init/snapshots/basic/Configuration.xml new file mode 100644 index 00000000..f600bebf --- /dev/null +++ b/tests/skills/cases/cf-init/snapshots/basic/Configuration.xml @@ -0,0 +1,251 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + ТестоваяКонфигурация + + + ru + ТестоваяКонфигурация + + + + + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + + + + false + false + false + + + + + + + + + + + + + + + + + + + + + + Biometrics + true + + + Location + false + + + BackgroundLocation + false + + + BluetoothPrinters + false + + + WiFiPrinters + false + + + Contacts + false + + + Calendars + false + + + PushNotifications + false + + + LocalNotifications + false + + + InAppPurchases + false + + + PersonalComputerFileExchange + false + + + Ads + false + + + NumberDialing + false + + + CallProcessing + false + + + CallLog + false + + + AutoSendSMS + false + + + ReceiveSMS + false + + + SMSLog + false + + + Camera + false + + + Microphone + false + + + MusicLibrary + false + + + PictureAndVideoLibraries + false + + + AudioPlaybackAndVibration + false + + + BackgroundAudioPlaybackAndVibration + false + + + InstallPackages + false + + + OSBackup + true + + + ApplicationUsageStatistics + false + + + BarcodeScanning + false + + + BackgroundAudioRecording + false + + + AllFilesAccess + false + + + Videoconferences + false + + + NFC + false + + + DocumentScanning + false + + + SpeechToText + false + + + Geofences + false + + + IncomingShareRequests + false + + + AllIncomingShareRequestsTypesProcessing + false + + + + + + Normal + + + Language.Русский + + + + + + Managed + NotAutoFree + DontUse + DontUse + Taxi + DontUse + Version8_3_24 + + + + Русский + + + \ No newline at end of file diff --git a/tests/skills/cases/cf-init/snapshots/basic/Languages/Русский.xml b/tests/skills/cases/cf-init/snapshots/basic/Languages/Русский.xml new file mode 100644 index 00000000..37c60d78 --- /dev/null +++ b/tests/skills/cases/cf-init/snapshots/basic/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/cf-init/snapshots/with-vendor/Configuration.xml b/tests/skills/cases/cf-init/snapshots/with-vendor/Configuration.xml new file mode 100644 index 00000000..2535d048 --- /dev/null +++ b/tests/skills/cases/cf-init/snapshots/with-vendor/Configuration.xml @@ -0,0 +1,251 @@ + + + + + + UUID-002 + UUID-003 + + + UUID-004 + UUID-005 + + + UUID-006 + UUID-007 + + + UUID-008 + UUID-009 + + + UUID-010 + UUID-011 + + + UUID-012 + UUID-013 + + + UUID-014 + UUID-015 + + + + Бухгалтерия + + + ru + Бухгалтерия + + + + + Version8_3_24 + ManagedApplication + + PlatformApplication + + Russian + + Тест + 2.0.1 + + false + false + false + + + + + + + + + + + + + + + + + + + + + + Biometrics + true + + + Location + false + + + BackgroundLocation + false + + + BluetoothPrinters + false + + + WiFiPrinters + false + + + Contacts + false + + + Calendars + false + + + PushNotifications + false + + + LocalNotifications + false + + + InAppPurchases + false + + + PersonalComputerFileExchange + false + + + Ads + false + + + NumberDialing + false + + + CallProcessing + false + + + CallLog + false + + + AutoSendSMS + false + + + ReceiveSMS + false + + + SMSLog + false + + + Camera + false + + + Microphone + false + + + MusicLibrary + false + + + PictureAndVideoLibraries + false + + + AudioPlaybackAndVibration + false + + + BackgroundAudioPlaybackAndVibration + false + + + InstallPackages + false + + + OSBackup + true + + + ApplicationUsageStatistics + false + + + BarcodeScanning + false + + + BackgroundAudioRecording + false + + + AllFilesAccess + false + + + Videoconferences + false + + + NFC + false + + + DocumentScanning + false + + + SpeechToText + false + + + Geofences + false + + + IncomingShareRequests + false + + + AllIncomingShareRequestsTypesProcessing + false + + + + + + Normal + + + Language.Русский + + + + + + Managed + NotAutoFree + DontUse + DontUse + Taxi + DontUse + Version8_3_24 + + + + Русский + + + \ No newline at end of file diff --git a/tests/skills/cases/cf-init/snapshots/with-vendor/Languages/Русский.xml b/tests/skills/cases/cf-init/snapshots/with-vendor/Languages/Русский.xml new file mode 100644 index 00000000..37c60d78 --- /dev/null +++ b/tests/skills/cases/cf-init/snapshots/with-vendor/Languages/Русский.xml @@ -0,0 +1,16 @@ + + + + + Русский + + + ru + Русский + + + + ru + + + \ No newline at end of file diff --git a/tests/skills/cases/cf-init/with-vendor.json b/tests/skills/cases/cf-init/with-vendor.json new file mode 100644 index 00000000..a8136a32 --- /dev/null +++ b/tests/skills/cases/cf-init/with-vendor.json @@ -0,0 +1,9 @@ +{ + "name": "Конфигурация с поставщиком и версией", + "params": { "name": "Бухгалтерия" }, + "args_extra": ["-Vendor", "Тест", "-Version", "2.0.1"], + "expect": { + "files": ["Configuration.xml", "Languages/Русский.xml"], + "stdoutContains": "Бухгалтерия" + } +} diff --git a/tests/skills/runner.mjs b/tests/skills/runner.mjs index efbfa8a5..e4225e51 100644 --- a/tests/skills/runner.mjs +++ b/tests/skills/runner.mjs @@ -185,7 +185,7 @@ function buildArgs(skillConfig, caseData, workDir, inputFilePath, runtime) { default: if (mapping.from.startsWith('case.')) { const field = mapping.from.slice(5); - const val = caseData[field] ?? caseData.params?.[field] ?? ''; + const val = caseData.params?.[field] ?? caseData[field] ?? ''; args.push(String(val)); } else if (mapping.from === 'literal') { args.push(mapping.value || ''); @@ -193,6 +193,11 @@ function buildArgs(skillConfig, caseData, workDir, inputFilePath, runtime) { } } + // Append extra args from case (for optional params like -Vendor, -Version) + if (caseData.args_extra) { + args.push(...caseData.args_extra); + } + return { scriptPath, args }; }