1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2025-02-05 13:14:55 +02:00
precommit4onec/features/КомандаВыполнениеСценариев.feature
Берлинский Николай Семенович (000085318) 043d58edd8 ORAIS-517 / Сортировка состава определяемых типов
2023-06-09 07:46:00 +03:00

158 lines
18 KiB
Gherkin

# language: ru
Функциональность: Выполнение сценариев
Как разработчик
Я хочу быть уверенным, что precommit4onec корректно обрабатывает выполнение сценариев для каталога
Контекст:
Допустим Я очищаю параметры команды "oscript" в контексте
И я очищаю параметры команды "git" в контексте
И Я устанавливаю кодировку вывода "utf-8" команды "git"
И я включаю отладку лога с именем "oscript.app.precommit4onec"
И я создаю временный каталог и запоминаю его как "КаталогРепозиториев"
И я переключаюсь во временный каталог "КаталогРепозиториев"
И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "РабочийКаталог"
И я создаю каталог "src" в рабочем каталоге
И я установил рабочий каталог как текущий каталог
Сценарий: Разбор отчетов, обработок, конфигурации на исходники.
Когда Я копирую файл "tests/fixtures/demo/DemoОбработка.epf" в каталог репозитория "РабочийКаталог"
И я копирую файл "tests/fixtures/demo/DemoОтчет.erf" в каталог репозитория "РабочийКаталог"
И я копирую файл "tests/fixtures/demo/DemoРасширение.cfe" в каталог репозитория "РабочийКаталог"
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ."
Тогда В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form\Module.bsl"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form\form"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Templates\ОсновнаяСхемаКомпоновкиДанных.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Templates\ОсновнаяСхемаКомпоновкиДанных\Ext\Template.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form.bin"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяУФ.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяУФ\Ext\Form.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form.bin"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяУФ.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяУФ\Ext\Form.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\Module.bsl"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\form"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\ConfigDumpInfo.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\Configuration.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\CommonModules\DemoРасш_Demo.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\CommonModules\DemoРасш_Demo\Ext\Module.bsl"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\Subsystems\DemoРасш_Demo.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\Languages\Русский.xml"
Сценарий: Успешный коммит в репозиторий
Когда Я копирую файл "tests\fixtures\ПроверкаДублейПроцедурПоложительныйТест.bsl" в каталог репозитория "РабочийКаталог"
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ."
Тогда Вывод команды "oscript" не содержит "обнаружены неуникальные имена методов"
Сценарий: Прекоммит вывел ошибку о неуникальных именах
Когда Я копирую файл "tests\fixtures\ПроверкаДублейПроцедурНегативныйТест.bsl" в каталог репозитория "РабочийКаталог"
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ."
Тогда Вывод команды "oscript" содержит "обнаружены неуникальные имена методов"
Сценарий: Прекоммит вывел ошибку о нецензурных словах
Когда Я копирую каталог "ПроверкаНецензурныхСлов" из каталога "tests\fixtures" проекта в рабочий каталог
И Я копирую файл "v8config.json" из каталога "tests\fixtures\ХранениеРазныхНастроек" проекта в рабочий каталог
И Я копирую файл "НецензурныеСлова.txt" из каталога "." проекта в рабочий каталог
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ПроверкаНецензурныхСлов -rules ПроверкаНецензурныхСлов.os"
Тогда Вывод команды "oscript" содержит
| ОШИБКА |
| обнаружены нецензурные слова |
Сценарий: Прекоммит не вывел ошибку о нецензурных словах при отсутствии словаря
Когда Я копирую каталог "ПроверкаНецензурныхСлов" из каталога "tests\fixtures" проекта в рабочий каталог
И Я копирую файл "v8config.json" из каталога "tests\fixtures\ХранениеРазныхНастроек" проекта в рабочий каталог
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ПроверкаНецензурныхСлов -rules ПроверкаНецензурныхСлов.os"
Тогда Вывод команды "oscript" не содержит
| ОШИБКА |
| обнаружены нецензурные слова |
Сценарий: Прекоммит не упал и не вывел ошибку о нецензурных словах при отсутствии настройки сценария
Когда Я копирую каталог "ПроверкаНецензурныхСлов" из каталога "tests\fixtures" проекта в рабочий каталог
И Я копирую файл "v8config.json" из каталога "tests\fixtures\ХранениеРазныхНастроек\НетНастроекПроверкаНецензурныхСлов" проекта в рабочий каталог
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ПроверкаНецензурныхСлов -rules ПроверкаНецензурныхСлов.os"
Тогда Вывод команды "oscript" не содержит
| ОШИБКА |
| В результате выполнения возникли исключения |
| Значение не является значением объектного типа |
| обнаружены нецензурные слова |
Сценарий: Прекоммит не упал и не вывел ошибку о нецензурных словах при отсутствии настроек сценариев
Когда Я копирую каталог "ПроверкаНецензурныхСлов" из каталога "tests\fixtures" проекта в рабочий каталог
И Я копирую файл "v8config.json" из каталога "tests\fixtures\ХранениеРазныхНастроек\НетНастроекНастройкиСценариев" проекта в рабочий каталог
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ПроверкаНецензурныхСлов -rules ПроверкаНецензурныхСлов.os"
Тогда Вывод команды "oscript" не содержит
| ОШИБКА |
| В результате выполнения возникли исключения |
| Значение не является значением объектного типа |
| обнаружены нецензурные слова |
Сценарий: Прекоммит вывел ошибку о некорректной инструкции препроцессора
Когда Я копирую файл "ОшибкаНаписания.bsl" из каталога "tests\fixtures\ПроверкаКорректностиИнструкцийПрепроцессора" проекта в подкаталог "src" рабочего каталога
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir src -rules ПроверкаКорректностиИнструкцийПрепроцессора.os"
Тогда Вывод команды "oscript" содержит
| ОШИБКА |
| Неизвестная инструкция [Када] в строке [4] |
| Неизвестная инструкция [ТолстыйКлиентУправляемоеПриложениt] в строке [4] |
| Неизвестная инструкция [Тада] в строке [4] |
| Неизвестная инструкция [Фсьо] в строке [5] |
| Пустая инструкция в строке [9] |
Сценарий: Прекоммит вывел ошибку о нарушении парности инструкций препроцессора
Когда Я копирую файл "ОшибкаПарности.bsl" из каталога "tests\fixtures\ПроверкаКорректностиИнструкцийПрепроцессора" проекта в подкаталог "src" рабочего каталога
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir src -rules ПроверкаКорректностиИнструкцийПрепроцессора.os"
Тогда Вывод команды "oscript" содержит
| ОШИБКА |
| Нарушена парность инструкций [#Если/#КонецЕсли] |
Сценарий: Прекоммит вывел ошибку о нарушении порядка инструкций препроцессора
Когда Я копирую каталог "ОшибкиПорядка" из каталога "tests\fixtures\ПроверкаКорректностиИнструкцийПрепроцессора" проекта в подкаталог "src" рабочего каталога
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir src -rules ПроверкаКорректностиИнструкцийПрепроцессора.os"
Тогда Вывод команды "oscript" содержит
| ОШИБКА |
| Нарушен порядок инструкции [ИначеЕсли] в строке [1] |
| Нарушен порядок инструкции [Иначе] в строке [2] |
| Нарушен порядок инструкции [КонецЕсли] в строке [3] |
| Нарушен порядок инструкции [КонецЕсли] в строке [4] |
| Нарушен порядок инструкции [ИначеЕсли] в строке [5] |
Сценарий: Прекоммит корректно обрабатывает все возможные варианты инструкций препроцессора
Когда Я копирую файл "КорректныеВсевозможныеВарианты.bsl" из каталога "tests\fixtures\ПроверкаКорректностиИнструкцийПрепроцессора" проекта в подкаталог "src" рабочего каталога
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir src -rules ПроверкаКорректностиИнструкцийПрепроцессора.os"
Тогда Вывод команды "oscript" не содержит
| ОШИБКА |
| Нарушен порядок инструкции |
| Неизвестная инструкция |
| Нарушена парность инструкций |
Сценарий: Прекоммит использует локальные настройки репозитория вместо глобальных
Когда Я копирую каталог "localscenario" из каталога "tests\fixtures" проекта в рабочий каталог
И Я копирую файл "v8config.json" из каталога "tests\fixtures" проекта в рабочий каталог
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ."
И Я сообщаю вывод команды "oscript"
Тогда Вывод команды "oscript" содержит "Используем локальные настройки"
Сценарий: Разбор конфигурации на исходники с последующим применением правил к распакованным модулям.
Когда Я копирую каталог "src" из каталога "tests/fixtures/cf-common-forms" проекта в рабочий каталог
И я копирую файл "v8config.json" из каталога "tests/fixtures/cf-common-forms" проекта в рабочий каталог
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules ."
Тогда В каталоге "src\Catalogs\Справочник1\Forms\ФормаЭлемента\Ext\Form" репозитория "РабочийКаталог" есть файл "Module.bsl"
И файл "src\Catalogs\Справочник1\Forms\ФормаЭлемента\Ext\Form\Module.bsl" в рабочем каталоге содержит
"""
Процедура ПриОткрытии()
Сообщить("Hello, world!");
Условие = Истина;
Если Условие Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
"""