---
docgen:
  source: npm/scripts/lib/run-conftest-batch.mjs
  crc: 5ec640a0
---

# run-conftest-batch.mjs

## Огляд

Файл запускає `conftest test` на заданому списку файлів, виявляючи порушення правил, визначених у Rego-полісіях. Він використовується для автоматизованої перевірки конфігураційних файлів на відповідність заданим вимогам. Результати перевірки повертаються у структурованому вигляді, що дозволяє інтегрувати результати в інші процеси валідації.

## Поведінка

buildConftestArgs: Будує аргументи командного рядка для запуску `conftest test`, враховуючи список файлів, namespace та додаткові аргументи.
runConftestBatch: Запускає `conftest test` для заданого списку файлів, повертає масив порушень у форматі JSON, якщо `conftest` успішно завершився, і кидає виняток, якщо `conftest` не знайдено або завершився з помилкою. Створює тимчасову директорію для збереження даних шаблону, якщо передано `templateData`.

## Публічний API

- buildConftestArgs: Створює аргументи для тесту conftest. Витягнуто для зручності тестування. Зберігає поточну структуру аргументів (файли перед `-p`, `--output json` та `--no-color` для читабельного виводу) і вставляє `--data` після `--namespace`, якщо він заданий.
- runConftestBatch: Запускає `conftest test` для всіх файлів з одного процесу та повертає масив помилок. Якщо `files` порожній, повертає порожній масив. Якщо `conftest` не знайдено в системному шляху та автоматична установка не вдалася, виникає помилка.

## Гарантії поведінки

- Запускає `conftest test` на заданому списку файлів.
- Повертає всі виявлені порушення у структурованому вигляді.
- Якщо `conftest` не встановлено, намагається автоматично встановити його.
- У разі невдачі встановлення `conftest`, завершує роботу з помилкою.
- Не кидає винятків назовні.
- Не використовує кешування.
- Не перехоплює помилки, а завершує роботу з помилкою.
- Не має взаємодії з мережею.
