[TEST-INTEGRATION-01] Интеграционное тестирование пайплайна приёмки с моками ИИ и Kafka

Тестирование: Бэкенд и Очереди

Published

October 14, 2026

NoteКраткая карточка задачи
  • Компоненты: product_process_service (Go), ai_receipt_vision_gateway (Python).
  • Инструменты: Go test, Testcontainers (для Kafka/Postgres), WireMock (для мока Ollama).
  • Тип задачи: QA / Автоматизация Бэкенда.
  • Статус: В анализе

Описание задачи

Необходимо написать интеграционные тесты для проверки сквозного конвейера обработки продуктов. Тесты должны гарантировать, что при отправке медиаданных Go-сервис правильно взаимодействует с ИИ-шлюзами, корректно пушит сообщения в Kafka и записывает финальный результат в PostgreSQL.

Инструкция по шагам

  1. Изоляция окружения (Testcontainers): Внутри тестового файла Go настроить автоматический подъем чистых временных контейнеров PostgreSQL и Kafka в Docker перед запуском тестов.
  2. Создание заглушек ИИ-шлюзов (WireMock): Вместо вызова реальной модели Llama (которая работает долго), настроить WireMock на портах 11435 и 11437 для эмуляции трех ответов:
    • Успех: Возврат валидного JSON с продуктами за 100 мс.
    • Таймаут (Тест Fallback): Задержка ответа на 45 секунд для проверки триггера VISION_TIMEOUT.
    • Мат/Профанация: Возврат структуры со статусом invalid от фильтра мата.
  3. Проверка консистентности данных:
    • Написать тест, который проверяет, что после получения успешного ответа от ИИ-мока, сообщение корректно доставляется в Kafka-топик b2b_products_intake.
    • Проверить, что Go-воркер успешно вычитывает сообщение из Kafka и делает INSERT в таблицу digital_employees.