1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2026-05-20 10:00:46 +02:00
Files
OpenIntegrations/AGENTS.md
T
2026-04-12 16:01:05 +03:00

51 lines
4.6 KiB
Markdown

# Руководство для AGENTS
## Каноничный исходный код
- Основная реализация библиотеки находится в `src/ru/BSL/OpenIntegrations`.
- Если поведение кода и тестов расходится, в первую очередь считать этот каталог источником истины.
## Каноничные тесты
- Основные BSL-тесты находятся в `src/ru/BSL/Tests`.
- При разборе бизнес-логики сначала анализировать эти тесты, и только затем зеркала.
## Зеркало OneScript
- Зеркальные файлы OneScript находятся в `src/ru/OInt` (включая `src/ru/OInt/tests`).
- Использовать этот каталог для проверки CLI/runtime-паритета, но не как первый источник при разборе BSL-регрессий.
## Соглашения по тестовым модулям
- У каждого функционального модуля есть два связанных тестовых модуля с тем же базовым именем:
- основные тесты с префиксом `OPIt_`
- тесты CLI с префиксом `OPItc_`
- функциональные модули используют префикс `OPI_`
- Не редактировать модули `OPItc_` вручную: CLI-тесты генерируются автоматически в CI-пайплайне из модулей `OPIt_`.
- Каждый тестовый модуль должен содержать:
- область `ЗапускаемыеТесты` с процедурами-обертками
- область `АтомарныеТесты` с атомарными проверками
- Запускаемые тесты вызывают несколько атомарных.
- Количество атомарных тестов должно соответствовать количеству методов функционального модуля.
- Количество запускаемых тестов должно соответствовать количеству областей функционального модуля.
- Текст тестовых модулей используется для формирования примеров кода в документации
- Служебные комментарии `//SKIP` и `//END` используются для исключения частей кода теста при формировании примера для документации. `// SKIP` позволяет исключить конкретную строку внутри теста, `//END` - завершает запись примера. Весь служебный код, который идет после `//END` не попадает в пример кода для документации
- При формировании атомарных тестов нельзя выносить повторяющийся код в служебные функции, так как это может привести к недопониманию при их использовании в качестве примеров для документации
- В спорных/неочевидных ситуациях ориентироваться на существующие тесты как на каноничные примеры.
## Реестр и функции проверок
- Каждый запускаемый тест должен быть указан в `ПолучитьТаблицуТестов` в модуле `OPI_ПолучениеДанныхТестов`.
- В `OPI_ПолучениеДанныхТестов` также находятся функции-проверки:
- по одной функции-проверке на каждый атомарный тест
- с возможным ветвлением внутри по параметру `Вариант`
## Правила именования
- Формат имени атомарного теста:
- `<ИмяМодуляБезПрефикса>_<ИмяМетодаФункциональногоМодуля>`
- Формат имени запускаемого теста:
- `<ЛюбоеСокращениеИмениМодуляБезПрефикса><ИмяОбласти>`
- Формат имени функции-проверки:
- `Проверка_<ИмяАтомарногоТеста>`