You've already forked OpenIntegrations
							
							
				mirror of
				https://github.com/Bayselonarrend/OpenIntegrations.git
				synced 2025-10-30 23:47:46 +02:00 
			
		
		
		
	Скрипт формирования запуска YaxUnit из Jenkins
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -19,6 +19,7 @@ fakedata.json | ||||
| /docs/docusaurus/build | ||||
| /docs/docusaurus/docs | ||||
| /Melezh | ||||
| /test_results | ||||
|  | ||||
| target/ | ||||
| .idea/ | ||||
|   | ||||
| @@ -2,14 +2,25 @@ | ||||
| #Использовать "./../../../../src/ru/OInt/tools/" | ||||
| #Использовать "./internal" | ||||
|  | ||||
| Перем Путь1с; | ||||
| Перем Сервер1с; | ||||
| Перем База1сRu; | ||||
| Перем База1сEn; | ||||
|  | ||||
| Перем КаталогКонфигурацииYaxUnit; | ||||
| Перем ШаблонКонфигурацииYaxUnit; | ||||
|  | ||||
| Перем СписокРабот; | ||||
| Перем ШаблонCliWindows; | ||||
| Перем ШаблонOsWindows; | ||||
| Перем Шаблон1cWindows; | ||||
| Перем ШаблонOsLinux; | ||||
| Перем ШаблонCliRpm; | ||||
| Перем ШаблонCliDeb; | ||||
|  | ||||
| Перем ШаблонШага; | ||||
| Перем ШаблонВыполнения; | ||||
| Перем ШаблонВыполненияOs; | ||||
| Перем ШаблонВыполнения1с; | ||||
| Перем ШаблонПайплайна; | ||||
| Перем ШаблонПапки; | ||||
| Перем ЛогинJenkins; | ||||
| @@ -18,6 +29,17 @@ | ||||
|  | ||||
| Процедура СоздатьНаборWorkflow(Знач Языки, Знач КаталогПараметров, Знач КаталогWorkflow) Экспорт | ||||
|  | ||||
| 	Путь1с   = "C:\\Program Files\\1cv8\\8.3.18.1208\\bin\\1cv8c.exe"; | ||||
| 	Сервер1с = "DEVSRV"; | ||||
| 	База1сRu = "OpenIntegrations"; | ||||
| 	База1сEn = "OpenIntegrationsEng"; | ||||
|  | ||||
| 	КаталогКонфигурацииYaxUnit = "./service/yaxunit_conf/"; | ||||
|  | ||||
| 	ШаблонКонфигурацииYaxUnit  = КаталогКонфигурацииYaxUnit + "template.txt"; | ||||
| 	ШаблонКонфигурацииYaxUnit  = Новый ДвоичныеДанные(ШаблонКонфигурацииYaxUnit); | ||||
| 	ШаблонКонфигурацииYaxUnit = ПолучитьСтрокуИзДвоичныхДанных(ШаблонКонфигурацииYaxUnit); | ||||
|  | ||||
| 	КаталогШаблонов    = "./service/templates/jenkins/"; | ||||
| 	ЛогинJenkins       = ПолучитьПеременнуюСреды("JENKINS_LOGIN", РасположениеПеременнойСреды.Машина); | ||||
| 	ТокенJenkins       = ПолучитьПеременнуюСреды("JENKINS_TOKEN", РасположениеПеременнойСреды.Машина); | ||||
| @@ -28,11 +50,13 @@ | ||||
| 	ПутьШаблонаOsLinux    = КаталогШаблонов + "os_test_linux.txt"; | ||||
| 	ПутьШаблонаCliRpm     = КаталогШаблонов + "cli_test_rpm.txt"; | ||||
| 	ПутьШаблонаCliDeb     = КаталогШаблонов + "cli_test_deb.txt"; | ||||
| 	ПутьШаблона1cWindows  = КаталогШаблонов + "1c_test_windows.txt"; | ||||
|  | ||||
| 	ПутьШаблонаШага       = КаталогШаблонов + "test_stage.txt"; | ||||
| 	ПутьШаблонаВыполнения = КаталогШаблонов + "test_exec.txt"; | ||||
| 	ПутьШаблонаПайплайна  = КаталогШаблонов + "conf_pipeline.txt"; | ||||
| 	ПутьШаблонаПапки      = КаталогШаблонов + "conf_folder.txt"; | ||||
| 	ПутьШаблонаШага         = КаталогШаблонов + "test_stage.txt"; | ||||
| 	ПутьШаблонаВыполненияOs = КаталогШаблонов + "test_exec_os.txt"; | ||||
| 	ПутьШаблонаВыполнения1C = КаталогШаблонов + "test_exec_1c.txt"; | ||||
| 	ПутьШаблонаПайплайна    = КаталогШаблонов + "conf_pipeline.txt"; | ||||
| 	ПутьШаблонаПапки        = КаталогШаблонов + "conf_folder.txt"; | ||||
|  | ||||
| 	ШаблонCliWindows = Новый ДвоичныеДанные(ПутьШаблонаCliWindows); | ||||
| 	ШаблонCliWindows = ПолучитьСтрокуИзДвоичныхДанных(ШаблонCliWindows); | ||||
| @@ -49,11 +73,17 @@ | ||||
| 	ШаблонCliDeb = Новый ДвоичныеДанные(ПутьШаблонаCliDeb); | ||||
| 	ШаблонCliDeb = ПолучитьСтрокуИзДвоичныхДанных(ШаблонCliDeb); | ||||
|  | ||||
| 	Шаблон1cWindows = Новый ДвоичныеДанные(ПутьШаблона1cWindows); | ||||
| 	Шаблон1cWindows = ПолучитьСтрокуИзДвоичныхДанных(Шаблон1cWindows); | ||||
|  | ||||
| 	ШаблонШага = Новый ДвоичныеДанные(ПутьШаблонаШага); | ||||
| 	ШаблонШага = ПолучитьСтрокуИзДвоичныхДанных(ШаблонШага); | ||||
|  | ||||
| 	ШаблонВыполнения = Новый ДвоичныеДанные(ПутьШаблонаВыполнения); | ||||
| 	ШаблонВыполнения = ПолучитьСтрокуИзДвоичныхДанных(ШаблонВыполнения); | ||||
| 	ШаблонВыполненияOs = Новый ДвоичныеДанные(ПутьШаблонаВыполненияOs); | ||||
| 	ШаблонВыполненияOs = ПолучитьСтрокуИзДвоичныхДанных(ШаблонВыполненияOs); | ||||
|  | ||||
| 	ШаблонВыполнения1с = Новый ДвоичныеДанные(ПутьШаблонаВыполнения1c); | ||||
| 	ШаблонВыполнения1с = ПолучитьСтрокуИзДвоичныхДанных(ШаблонВыполнения1с); | ||||
|  | ||||
| 	ШаблонПайплайна = Новый ДвоичныеДанные(ПутьШаблонаПайплайна); | ||||
| 	ШаблонПайплайна = ПолучитьСтрокуИзДвоичныхДанных(ШаблонПайплайна); | ||||
| @@ -122,9 +152,11 @@ | ||||
| 	ФайлWindowsCLI   = КаталогWorkflow + "cli_test_" + Язык; | ||||
| 	ФайлRpmCLI       = КаталогWorkflow + "cli_rpm_test_" + Язык; | ||||
| 	ФайлDebCLI       = КаталогWorkflow + "cli_deb_test_" + Язык; | ||||
| 	ФайлWindows1c    = КаталогWorkflow + "1c_test_" + Язык; | ||||
|  | ||||
| 	ТекстВыполненияOS  = ПолучитьТекстВыполнения(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестов); | ||||
| 	ТекстВыполненияCLI = ПолучитьТекстВыполнения(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестовCLI); | ||||
| 	ТекстВыполненияOS  = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестов); | ||||
| 	ТекстВыполненияCLI = ПолучитьТекстВыполненияOs(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестовCLI); | ||||
| 	ТекстВыполнения1С  = ПолучитьТекстВыполнения1c(ТаблицаТестов, СписокБиблиотек, Параметры, МодульТестов, Язык); | ||||
|  | ||||
| 	ТекстJFCLI   = СтрШаблон(ШаблонCliWindows, Язык, ТекстВыполненияCLI); | ||||
| 	ТекстJFOS    = СтрШаблон(ШаблонOsWindows, Язык, ТекстВыполненияOS); | ||||
| @@ -135,6 +167,8 @@ | ||||
| 	ТекстJFCLIRPM = СтрШаблон(ШаблонCliRpm, Язык, ТекстВыполненияCLI, "Rpm-Agent"); | ||||
| 	ТекстJFCLIDEB = СтрШаблон(ШаблонCliDeb, Язык, ТекстВыполненияCLI, "Deb-Agent"); | ||||
|  | ||||
| 	ТекстJF1CWin = СтрШаблон(Шаблон1cWindows, Язык, ТекстВыполнения1С); | ||||
|  | ||||
| 	ШаблонПредставления = "OPI | Тестирование версии для %1 (%2, %3)"; | ||||
|  | ||||
| 	ПолучитьДвоичныеДанныеИзСтроки(ТекстJFOS).Записать(ФайлJenkinsOS); | ||||
| @@ -173,9 +207,15 @@ | ||||
| 		, СтрШаблон(ШаблонПредставления, "CLI", "DEB", ЯзыкВрег) | ||||
| 		, ФайлDebCLI); | ||||
|  | ||||
| 	ПолучитьДвоичныеДанныеИзСтроки(ТекстJF1CWin).Записать(ФайлWindows1c); | ||||
| 	СоздатьПайплайнJenkins(ПутьJenkins | ||||
| 		, "Opi1cWin" + ЯзыкТрег | ||||
| 		, СтрШаблон(ШаблонПредставления, "1C:Enterprise", "Windows", ЯзыкВрег) | ||||
| 		, ФайлWindows1c); | ||||
|  | ||||
| КонецПроцедуры | ||||
|  | ||||
| Функция ПолучитьТекстВыполнения(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Параметры, Знач МодульТестов) | ||||
| Функция ПолучитьТекстВыполненияOs(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Параметры, Знач МодульТестов) | ||||
| 	 | ||||
| 	СтрокаРаздел    = Параметры["sectionsString"]; | ||||
| 	СтрокаМетод     = Параметры["methodString"]; | ||||
| @@ -200,7 +240,7 @@ | ||||
|  | ||||
| 			Метод = Тест[СтрокаМетод]; | ||||
| 			 | ||||
| 			МассивВыполнений.Добавить(СтрШаблон(ШаблонВыполнения, МодульТестов, Метод)) | ||||
| 			МассивВыполнений.Добавить(СтрШаблон(ШаблонВыполненияOs, МодульТестов, Метод)) | ||||
|  | ||||
| 		КонецЦикла; | ||||
|  | ||||
| @@ -212,6 +252,50 @@ | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Функция ПолучитьТекстВыполнения1c(Знач ТаблицаТестов, Знач СписокБиблиотек, Знач Параметры, Знач МодульТестов, Знач Язык) | ||||
| 	 | ||||
| 	СтрокаРаздел    = Параметры["sectionsString"]; | ||||
| 	СтрокаМетод     = Параметры["methodString"]; | ||||
| 	СтрокаСиноним   = Параметры["synonymString"]; | ||||
|  | ||||
| 	Если Не ТипЗнч(СписокБиблиотек) = Тип("Структура") Тогда | ||||
| 		СписокБиблиотек_ = Новый Структура; | ||||
| 		СписокБиблиотек_.Вставить(СписокБиблиотек.Ключ, СписокБиблиотек.Значение); | ||||
| 		СписокБиблиотек = СписокБиблиотек_; | ||||
| 	КонецЕсли; | ||||
|  | ||||
| 	МассивШагов = Новый Массив; | ||||
| 	Для Каждого Библиотека Из СписокБиблиотек Цикл | ||||
|  | ||||
| 		Раздел  = Библиотека.Ключ; | ||||
| 		База    = ?(Язык = "ru", База1сRu, База1сEn); | ||||
| 		YaxConf = КаталогКонфигурацииYaxUnit + Язык + "/" + Раздел + ".json"; | ||||
|  | ||||
| 		Выполнение = СтрШаблон(ШаблонВыполнения1с, Путь1с, Сервер1с, База, Раздел, Язык); | ||||
|  | ||||
| 		Отбор = Новый Структура(СтрокаРаздел, Раздел); | ||||
| 		ТестыТекущегоРаздела = ТаблицаТестов.НайтиСтроки(Отбор); | ||||
|  | ||||
| 		МассивМетодов = Новый Массив; | ||||
|  | ||||
| 		Для Каждого Тест Из ТестыТекущегоРаздела Цикл | ||||
|  | ||||
| 			Метод = Тест[СтрокаМетод]; | ||||
| 			МассивМетодов.Добавить("""" + Метод + """" ); | ||||
| 			 | ||||
| 		КонецЦикла; | ||||
|  | ||||
| 		ПолучитьДвоичныеДанныеИзСтроки(СтрШаблон(ШаблонКонфигурацииYaxUnit, Раздел, СтрСоединить(МассивМетодов, "," + Символы.ПС))) | ||||
| 			.Записать(КаталогКонфигурацииYaxUnit + Язык + "/" + Раздел + ".json"); | ||||
|  | ||||
| 		МассивШагов.Добавить(СтрШаблон(ШаблонШага, Раздел, Выполнение)); | ||||
|  | ||||
| 	КонецЦикла; | ||||
|  | ||||
| 	Возврат СтрСоединить(МассивШагов, Символы.ПС); | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Процедура СоздатьНачальнуюСтруктуруJenkins() | ||||
|  | ||||
| 	УдалитьЭлементJenkins("/job/OPITest"); | ||||
| @@ -273,4 +357,7 @@ | ||||
| КонецПроцедуры | ||||
|  | ||||
|  | ||||
| Языки = Новый Массив; | ||||
| Языки.Добавить("ru"); | ||||
|  | ||||
| СоздатьНаборWorkflow(Языки, "./service/localization_vars/", "./ci/"); | ||||
							
								
								
									
										3
									
								
								service/templates/jenkins/test_exec.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								service/templates/jenkins/test_exec.txt
									
									
									
									
										vendored
									
									
								
							| @@ -1,3 +0,0 @@ | ||||
| 			catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {    | ||||
| 				runCommand('1testrunner -run "%1" "%2"') | ||||
| 			} | ||||
| @@ -74,6 +74,69 @@ | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| // Получить информацию об аккаунте | ||||
| // Получает информацию об аккаунте | ||||
| // | ||||
| // Примечание: | ||||
| // Метод в документации API: [GetWaSettings](@green-api.com/v3/docs/api/account/GetAccountSettings/) | ||||
| // | ||||
| // Параметры: | ||||
| //  ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access | ||||
| // | ||||
| // Возвращаемое значение: | ||||
| //  Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API | ||||
| Функция ПолучитьИнформациюОбАккаунте(Знач ПараметрыДоступа) Экспорт | ||||
|  | ||||
|     URL   = СформироватьОсновнойURL(ПараметрыДоступа, "getAccountSettings"); | ||||
|     Ответ = OPI_ЗапросыHTTP.Get(URL); | ||||
|  | ||||
|     Возврат Ответ; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| // Получить настройки инстанса | ||||
| // Получает текущие настройки инстанса | ||||
| // | ||||
| // Примечание: | ||||
| // Метод в документации API: [GetSettings](@green-api.com/v3/docs/api/account/GetSettings/) | ||||
| // | ||||
| // Параметры: | ||||
| //  ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access | ||||
| // | ||||
| // Возвращаемое значение: | ||||
| //  Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API | ||||
| Функция ПолучитьНастройкиИнстанса(Знач ПараметрыДоступа) Экспорт | ||||
|  | ||||
|     URL   = СформироватьОсновнойURL(ПараметрыДоступа, "getSettings"); | ||||
|     Ответ = OPI_ЗапросыHTTP.Get(URL); | ||||
|  | ||||
|     Возврат Ответ; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| // Установить настройки инстанса | ||||
| // Устанавливает настройки инстанса | ||||
| // | ||||
| // Примечание | ||||
| // Метод в документации API: [SetSettings](@green-api.com/v3/docs/api/account/SetSettings/) | ||||
| // | ||||
| // Параметры: | ||||
| //  Настройки        - Структура Из КлючИЗначение - Настройки инстанса. См. ПолучитьСтруктуруНастроекИнстанса - settings | ||||
| //  ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа       - access | ||||
| // | ||||
| // Возвращаемое значение: | ||||
| //  Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API | ||||
| Функция УстановитьНастройкиИнстанса(Знач Настройки, Знач ПараметрыДоступа) Экспорт | ||||
|  | ||||
|     OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Настройки); | ||||
|  | ||||
|     URL   = СформироватьОсновнойURL(ПараметрыДоступа, "setSettings"); | ||||
|     Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Настройки); | ||||
|  | ||||
|     Возврат Ответ; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| // Получить код авторизации | ||||
| // Отправляет SMS по указанному номеру для получения кода подтверждения  | ||||
| //  | ||||
| @@ -147,6 +210,32 @@ | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| // Установить картинку профиля | ||||
| // Устанавливает новую картинку профиля | ||||
| // | ||||
| // Примечание: | ||||
| // Метод в документации API: [SetProfilePicture](@green-api.com/v3/docs/api/account/SetProfilePicture/) | ||||
| // | ||||
| // Параметры: | ||||
| //  ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access | ||||
| //  Картинка         - ДвоичныеДанные, Строка     - Картинка профиля                                    - picture | ||||
| // | ||||
| // Возвращаемое значение: | ||||
| //  Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API | ||||
| Функция УстановитьКартинкуПрофиля(Знач ПараметрыДоступа, Знач Картинка) Экспорт | ||||
|  | ||||
|     OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); | ||||
|  | ||||
|     СоответствиеКартинки = Новый Соответствие(); | ||||
|     СоответствиеКартинки.Вставить("file|file.jpg", Картинка); | ||||
|  | ||||
|     URL   = СформироватьОсновнойURL(ПараметрыДоступа, "setProfilePicture"); | ||||
|     Ответ = OPI_ЗапросыHTTP.PostMultipart(URL, , СоответствиеКартинки); | ||||
|  | ||||
|     Возврат Ответ; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| // Разлогинить инстанс | ||||
| // Разлогинивает инстанс | ||||
| // | ||||
| @@ -167,6 +256,90 @@ | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| // Перезапустить инстанс | ||||
| // Перезапускает инстанс | ||||
| // | ||||
| // Примечание: | ||||
| // Метод в документации API: [Reboot](@green-api.com/v3/docs/api/account/Reboot/) | ||||
| // | ||||
| // Параметры: | ||||
| //  ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access | ||||
| // | ||||
| // Возвращаемое значение: | ||||
| //  Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API | ||||
| Функция ПерезапуститьИнстанс(Знач ПараметрыДоступа) Экспорт | ||||
|  | ||||
|     URL   = СформироватьОсновнойURL(ПараметрыДоступа, "reboot"); | ||||
|     Ответ = OPI_ЗапросыHTTP.Get(URL); | ||||
|  | ||||
|     Возврат Ответ; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| // Проверить аккаунт | ||||
| // Проверяет существование аккаунта Max по номеру телефона | ||||
| // | ||||
| // Примечание: | ||||
| // Метод в документации API: [CheckAccount](@green-api.com/v3/docs/api/account/CheckAccount/) | ||||
| //  | ||||
| // Параметры: | ||||
| //  ПараметрыДоступа - Структура Из КлючИЗначение - Параметры доступа. См. СформироватьПараметрыДоступа - access | ||||
| //  НомерТелефона    - Строка, Число              - Номер телефона для проверки без знака +             - phone | ||||
| //  ИгнорироватьКэш  - Булево                     - Игнорировать кэш при повторном запросе проверки     - force | ||||
| //  | ||||
| // Возвращаемое значение: | ||||
| //  Соответствие Из КлючИЗначение - сериализованный JSON ответа от Green API | ||||
| Функция ПроверитьАккаунт(Знач ПараметрыДоступа, Знач НомерТелефона, Знач ИгнорироватьКэш = Ложь) Экспорт | ||||
|  | ||||
|     OPI_ПреобразованиеТипов.ПолучитьСтроку(НомерТелефона); | ||||
|      | ||||
|     НомерТелефона = СтрЗаменить(НомерТелефона, "+", ""); | ||||
|      | ||||
|     Параметры = Новый Структура;   | ||||
|     OPI_Инструменты.ДобавитьПоле("phoneNumber", НомерТелефона  , "Число", Параметры); | ||||
|     OPI_Инструменты.ДобавитьПоле("force"      , ИгнорироватьКэш, "Булево", Параметры); | ||||
|      | ||||
|     URL   = СформироватьОсновнойURL(ПараметрыДоступа, "checkAccount"); | ||||
|     Ответ = OPI_ЗапросыHTTP.PostСТелом(URL, Параметры); | ||||
|  | ||||
|     Возврат Ответ; | ||||
|          | ||||
| КонецФункции | ||||
|  | ||||
| // Получить структуру настроек инстанса | ||||
| // Получает шаблон структуры для установки настроек инстанса | ||||
| // | ||||
| // Параметры: | ||||
| //  Пустая - Булево - Истина > структура с пустыми значениями, Ложь > в значениях будут описания полей - empty | ||||
| // | ||||
| // Возвращаемое значение: | ||||
| //  Структура Из КлючИЗначение -  Структура настроек инстанса | ||||
| Функция ПолучитьСтруктуруНастроекИнстанса(Знач Пустая = Ложь) Экспорт | ||||
|  | ||||
|     OPI_ПреобразованиеТипов.ПолучитьБулево(Пустая); | ||||
|  | ||||
|     СтруктураНастроек = Новый Структура; | ||||
|  | ||||
|     СтруктураНастроек.Вставить("webhookUrl"                       , "<URL для отправки уведомлений>"); | ||||
|     СтруктураНастроек.Вставить("webhookUrlToken"                  , "<токен для доступа к вашему серверу уведомлений, если требуется>"); | ||||
|     СтруктураНастроек.Вставить("delaySendMessagesMilliseconds"    , "<интервал отправки сообщений в миллисекундах>"); | ||||
|     СтруктураНастроек.Вставить("markIncomingMessagesReaded"       , "<отмечать входящие сообщения прочитанными: yes, no>"); | ||||
|     СтруктураНастроек.Вставить("markIncomingMessagesReadedOnReply", "<отмечать входящие сообщения прочитанными при отправке сообщения в чат: yes, no>"); | ||||
|     СтруктураНастроек.Вставить("outgoingWebhook"                  , "<получать уведомления о статусах отправки/доставки/прочтении исходящих сообщений: yes, no>"); | ||||
|     СтруктураНастроек.Вставить("outgoingMessageWebhook"           , "<получать уведомления о сообщениях, отправленных с телефона: yes, no>"); | ||||
|     СтруктураНастроек.Вставить("outgoingAPIMessageWebhook"        , "<получать уведомления о сообщениях, отправленных через API: yes, no>"); | ||||
|     СтруктураНастроек.Вставить("stateWebhook"                     , "<получать уведомления об изменении состояния авторизации инстанса: yes, no>"); | ||||
|     СтруктураНастроек.Вставить("incomingWebhook"                  , "<получать уведомления о входящих сообщениях и файлах: yes, no>"); | ||||
|  | ||||
|     Если Пустая Тогда | ||||
|         СтруктураНастроек = OPI_Инструменты.ОчиститьКоллекциюРекурсивно(СтруктураНастроек); | ||||
|     КонецЕсли; | ||||
|  | ||||
|     //@skip-check constructor-function-return-section | ||||
|     Возврат СтруктураНастроек; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| #КонецОбласти | ||||
|  | ||||
| #КонецОбласти | ||||
|   | ||||
| @@ -11361,6 +11361,97 @@ | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Функция Проверка_GreenMax_ОтправитьКодАвторизации(Знач Результат, Знач Вариант) | ||||
|  | ||||
|     Возврат Неопределено; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Функция Проверка_GreenMax_ПолучитьСостояниеИнстанса(Знач Результат, Знач Вариант) | ||||
|  | ||||
|     ОжидаетЧто(Результат["stateInstance"]).Равно("authorized"); | ||||
|  | ||||
|     Возврат Результат; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Функция Проверка_GreenMax_ПерезапуститьИнстанс(Знач Результат, Знач Вариант) | ||||
|  | ||||
|     ОжидаетЧто(Результат["isReboot"]).Равно(Истина); | ||||
|  | ||||
|     Возврат Результат; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Функция Проверка_GreenMax_ПолучитьСтруктуруНастроекИнстанса(Знач Результат, Знач Вариант) | ||||
|  | ||||
|     ОжидаетЧто(OPI_Инструменты.ЭтоКоллекция(Результат, Истина)).Равно(Истина); | ||||
|  | ||||
|     Если Вариант = "Пустая" Тогда | ||||
|  | ||||
|         Для Каждого Элемент Из Результат Цикл | ||||
|  | ||||
|             Если OPI_Инструменты.ЭтоПримитивныйТип(Элемент.Значение) Тогда | ||||
|                 ОжидаетЧто(ЗначениеЗаполнено(Элемент.Значение)).Равно(Ложь); | ||||
|             КонецЕсли; | ||||
|  | ||||
|         КонецЦикла; | ||||
|  | ||||
|     КонецЕсли; | ||||
|  | ||||
|     Возврат Результат; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Функция Проверка_GreenMax_ПолучитьНастройкиИнстанса(Знач Результат, Знач Вариант, Параметры = "") | ||||
|  | ||||
|     Попытка | ||||
|         JSON = OPI_Инструменты.JSONСтрокой(Результат); | ||||
|         JSON = СтрЗаменить(JSON, Параметры["GreenMax_AccountID"], "1234567890@c.us"); | ||||
|  | ||||
|         Результат = OPI_Инструменты.JsonВСтруктуру(JSON, Истина); | ||||
|     Исключение | ||||
|         Сообщить("Ошибка JSON"); | ||||
|     КонецПопытки; | ||||
|  | ||||
|     ОжидаетЧто(Результат["delaySendMessagesMilliseconds"]).Заполнено(); | ||||
|  | ||||
|     Возврат Результат; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Функция Проверка_GreenMax_УстановитьНастройкиИнстанса(Знач Результат, Знач Вариант) | ||||
|  | ||||
|     ОжидаетЧто(Результат["saveSettings"]).Равно(Истина); | ||||
|  | ||||
|     Возврат Результат; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Функция Проверка_GreenMax_УстановитьКартинкуПрофиля(Знач Результат, Знач Вариант) | ||||
|  | ||||
|     ОжидаетЧто(Результат["setProfilePicture"]).Равно(Истина); | ||||
|  | ||||
|     Возврат Результат; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Функция Проверка_GreenMax_ПолучитьИнформациюОбАккаунте(Знач Результат, Знач Вариант) | ||||
|  | ||||
|     Попытка | ||||
|         Результат["chatId"] = "***"; | ||||
|         Результат["phone"]    = "***"; | ||||
|     Исключение | ||||
|         Сообщить("Не удалось заменить секреты!"); | ||||
|     КонецПопытки; | ||||
|  | ||||
|     ОжидаетЧто(Результат["chatId"]).Заполнено(); | ||||
|     ОжидаетЧто(Результат["phone"]).Заполнено(); | ||||
|  | ||||
|     Возврат Результат; | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| #КонецОбласти | ||||
|  | ||||
| #Область ReportPortal | ||||
|   | ||||
							
								
								
									
										132
									
								
								src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										132
									
								
								src/ru/OPI/src/CommonModules/OPI_Тесты/Module.bsl
									
									
									
									
										vendored
									
									
								
							| @@ -2346,7 +2346,7 @@ | ||||
|     GreenAPI_УстановитьНастройкиИнстанса(ПараметрыТеста); | ||||
|     GreenAPI_ПолучитьСостояниеИнстанса(ПараметрыТеста); | ||||
|     GreenAPI_УстановитьКартинкуПрофиля(ПараметрыТеста); | ||||
|     GreenAPI_ПерезапуститьИнстанс(ПараметрыТеста); | ||||
|     // GreenAPI_ПерезапуститьИнстанс(ПараметрыТеста); | ||||
|     // GreenAPI_ПолучитьКодАвторизации(ПараметрыТеста); | ||||
|     // GreenAPI_РазлогинитьИнстанс(ПараметрыТеста); | ||||
|     // GreenAPI_ПолучитьQR(ПараметрыТеста); | ||||
| @@ -2920,13 +2920,21 @@ | ||||
|     OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_IdInstance" , ПараметрыТеста); | ||||
|     OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_Token"      , ПараметрыТеста); | ||||
|     OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_Phone"      , ПараметрыТеста); | ||||
|     //OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_AccountID"  , ПараметрыТеста); | ||||
|     OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_AccountID"  , ПараметрыТеста); | ||||
|     //OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("GreenMax_TestGroupID", ПараметрыТеста); | ||||
|     //OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture"             , ПараметрыТеста); | ||||
|     OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture"             , ПараметрыТеста); | ||||
| 
 | ||||
