Skip to content

Commit 5dc0e19

Browse files
committed
фича Приоритеты настроек
и новые переменные окружения - RUNNER_SRC аналог --src - RUNNER_NEW_VERSION для --new-version
1 parent e99a3ea commit 5dc0e19

File tree

2 files changed

+248
-0
lines changed

2 files changed

+248
-0
lines changed
Lines changed: 246 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
# language: ru
2+
3+
Функционал: Приоритеты настроек
4+
Как разработчик
5+
Я хочу иметь возможность использовать различные настройки команды с правильным приоритетом
6+
Чтобы выполнять коллективную разработку проекта 1С с помощью удобных шаблонов
7+
приоритет настроек, от максимального до минимального:
8+
- командная строка
9+
- переменные окружения
10+
- json-файл настроек, заданный в --settings
11+
- env.json - файл настроек в корне проекта, если явно не указаны настройки через --settings
12+
внутри json-файлов следующие приоритеты, от максимального до минимального:
13+
- настройки секции по имени команды
14+
- настройки секции по имени "--default"
15+
16+
Контекст:
17+
Дано Я сохраняю значение "" в переменную окружения "RUNNER_SRC"
18+
И Я очищаю параметры команды "oscript" в контексте
19+
20+
Сценарий: Подготовка ИБ
21+
# Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner"
22+
# Допустим я включаю отладку лога с именем "oscript.lib.v8runner"
23+
# И Я сохраняю значение "DEBUG" в переменную окружения "LOGOS_LEVEL"
24+
# Допустим я включаю отладку лога с именем "bdd"
25+
26+
# Допустим Я создаю временный каталог и сохраняю его в контекст
27+
# И Я устанавливаю временный каталог как рабочий каталог
28+
29+
# Допустим Я создаю каталог "build/out" в рабочем каталоге
30+
# И Я копирую каталог "cf" из каталога "tests/fixtures" проекта в рабочий каталог
31+
32+
# И Я установил рабочий каталог как текущий каталог
33+
# Когда Я сохраняю каталог проекта в контекст
34+
35+
Допустим я подготовил репозиторий и рабочий каталог проекта
36+
И Я копирую каталог "cf" из каталога "tests/fixtures" проекта в рабочий каталог
37+
# И я подготовил рабочую базу проекта "./build/ib" по умолчанию
38+
39+
# И Я сохраняю значение "INFO" в переменную окружения "LOGOS_LEVEL"
40+
# Дано Я очищаю параметры команды "oscript" в контексте
41+
42+
# Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os init-dev --src ./cf --nocacheuse --language ru"
43+
# Тогда Вывод команды "oscript" содержит "Обновление конфигурации базы данных успешно завершено"
44+
# # Тогда Вывод команды "oscript" содержит "Database configuration successfully updated"
45+
# # Тогда Я показываю вывод команды
46+
47+
# И Код возврата команды "oscript" равен 0
48+
49+
И Я очищаю параметры команды "oscript" в контексте
50+
51+
Сценарий: Полная проверка
52+
Когда Я сохраняю значение "ПутьИзПеременныхОкружения" в переменную окружения "RUNNER_SRC"
53+
54+
Когда Я создаю файл "add.json" с текстом
55+
"""
56+
{
57+
"--default": {
58+
"--new-version":"ВерсияИзФайла-Умолчание-Settings",
59+
"--src":"ПутьИзФайла-Умолчание-Settings"
60+
},
61+
"set-version": {
62+
"--new-version":"ВерсияИзФайла-Команда-Settings",
63+
"--src":"ПутьИзФайла-Команда-Settings"
64+
}
65+
}
66+
"""
67+
Когда Я создаю файл "env.json" с текстом
68+
"""
69+
{
70+
"--default": {
71+
"--new-version":"ПользовательИзФайла-Умолчание",
72+
"--src":"ПутьИзФайла-Умолчание"
73+
},
74+
"set-version": {
75+
"--new-version":"ВерсияИзФайла-Команда",
76+
"--src":"ПутьИзФайла-Команда"
77+
}
78+
}
79+
"""
80+
81+
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os set-version --new-version ВерсияИзКоманднойСтроки --src ПутьИзКоманднойСтроки --language ru"
82+
83+
# Тогда Я показываю вывод команды
84+
85+
Тогда Вывод команды "oscript" содержит
86+
| Изменяю версию в исходниках конфигурации 1С на ВерсияИзКоманднойСтроки - ПутьИзКоманднойСтроки |
87+
88+
Сценарий: Настройки из переменных окружения приоритетнее файла настроек из --settings
89+
И Я сохраняю значение "ПутьИзПеременныхОкружения" в переменную окружения "RUNNER_SRC"
90+
Когда Я создаю файл "add.json" с текстом
91+
"""
92+
{
93+
"set-version": {
94+
"--new-version":"ВерсияИзФайла-Команда-Settings",
95+
"--src":"ПутьИзФайла-Команда-Settings"
96+
}
97+
}
98+
"""
99+
Когда Я создаю файл "env.json" с текстом
100+
"""
101+
{
102+
"set-version": {
103+
"--new-version":"ВерсияИзФайла-Команда",
104+
"--src":"ПутьИзФайла-Команда"
105+
}
106+
}
107+
"""
108+
109+
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os set-version --settings add.json --new-version ВерсияИзКоманднойСтроки --language ru"
110+
111+
Тогда Вывод команды "oscript" содержит
112+
| Изменяю версию в исходниках конфигурации 1С на ВерсияИзКоманднойСтроки - ПутьИзПеременныхОкружения |
113+
114+
Сценарий: Настройки из переменных окружения приоритетнее файла настроек по умолчанию
115+
И Я сохраняю значение "ПутьИзПеременныхОкружения" в переменную окружения "RUNNER_SRC"
116+
Когда Я создаю файл "env.json" с текстом
117+
"""
118+
{
119+
"set-version": {
120+
"--new-version":"ВерсияИзФайла-Команда",
121+
"--src":"ПутьИзФайла-Команда"
122+
}
123+
}
124+
"""
125+
126+
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os set-version --new-version ВерсияИзКоманднойСтроки --language ru"
127+
128+
Тогда Вывод команды "oscript" содержит
129+
| Изменяю версию в исходниках конфигурации 1С на ВерсияИзКоманднойСтроки - ПутьИзПеременныхОкружения |
130+
131+
Сценарий: Настройки в json-файле по ключу --settings приоритетнее файла настроек по умолчанию
132+
Когда Я создаю файл "add.json" с текстом
133+
"""
134+
{
135+
"set-version": {
136+
"--new-version":"ВерсияИзФайла-Команда-Settings",
137+
"--src":"ПутьИзФайла-Команда-Settings"
138+
}
139+
}
140+
"""
141+
Когда Я создаю файл "env.json" с текстом
142+
"""
143+
{
144+
"set-version": {
145+
"--new-version":"ВерсияИзФайла-Команда",
146+
"--src":"ПутьИзФайла-Команда"
147+
}
148+
}
149+
"""
150+
151+
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os set-version --settings add.json --new-version ВерсияИзКоманднойСтроки --language ru"
152+
153+
Тогда Вывод команды "oscript" содержит
154+
| Изменяю версию в исходниках конфигурации 1С на ВерсияИзКоманднойСтроки - ПутьИзФайла-Команда-Settings |
155+
156+
Сценарий: Если задан ключ --settings, то файл настроек по умолчанию (env.json) не используется
157+
Когда Я создаю файл "add.json" с текстом
158+
"""
159+
{
160+
"set-version": {
161+
"--src":"ПутьИзФайла-Команда-Settings"
162+
}
163+
}
164+
"""
165+
Когда Я создаю файл "env.json" с текстом
166+
"""
167+
{
168+
"set-version": {
169+
"--new-version":"ВерсияИзФайла-Команда"
170+
}
171+
}
172+
"""
173+
174+
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os set-version --settings add.json --language ru"
175+
И Я показываю вывод команды
176+
Тогда Вывод команды "oscript" содержит
177+
| Изменяю версию в исходниках конфигурации 1С на - ПутьИзФайла-Команда-Settings |
178+
179+
Сценарий: Настройки команды в файле настроек по ключу --settings приоритетнее настроек по умолчанию из ключа "--default"
180+
181+
Дано Я пропускаю этот сценарий в Windows
182+
183+
Когда Я создаю файл "add.json" с текстом
184+
"""
185+
{
186+
"--default": {
187+
"--new-version":"ВерсияИзФайла-Умолчание-Settings",
188+
"--src":"ПутьИзФайла-Умолчание-Settings"
189+
},
190+
"set-version": {
191+
"--new-version":"ВерсияИзФайла-Команда-Settings"
192+
}
193+
}
194+
"""
195+
Когда Я создаю файл "env.json" с текстом
196+
"""
197+
{
198+
"set-version": {
199+
"--new-version":"ВерсияИзФайла-Команда",
200+
"--src":"ПутьИзФайла-Команда"
201+
}
202+
}
203+
"""
204+
205+
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os set-version --settings add.json --new-version ВерсияИзКоманднойСтроки --language ru"
206+
207+
Тогда Вывод команды "oscript" содержит
208+
| Изменяю версию в исходниках конфигурации 1С на ВерсияИзКоманднойСтроки - ПутьИзФайла-Умолчание-Settings |
209+
210+
Сценарий: Настройки из файла по умолчанию (env.json) дополняют нехватающие настройки
211+
Когда Я создаю файл "env.json" с текстом
212+
"""
213+
{
214+
"set-version": {
215+
"--new-version":"ВерсияИзФайла-Команда",
216+
"--src":"ПутьИзФайла-Команда"
217+
}
218+
}
219+
"""
220+
221+
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os set-version --new-version ВерсияИзКоманднойСтроки --language ru"
222+
223+
Тогда Вывод команды "oscript" содержит
224+
| Изменяю версию в исходниках конфигурации 1С на ВерсияИзКоманднойСтроки - ПутьИзФайла-Команда |
225+
226+
Сценарий: Настройки команды из файла по умолчанию (env.json) приоритетнее настроек по умолчанию из ключа "--default" в этом файле
227+
228+
Дано Я пропускаю этот сценарий в Windows
229+
230+
Когда Я создаю файл "env.json" с текстом
231+
"""
232+
{
233+
"--default": {
234+
"--new-version":"ПользовательИзФайла-Умолчание",
235+
"--src":"ПутьИзФайла-Умолчание"
236+
},
237+
"set-version": {
238+
"--new-version":"ВерсияИзФайла-Команда"
239+
}
240+
}
241+
"""
242+
243+
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os set-version --new-version ВерсияИзКоманднойСтроки --language ru"
244+
245+
Тогда Вывод команды "oscript" содержит
246+
| Изменяю версию в исходниках конфигурации 1С на ВерсияИзКоманднойСтроки - ПутьИзФайла-Умолчание |

src/Модули/МенеджерКомандПриложения.os

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@
155155
СоответствиеПеременных.Вставить("RUNNER_TESTSPATH", "testsPath");
156156
СоответствиеПеременных.Вставить("RUNNER_CLUSTERADMIN_USER", "--cluster-admin");
157157
СоответствиеПеременных.Вставить("RUNNER_CLUSTERADMIN_PWD", "--cluster-pwd");
158+
СоответствиеПеременных.Вставить("RUNNER_SRC", "--src");
159+
СоответствиеПеременных.Вставить("RUNNER_NEW_VERSION", "--new-version");
158160

159161
Возврат Новый ФиксированноеСоответствие(СоответствиеПеременных);
160162
КонецФункции

0 commit comments

Comments
 (0)