Skip to content

feat(extensions): headless extension test harness and CI multi-version runner #1044

Description

@ZhuchkaTriplesix

Summary

Создать легковесный Headless-раннер и тестовый фреймворк (querya-ext-tester / tool/extension_harness.dart) для автоматизированного тестирования сторонних расширений и драйверов баз данных в CI без запуска GUI.

Context

Авторы сторонних расширений (ClickHouse, Cassandra, Elasticsearch, custom plugins) должны иметь возможность проверять совместимость своих плагинов в GitHub Actions / GitLab CI против нескольких версий Querya Desktop (0.4.10, 0.4.18, 0.5.0) без необходимости поднимать виртуальный X11/Wayland дисплей.

Architecture & Capabilities

  1. Headless RPC Host (QueryaExtensionHarness):
    • Запуск процесса расширения в песочнице (bwrap / sandbox-exec) через PluginRpcBridge и JsonRpcStdioClient в чистом Dart/CLI окружении.
    • Валидация жизненного цикла: querya/initialize -> driver/testConnection -> driver/listObjects -> driver/executeQuery -> driver/closeConnection -> querya/shutdown.
  2. Multi-Version Protocol Simulator (--target-version):
    • Эмуляция поведения хоста разных версий Querya (v0.4.10, v0.4.18, v0.5.0) для проверки обратной совместимости.
  3. CI Output & Reports:
    • Вывод результатов в консоль (цветной diff, тайминги, замеры памяти) и экспорт отчетов в формате JUnit XML / TAP для GitHub Actions.
  4. GitHub Action (QueryaHub/action-extension-test@v1):
    • Шаблон workflow для авторов плагинов с матрицей версий хоста.

Acceptance Criteria

  • Headless-раннер выполняет полный набор проверок протокола RPC за <2 секунд.
  • Ошибки схемы манифеста и протокола RPC выводятся с понятными диагностическими сообщениями.
  • Раннер успешно работает в headless Linux/macOS/Windows CI-окружениях.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priority / Parity & RefactoringcoreCore library logic and servicesenhancementNew feature or requesttestsTheme parser epic

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions