[TEST-INTEGRATION-01] Интеграционное тестирование пайплайна приёмки с моками ИИ и Kafka
Тестирование: Бэкенд и Очереди
NoteКраткая карточка задачи
- Компоненты:
product_process_service(Go),ai_receipt_vision_gateway(Python). - Инструменты: Go test, Testcontainers (для Kafka/Postgres), WireMock (для мока Ollama).
- Тип задачи: QA / Автоматизация Бэкенда.
- Статус: В анализе
Описание задачи
Необходимо написать интеграционные тесты для проверки сквозного конвейера обработки продуктов. Тесты должны гарантировать, что при отправке медиаданных Go-сервис правильно взаимодействует с ИИ-шлюзами, корректно пушит сообщения в Kafka и записывает финальный результат в PostgreSQL.
Инструкция по шагам
- Изоляция окружения (Testcontainers): Внутри тестового файла Go настроить автоматический подъем чистых временных контейнеров PostgreSQL и Kafka в Docker перед запуском тестов.
- Создание заглушек ИИ-шлюзов (WireMock): Вместо вызова реальной модели Llama (которая работает долго), настроить WireMock на портах
11435и11437для эмуляции трех ответов:- Успех: Возврат валидного JSON с продуктами за 100 мс.
- Таймаут (Тест Fallback): Задержка ответа на 45 секунд для проверки триггера
VISION_TIMEOUT. - Мат/Профанация: Возврат структуры со статусом
invalidот фильтра мата.
- Проверка консистентности данных:
- Написать тест, который проверяет, что после получения успешного ответа от ИИ-мока, сообщение корректно доставляется в Kafka-топик
b2b_products_intake. - Проверить, что Go-воркер успешно вычитывает сообщение из Kafka и делает
INSERTв таблицуdigital_employees.
- Написать тест, который проверяет, что после получения успешного ответа от ИИ-мока, сообщение корректно доставляется в Kafka-топик