|     GreenMax_СформироватьПараметрыДоступа(ПараметрыТеста); | ||||
|     //GreenMax_РазлогинитьИнстанс(ПараметрыТеста); | ||||
|     //GreenMax_ПолучитьКодАвторизации(ПараметрыТеста); | ||||
|     //GreenMax_ОтправитьКодАвторизации(ПараметрыТеста); | ||||
|     GreenMax_ПолучитьСостояниеИнстанса(ПараметрыТеста); | ||||
|     GreenMax_ПолучитьНастройкиИнстанса(ПараметрыТеста); | ||||
|     GreenMax_УстановитьНастройкиИнстанса(ПараметрыТеста); | ||||
|     GreenMax_ПолучитьСтруктуруНастроекИнстанса(ПараметрыТеста); | ||||
|     GreenMax_УстановитьКартинкуПрофиля(ПараметрыТеста); | ||||
|     GreenMax_ПолучитьИнформациюОбАккаунте(ПараметрыТеста); | ||||
|     GreenMax_ПерезапуститьИнстанс(ПараметрыТеста); | ||||
|      | ||||
| КонецПроцедуры | ||||
| 
 | ||||
| @@ -23328,7 +23336,125 @@ | ||||
|     Обработать(Результат, "GreenMax", "ОтправитьКодАвторизации"); | ||||
| 
 | ||||
