Skip to content

[FEATURE] Выделить планирование команд vrunner в чистый модуль и покрыть тестами #235

Description

@johnnyshut

Проблема

Баг с игнорированием settingsFile (yellow-hammer/mcp-1c-platform-tools#25, исправлен в #232) прожил незамеченным, потому что planIntents живёт в VRunnerManager — классе, завязанном на vscode API, — и не покрыт ни одним тестом. Существующие тесты (src/test/shared/*) проверяют только чистые функции.

Предложение

Выделить планирование (интент → аргументы CLI с учётом версии vrunner, --settings, временных параметров) в чистый модуль без vscode, по образцу envProfiles.ts и vrunnerCliAdapters. VRunnerManager.planIntents остаётся тонкой обёрткой, которая собирает вход (версия, активный профиль, overrides) и зовёт чистую функцию.

Тесты закрепляют контракты:

  • явный settingsFile перекрывает активный профиль;
  • --settings не дублируется, если задан в намерении;
  • временные параметры добавляются в зону сквозных опций;
  • поведение 2.x/3.x (включая обработку v2-файла настроек на cli3).

Критерии приёмки

  • Планирование вызывается как чистая функция без vscode
  • Контракты выше покрыты тестами в src/test/shared
  • Поведение planIntents не изменилось (существующие 452 теста зелёные)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions