Skip to content

Commit a001f81

Browse files
Copilotnixel2007
andcommitted
test: add coverage for launch script deletion and error on missing package
Co-authored-by: nixel2007 <1132840+nixel2007@users.noreply.github.com>
1 parent 61f56d7 commit a001f81

1 file changed

Lines changed: 97 additions & 4 deletions

File tree

tests/uninstall-test.os

Lines changed: 97 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414

1515
ИменаТестов.Добавить("ТестДолжен_УдалитьЛокальноУстановленныйПакет");
1616
ИменаТестов.Добавить("ТестДолжен_УдалитьГлобальноУстановленныйПакет");
17+
ИменаТестов.Добавить("ТестДолжен_УдалитьЛокальныеСкриптыЗапуска");
18+
ИменаТестов.Добавить("ТестДолжен_УдалитьГлобальныеСкриптыЗапуска");
19+
ИменаТестов.Добавить("ТестДолжен_ВыброситьИсключениеДляНеустановленногоПакета");
1720

1821
Возврат ИменаТестов;
1922

@@ -24,10 +27,16 @@
2427

2528
Процедура ПослеЗапускаТеста() Экспорт
2629
мВременныеФайлы.Удалить();
27-
ПутьККаталогу = ОбъединитьПути(ТекущийКаталог(), "oscript_modules", "test");
28-
Если ФС.КаталогСуществует(ПутьККаталогу) Тогда
29-
УдалитьФайлы(ПутьККаталогу);
30-
КонецЕсли;
30+
31+
МассивКаталогов = Новый Массив;
32+
МассивКаталогов.Добавить(ОбъединитьПути(ТекущийКаталог(), "oscript_modules", "test"));
33+
МассивКаталогов.Добавить(ОбъединитьПути(ТекущийКаталог(), "oscript_modules", "testapp"));
34+
35+
Для Каждого ПутьККаталогу Из МассивКаталогов Цикл
36+
Если ФС.КаталогСуществует(ПутьККаталогу) Тогда
37+
УдалитьФайлы(ПутьККаталогу);
38+
КонецЕсли;
39+
КонецЦикла;
3140
КонецПроцедуры
3241

3342
Функция СобратьТестовыйПакет()
@@ -43,6 +52,19 @@
4352

4453
КонецФункции
4554

55+
Функция СобратьТестовыйПакетСПриложением()
56+
57+
Сборщик = Новый СборщикПакета;
58+
КаталогСборки = мВременныеФайлы.СоздатьКаталог();
59+
60+
Сборщик.СобратьПакет(
61+
ОбъединитьПути(ТекущийСценарий().Каталог, "testpackage", "testpackage-with-app"),
62+
Неопределено, КаталогСборки);
63+
64+
Возврат Новый Файл(ОбъединитьПути(КаталогСборки, "testapp-1.0.0.ospx"));
65+
66+
КонецФункции
67+
4668
Процедура ТестДолжен_УдалитьЛокальноУстановленныйПакет() Экспорт
4769

4870
ФайлПакета = СобратьТестовыйПакет();
@@ -84,4 +106,75 @@
84106

85107
КонецПроцедуры
86108

109+
Процедура ТестДолжен_УдалитьЛокальныеСкриптыЗапуска() Экспорт
110+
111+
ФайлПакета = СобратьТестовыйПакетСПриложением();
112+
113+
// Устанавливаем пакет локально с файлами запуска
114+
Установщик = Новый МенеджерУстановкиПакетов();
115+
Установщик.УстановитьРежимУстановкиПакетов(РежимУстановкиПакетов.Локально);
116+
Установщик.УстановитьПакетИзАрхива(ФайлПакета.ПолноеИмя, Истина);
117+
118+
КаталогСкриптов = ОбъединитьПути(КонстантыOpm.ЛокальныйКаталогУстановкиПакетов, "bin");
119+
ПутьКПакету = ОбъединитьПути(КонстантыOpm.ЛокальныйКаталогУстановкиПакетов, "testapp");
120+
121+
Ожидаем.Что(ФС.КаталогСуществует(ПутьКПакету), "Каталог пакета должен существовать после установки").ЭтоИстина();
122+
123+
// Проверяем, что скрипт запуска создан (sh-скрипт на Linux)
124+
ПутьКСкрипту = ОбъединитьПути(КаталогСкриптов, "testapp");
125+
Ожидаем.Что(ФС.ФайлСуществует(ПутьКСкрипту), "Скрипт запуска должен существовать после установки").ЭтоИстина();
126+
127+
// Удаляем пакет
128+
РаботаСПакетами.УдалитьПакет("testapp", РежимУстановкиПакетов.Локально);
129+
130+
// Проверяем, что каталог пакета удалён
131+
Ожидаем.Что(ФС.КаталогСуществует(ПутьКПакету), "Каталог пакета не должен существовать после удаления").ЭтоЛожь();
132+
133+
// Проверяем, что скрипт запуска удалён
134+
Ожидаем.Что(ФС.ФайлСуществует(ПутьКСкрипту), "Скрипт запуска не должен существовать после удаления").ЭтоЛожь();
135+
136+
КонецПроцедуры
137+
138+
Процедура ТестДолжен_УдалитьГлобальныеСкриптыЗапуска() Экспорт
139+
140+
ФайлПакета = СобратьТестовыйПакетСПриложением();
141+
142+
// Устанавливаем пакет глобально с файлами запуска
143+
Установщик = Новый МенеджерУстановкиПакетов();
144+
Установщик.УстановитьПакетИзАрхива(ФайлПакета.ПолноеИмя);
145+
146+
КаталогСистемныхБиблиотек = ОбъединитьПути(КаталогПрограммы(), ПолучитьЗначениеСистемнойНастройки("lib.system"));
147+
ПутьКПакету = ОбъединитьПути(КаталогСистемныхБиблиотек, "testapp");
148+
149+
Ожидаем.Что(ФС.КаталогСуществует(ПутьКПакету), "Каталог пакета должен существовать после глобальной установки").ЭтоИстина();
150+
151+
// Проверяем, что скрипт запуска создан
152+
КаталогСкриптов = КаталогПрограммы();
153+
ПутьКСкрипту = ОбъединитьПути(КаталогСкриптов, "testapp");
154+
Ожидаем.Что(ФС.ФайлСуществует(ПутьКСкрипту), "Скрипт запуска должен существовать после глобальной установки").ЭтоИстина();
155+
156+
// Удаляем пакет глобально
157+
РаботаСПакетами.УдалитьПакет("testapp", РежимУстановкиПакетов.Глобально);
158+
159+
// Проверяем, что каталог пакета удалён
160+
Ожидаем.Что(ФС.КаталогСуществует(ПутьКПакету), "Каталог пакета не должен существовать после глобального удаления").ЭтоЛожь();
161+
162+
// Проверяем, что скрипт запуска удалён
163+
Ожидаем.Что(ФС.ФайлСуществует(ПутьКСкрипту), "Скрипт запуска не должен существовать после глобального удаления").ЭтоЛожь();
164+
165+
КонецПроцедуры
166+
167+
Процедура ТестДолжен_ВыброситьИсключениеДляНеустановленногоПакета() Экспорт
168+
169+
ИсключениеВыброшено = Ложь;
170+
Попытка
171+
РаботаСПакетами.УдалитьПакет("несуществующий-пакет", РежимУстановкиПакетов.Локально);
172+
Исключение
173+
ИсключениеВыброшено = Истина;
174+
КонецПопытки;
175+
176+
Ожидаем.Что(ИсключениеВыброшено, "Должно быть выброшено исключение для неустановленного пакета").ЭтоИстина();
177+
178+
КонецПроцедуры
179+
87180
мВременныеФайлы = Новый МенеджерВременныхФайлов;

0 commit comments

Comments
 (0)