Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Доработка сборки, добавление сценарных автотестов #171

Merged
merged 17 commits into from
Dec 20, 2024

Conversation

ivanmolodec
Copy link
Member

@ivanmolodec ivanmolodec commented Dec 20, 2024

Summary by CodeRabbit

  • Новые функции

    • Добавлены новые файлы функций для управления предопределенными значениями и интеграциями на русском языке.
  • Изменения конфигурации

    • Обновлены параметры конфигурации для тестового клиента, включая режим отладки.
    • Добавлены новые параметры для удаленной отладки в конфигурации vrunner.json.
    • Внесены изменения в конфигурацию для улучшения отслеживания качества кода.
  • Исправления

    • Удалены устаревшие элементы и команды из конфигурационных файлов форм.

@ivanmolodec ivanmolodec added the enhancement Улучшение существующей функциональности label Dec 20, 2024
@ivanmolodec ivanmolodec self-assigned this Dec 20, 2024
Copy link

coderabbitai bot commented Dec 20, 2024

Обзор изменений

Walkthrough

Данный pull request включает в себя несколько значимых изменений в конфигурации проекта. Удален workflow SonarQube, добавлены новые feature-файлы для подсистем предопределенных значений и управления интеграциями. Обновлены конфигурационные файлы, такие как jobConfiguration.json, VBParams.json и vrunner.json, с изменениями в настройках отладки и интеграционных процессов.

Changes

Файл Изменения
.github/workflows/sonar.yml Удален workflow для интеграции SonarQube
features/Подсистема предопределенных значений.feature Новый feature-файл для подсистемы предопределенных значений
features/Подсистема управления интеграциями.feature Новый feature-файл для подсистемы управления интеграциями
jobConfiguration.json Добавлены новые свойства: edtValidate, sonarqube, обновлена версия EDT
src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаСписка/Ext/Form.xml Удален элемент <dcsset:item> для настроек интеграции
src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаСписка/Ext/Form.xml Изменен путь данных с ДатаОбмена на ДатаИнтеграцииВМиллисекундах
src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаСписка/Ext/Form.xml Удалена команда "Delete", добавлена новая командная панель
tools/VBParams.json Обновлены параметры отладки тест-клиента
tools/vrunner.json Добавлены новые параметры отладки для разных секций
tools/yaxunit.json Добавлена пустая строка в конец файла

Possibly related PRs


📜 Recent review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ddfe4a2 and 65a3543.

📒 Files selected for processing (1)
  • features/Подсистема управления интеграциями.feature (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • features/Подсистема управления интеграциями.feature

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (4)
tools/vrunner.json (1)

9-9: Рекомендуется параметризовать URL отладчика

Жестко закодированный URL отладчика http://localhost:1550 может вызвать проблемы при развертывании в различных средах.

Предлагаю вынести URL в отдельную переменную окружения:

-        "--additional": "/debug -http -attach /debuggerURL http://localhost:1550"
+        "--additional": "/debug -http -attach /debuggerURL %DEBUG_URL%"
-        "--testclient-additional": "/debug -http -attach /debuggerURL http://localhost:1550"
+        "--testclient-additional": "/debug -http -attach /debuggerURL %DEBUG_URL%"

Also applies to: 17-17

features/Подсистема предопределенных значений.feature (1)

17-19: Рекомендуется параметризовать тестовые данные

Жестко закодированные значения в таблице данных лучше вынести в отдельный источник тестовых данных для упрощения поддержки тестов.

Рекомендуется использовать механизм подстановки параметров или внешний файл с тестовыми данными.

features/Подсистема управления интеграциями.feature (2)

21-33: Рекомендуется добавить шаги проверки для настроек интеграции

После заполнения настроек интеграции рекомендуется добавить шаги проверки корректности заполненных данных:

  • Проверка сохранения строки подключения
  • Проверка выбранного типа интеграции
  • Проверка связи с интегрируемой системой

43-60: Рекомендуется усилить проверки интеграционного потока

Для повышения надежности тестирования рекомендуется:

  • Добавить проверку уникальности точки входа
  • Добавить валидацию формата точки входа
  • Проверить связь с настройкой интеграции после сохранения
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ba582d0 and ddfe4a2.

📒 Files selected for processing (10)
  • .github/workflows/sonar.yml (0 hunks)
  • features/Подсистема предопределенных значений.feature (1 hunks)
  • features/Подсистема управления интеграциями.feature (1 hunks)
  • jobConfiguration.json (2 hunks)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаСписка/Ext/Form.xml (0 hunks)
  • src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаСписка/Ext/Form.xml (1 hunks)
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаСписка/Ext/Form.xml (0 hunks)
  • tools/VBParams.json (1 hunks)
  • tools/vrunner.json (1 hunks)
  • tools/yaxunit.json (1 hunks)
💤 Files with no reviewable changes (3)
  • src/cf/Catalogs/пбп_ИнтеграционныеПотоки/Forms/ФормаСписка/Ext/Form.xml
  • .github/workflows/sonar.yml
  • src/cf/Catalogs/пбп_НастройкиИнтеграции/Forms/ФормаСписка/Ext/Form.xml
✅ Files skipped from review due to trivial changes (1)
  • tools/yaxunit.json
🔇 Additional comments (4)
jobConfiguration.json (2)

42-45: Проверьте настройки SonarQube

Убедитесь, что указанная установка SonarQube Sonar.openbsl существует и доступна в вашей инфраструктуре CI/CD.

✅ Verification successful

Let me gather more information about SonarQube configurations in the codebase.


Настройки SonarQube корректны и соответствуют инфраструктуре проекта

Проверка показала, что:

  • В проекте используется сервер SonarQube по адресу sonar.openbsl.ru (подтверждается бейджем в README.md)
  • Установка "Sonar.openbsl" активно используется для анализа проекта PSSL
  • В файле sonar-project.properties определены все необходимые настройки для работы с этим сервером
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Поиск конфигураций SonarQube в проекте
rg -i "sonarqube|sonar\.openbsl" --type json

Length of output: 207


Script:

#!/bin/bash
# Поиск дополнительных упоминаний SonarQube в других файлах
rg -i "sonarqube|sonar" -g "!jobConfiguration.json" -A 3

# Поиск файлов конфигурации Jenkins
fd -e yaml -e yml -e xml -e properties "jenkins|sonar"

Length of output: 2477


13-14: Проверьте совместимость версии EDT

Версия EDT 2024.1.3:x86_64 является достаточно новой. Необходимо убедиться в совместимости с существующими расширениями и конфигурациями.

tools/VBParams.json (1)

40-42: Проверьте безопасность отладочного HTTP-соединения

Включение HTTP-отладки на порту 1550 может создать потенциальные уязвимости:

  • Убедитесь, что порт доступен только в среде разработки
  • Проверьте, что отладочный режим отключается при развертывании
✅ Verification successful

Отладочное HTTP-соединение используется только в тестовом окружении

Анализ показывает, что порт 1550 используется исключительно в конфигурационных файлах для тестирования:

  • В tools/VBParams.json - для настройки отладки тест-клиента
  • В tools/vrunner.json - для конфигурации отладочных параметров при запуске тестов

Использование локального адреса (127.0.0.1) и ограничение контекста тестовым окружением является безопасной практикой.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Проверка использования отладочного порта в других конфигурационных файлах
rg -l "1550|http://127.0.0.1"

Length of output: 70


Script:

#!/bin/bash
# Проверяем содержимое файлов, где используется порт 1550
rg "1550|http://127.0.0.1" tools/vrunner.json tools/VBParams.json -C 5

Length of output: 1584

src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаСписка/Ext/Form.xml (1)

184-184: Проверьте корректность сортировки после изменения поля

Замена поля сортировки на ДатаИнтеграцииВМиллисекундах требует проверки:

  • Убедитесь, что все существующие записи имеют корректные значения в миллисекундах
  • Проверьте правильность сортировки для старых записей
✅ Verification successful

Let me check the form element to understand how the date fields are used.


Let me check the catalog metadata to understand the field relationships better.


Let me check the catalog metadata with the correct path.


Based on the analysis of the form files, I can now provide the final response:

Изменение поля сортировки безопасно

Анализ показывает, что:

  • Поле ДатаИнтеграцииВМиллисекундах синхронизировано с ДатаИнтеграции в форме элемента
  • Оба поля заполняются одновременно при создании записи
  • Сортировка по миллисекундам обеспечит более точное упорядочивание
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Поиск использования старого поля ДатаОбмена
rg -l "ДатаОбмена"

Length of output: 162


Script:

#!/bin/bash
# Проверяем использование обоих полей в форме элемента
rg -A 5 -B 5 "ДатаОбмена|ДатаИнтеграцииВМиллисекундах" src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаЭлемента/Ext/Form.xml

Length of output: 1320


Script:

#!/bin/bash
# Проверяем определение полей в метаданных каталога
cat src/cf/Catalogs/пбп_ИсторияИнтеграции/Ext/ObjectModule.bsl 2>/dev/null
rg -A 5 "ДатаИнтеграции|ДатаОбмена" src/cf/Catalogs/пбп_ИсторияИнтеграции/*.xml

Length of output: 1869


Script:

#!/bin/bash
# Проверяем определение полей в метаданных каталога
rg -A 5 "ДатаИнтеграции|ДатаОбмена" src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаСписка/Ext/Form/Module.bsl 2>/dev/null
cat src/cf/Catalogs/пбп_ИсторияИнтеграции/Forms/ФормаСписка/Ext/Form/Module.bsl 2>/dev/null

Length of output: 4086

Comment on lines +23 to +26
* Дозаполнение предопределенного элемента
И в поле с именем 'Значение' я ввожу текст '28'
И я нажимаю на кнопку с именем 'ФормаЗаписатьИЗакрыть'
И я жду закрытия окна 'Количество дней хранения истории интеграции (Предопределенные значения) *' в течение 20 секунд
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Добавьте проверку введенного значения

После ввода значения 28 и сохранения формы отсутствует проверка корректности сохранения данных.

Рекомендуется добавить шаг проверки:

И я открываю предопределенный элемент "Количество дней хранения истории интеграции"
И элемент формы с именем "Значение" содержит текст "28"

Comment on lines +10 to +28
Сценарий: проверка создания предопределенных элементов плана видов характеристик
* Заполнение предопределенных из кода
Дано Я открываю основную форму списка плана видов характеристик 'пбп_ПредопределенныеЗначения'
Тогда открылось окно 'Предопределенные значения'
И я нажимаю на кнопку с именем 'ФормаЗаполнитьПредопределенные'
* Проверка наличия предопределенного элемента
И в таблице "Список" я перехожу на один уровень вниз
И в таблице "Список" я перехожу к строке:
| 'Идентификатор настройки' | 'Код' | 'Наименование' | 'Пароль' |
| 'КолДнейХраненияИсторииИнтеграции' | '000000004' | 'Количество дней хранения истории интеграции' | 'Нет' |
И в таблице "Список" я активизирую поле с именем "Наименование"
И в таблице "Список" я выбираю текущую строку
Тогда открылось окно 'Количество дней хранения истории интеграции (Предопределенные значения)'
* Дозаполнение предопределенного элемента
И в поле с именем 'Значение' я ввожу текст '28'
И я нажимаю на кнопку с именем 'ФормаЗаписатьИЗакрыть'
И я жду закрытия окна 'Количество дней хранения истории интеграции (Предопределенные значения) *' в течение 20 секунд
Тогда открылось окно 'Предопределенные значения'
И Я закрываю окно 'Предопределенные значения'
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Добавьте сценарии обработки ошибок

Текущий сценарий проверяет только позитивный путь выполнения. Рекомендуется добавить проверки:

  • Попытка ввода некорректных значений
  • Отмена сохранения изменений
  • Обработка конфликтов при одновременном редактировании

This comment has been minimized.

1 similar comment

This comment has been minimized.

Copy link

Passed

Analysis Details

0 Issues

  • Bug 0 Bugs
  • Vulnerability 0 Vulnerabilities
  • Code Smell 0 Code Smells

Coverage and Duplications

  • Coverage No coverage information (12.30% Estimated after merge)
  • Duplications No duplication information (0.40% Estimated after merge)

Project ID: PSSL

View in SonarQube

@ivanmolodec ivanmolodec merged commit b264504 into develop Dec 20, 2024
4 checks passed
@ivanmolodec ivanmolodec deleted the edt-and-coverage-test branch December 20, 2024 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Улучшение существующей функциональности
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant