1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2025-01-20 02:59:51 +02:00
precommit4onec/features/КомандаВыполнениеСценариев.feature
2021-09-27 08:27:25 +03:00

103 lines
12 KiB
Gherkin

# language: ru
Функциональность: Выполнение прекоммита
Как разработчик
Я хочу быть уверенным, что precommit4onec корректно обрабатывает выполнение сценариев для каталога
Контекст:
Допустим Я очищаю параметры команды "oscript" в контексте
И я очищаю параметры команды "git" в контексте
И Я устанавливаю кодировку вывода "utf-8" команды "git"
И я включаю отладку лога с именем "oscript.app.precommit4onec"
И я создаю временный каталог и запоминаю его как "КаталогРепозиториев"
И я переключаюсь во временный каталог "КаталогРепозиториев"
И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "РабочийКаталог"
И я установил рабочий каталог как текущий каталог
Сценарий: Разбор отчетов, обработок, конфигурации на исходники.
Когда Я копирую файл "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\ПроверкаНецензурныхСлов.bsl" в каталог репозитория "РабочийКаталог"
И Я копирую файл "v8config.json" из каталога "tests\fixtures\ХранениеРазныхНастроек" проекта в рабочий каталог
И Я копирую файл "НецензурныеСлова.txt" из каталога "." проекта в рабочий каталог
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ."
Тогда Вывод команды "oscript" содержит "обнаружены нецензурные слова"
Сценарий: Прекоммит вывел ошибку о некорректных инструкциях препроцессора
Когда Я копирую файл "tests\fixtures\ПроверкаКорректностиИнструкцийПрепроцессора.bsl" в каталог репозитория "РабочийКаталог"
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ."
Тогда Вывод команды "oscript" содержит "ошибка в написании инструкции"
Сценарий: Прекоммит вывел ошибку о некорректных инструкциях препроцессона
Когда Я копирую файл "tests\fixtures\ПроверкаКорректностиИнструкцийПрепроцессора2.bsl" в каталог репозитория "РабочийКаталог"
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ."
Тогда Вывод команды "oscript" содержит "ошибки в порядке #Если и #КонецЕсли"
Сценарий: Прекоммит корректно обрабатывает концевые и лидирующие пробелы у инструкций
Когда Я копирую файл "tests\fixtures\ПроверкаКорректностиИнструкцийПрепроцессора3.bsl" в каталог репозитория "РабочийКаталог"
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ."
Тогда Вывод команды "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!");
Условие = Истина;
Если Условие Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
"""