| КонецПроцедуры | ||||
| 
 | ||||
| Процедура GreenMax_ПолучитьСостояниеИнстанса(ПараметрыФункции) | ||||
| 
 | ||||
|     ApiUrl           = ПараметрыФункции["GreenMax_ApiURL"]; | ||||
|     MediaUrl         = ПараметрыФункции["GreenMax_MediaURL"]; | ||||
|     IdInstance       = ПараметрыФункции["GreenMax_IdInstance"]; | ||||
|     ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; | ||||
| 
 | ||||
|     ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); | ||||
|     Результат        = OPI_GreenMax.ПолучитьСостояниеИнстанса(ПараметрыДоступа); | ||||
| 
 | ||||
|     // END | ||||
| 
 | ||||
|     Обработать(Результат, "GreenMax", "ПолучитьСостояниеИнстанса"); | ||||
| 
 | ||||
| КонецПроцедуры | ||||
| 
 | ||||
| Процедура GreenMax_ПерезапуститьИнстанс(ПараметрыФункции) | ||||
| 
 | ||||
|     ApiUrl           = ПараметрыФункции["GreenMax_ApiURL"]; | ||||
|     MediaUrl         = ПараметрыФункции["GreenMax_MediaURL"]; | ||||
|     IdInstance       = ПараметрыФункции["GreenMax_IdInstance"]; | ||||
|     ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; | ||||
| 
 | ||||
|     ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); | ||||
|     Результат        = OPI_GreenMax.ПерезапуститьИнстанс(ПараметрыДоступа); | ||||
| 
 | ||||
|     // END | ||||
| 
 | ||||
|     Обработать(Результат, "GreenMax", "ПерезапуститьИнстанс"); | ||||
| 
 | ||||
| КонецПроцедуры | ||||
|      | ||||
| Процедура GreenMax_ПолучитьСтруктуруНастроекИнстанса(ПараметрыФункции) | ||||
| 
 | ||||
|     Результат = OPI_GreenMax.ПолучитьСтруктуруНастроекИнстанса(); | ||||
| 
 | ||||
|     // END | ||||
| 
 | ||||
|     Обработать(Результат, "GreenMax", "ПолучитьСтруктуруНастроекИнстанса"); | ||||
| 
 | ||||
|     Результат = OPI_GreenMax.ПолучитьСтруктуруНастроекИнстанса(Истина); | ||||
| 
 | ||||
|     Обработать(Результат, "GreenMAx", "ПолучитьСтруктуруНастроекИнстанса", "Пустая"); | ||||
| 
 | ||||
| КонецПроцедуры | ||||
| 
 | ||||
| Процедура GreenMax_ПолучитьНастройкиИнстанса(ПараметрыФункции) | ||||
| 
 | ||||
|     ApiUrl           = ПараметрыФункции["GreenMax_ApiURL"]; | ||||
|     MediaUrl         = ПараметрыФункции["GreenMax_MediaURL"]; | ||||
|     IdInstance       = ПараметрыФункции["GreenMax_IdInstance"]; | ||||
|     ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; | ||||
| 
 | ||||
|     ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); | ||||
|     Результат        = OPI_GreenMax.ПолучитьНастройкиИнстанса(ПараметрыДоступа); | ||||
| 
 | ||||
|     // END | ||||
| 
 | ||||
|     Обработать(Результат, "GreenMax", "ПолучитьНастройкиИнстанса", , ПараметрыФункции); | ||||
| 
 | ||||
| КонецПроцедуры | ||||
| 
 | ||||
| Процедура GreenMax_УстановитьНастройкиИнстанса(ПараметрыФункции) | ||||
| 
 | ||||
|     ApiUrl           = ПараметрыФункции["GreenMax_ApiURL"]; | ||||
|     MediaUrl         = ПараметрыФункции["GreenMax_MediaURL"]; | ||||
|     IdInstance       = ПараметрыФункции["GreenMax_IdInstance"]; | ||||
|     ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; | ||||
| 
 | ||||
|     ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); | ||||
| 
 | ||||
|     СтруктураНастроек = Новый Структура; | ||||
|     СтруктураНастроек.Вставить("markIncomingMessagesReaded" , "no"); | ||||
|     СтруктураНастроек.Вставить("outgoingWebhook"            , "no"); | ||||
|     СтруктураНастроек.Вставить("outgoingAPIMessageWebhook"  , "yes"); | ||||
| 
 | ||||
|     Результат = OPI_GreenMax.УстановитьНастройкиИнстанса(СтруктураНастроек, ПараметрыДоступа); | ||||
| 
 | ||||
|     // END | ||||
| 
 | ||||
|     Обработать(Результат, "GreenMax", "УстановитьНастройкиИнстанса"); | ||||
| 
 | ||||
| КонецПроцедуры | ||||
| 
 | ||||
| Процедура GreenMax_УстановитьКартинкуПрофиля(ПараметрыФункции) | ||||
| 
 | ||||
|     ApiUrl           = ПараметрыФункции["GreenMax_ApiURL"]; | ||||
|     MediaUrl         = ПараметрыФункции["GreenMax_MediaURL"]; | ||||
|     IdInstance       = ПараметрыФункции["GreenMax_IdInstance"]; | ||||
|     ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; | ||||
| 
 | ||||
|     Картинка = ПараметрыФункции["Picture"]; // URL, Путь или Двоичные данные | ||||
| 
 | ||||
|     ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); | ||||
|     Результат        = OPI_GreenMax.УстановитьКартинкуПрофиля(ПараметрыДоступа, Картинка); | ||||
| 
 | ||||
|     // END | ||||
| 
 | ||||
|     Обработать(Результат, "GreenMax", "УстановитьКартинкуПрофиля"); | ||||
| 
 | ||||
| КонецПроцедуры | ||||
| 
 | ||||
| Процедура GreenMax_ПолучитьИнформациюОбАккаунте(ПараметрыФункции) | ||||
| 
 | ||||
|     ApiUrl           = ПараметрыФункции["GreenMax_ApiURL"]; | ||||
|     MediaUrl         = ПараметрыФункции["GreenMax_MediaURL"]; | ||||
|     IdInstance       = ПараметрыФункции["GreenMax_IdInstance"]; | ||||
|     ApiTokenInstance = ПараметрыФункции["GreenMax_Token"]; | ||||
| 
 | ||||
|     ПараметрыДоступа = OPI_GreenMax.СформироватьПараметрыДоступа(ApiUrl, MediaUrl, IdInstance, ApiTokenInstance); | ||||
|     Результат        = OPI_GreenMax.ПолучитьИнформациюОбАккаунте(ПараметрыДоступа); | ||||
| 
 | ||||
|     // END | ||||
| 
 | ||||
|     Обработать(Результат, "GreenMax", "ПолучитьИнформациюОбАккаунте"); | ||||
| 
 | ||||
| КонецПроцедуры | ||||
| 
 | ||||
| #КонецОбласти | ||||
| 
 | ||||
| #КонецОбласти | ||||
|   | ||||
		Reference in New Issue
	
	Block a user