test-setup.js

Обзор

Файл test-setup.js представляет собой простой скрипт на Node.js, предназначенный для проверки корректности настройки инструментов обеспечения качества кода в проекте. Скрипт последовательно запускает набор команд, связанных с проверкой кода: компиляцию TypeScript, проверку качества кода линтером ESLint, форматирование с помощью Prettier, запуск юнит-тестов и сборку проекта. Цель — убедиться, что все этапы проходят без ошибок, что свидетельствует о правильной конфигурации среды разработки и качестве кода.

Скрипт выводит в консоль результаты каждого этапа, а также итоговую статистику успешных и неуспешных проверок. Если все проверки прошли успешно — скрипт сообщает об этом, иначе рекомендует запустить автоматическое исправление проблем и завершает работу с ошибкой.


Подробное описание

Основные переменные и константы


Основной код

Цикл for...of последовательно перебирает каждый тест из массива tests:

for (const test of tests) {
  try {
    console.log(`${test.emoji} Running: ${test.name}...`);
    execSync(test.command, { stdio: 'pipe' });
    console.log(`✅ ${test.name} - PASSED\n`);
    passed++;
  } catch (error) {
    console.log(`❌ ${test.name} - FAILED`);
    console.log(`   Error: ${error.message.split('\n')[0]}\n`);
    failed++;
  }
}

После выполнения всех тестов скрипт выводит итоговую статистику:

console.log('📊 Results:');
console.log(`✅ Passed: ${passed}`);
console.log(`❌ Failed: ${failed}`);

Если не было ни одного провала (failed === 0), скрипт сообщает, что все проверки пройдены, и среда готова к использованию. В противном случае предлагается запустить команду npm run quality:fix для автоматического исправления проблем, и скрипт завершает процесс с кодом ошибки 1:

if (failed === 0) {
  console.log('\n🎉 All quality checks passed successfully!');
  console.log('Setup is ready to use.');
} else {
  console.log('\n⚠️  Some checks failed.');
  console.log('Run npm run quality:fix to fix issues.');
  process.exit(1);
}

Важные детали реализации


Взаимодействие с другими частями проекта


Пример использования

$ node test-setup.js
🧪 Testing code quality setup...

🔍 Running: TypeScript compilation...
✅ TypeScript compilation - PASSED

🧹 Running: ESLint check...
✅ ESLint check - PASSED

💅 Running: Prettier formatting...
✅ Prettier formatting - PASSED

🧪 Running: Tests...
✅ Tests - PASSED

🏗️ Running: Build...
✅ Build - PASSED

📊 Results:
✅ Passed: 5
❌ Failed: 0

🎉 All quality checks passed successfully!
Setup is ready to use.

Диаграмма структуры

flowchart TD
    A[Start: Запуск test-setup.js]
    A --> B{Перебор тестов tests[]}
    B -->|для каждого теста| C[Выполнение команды execSync(test.command)]
    C --> D{Результат выполнения}
    D -->|Успех| E[Вывод сообщения об успехе]
    D -->|Ошибка| F[Вывод сообщения об ошибке]
    E --> B
    F --> B
    B --> G[Подсчёт passed и failed]
    G --> H{failed === 0?}
    H -->|Да| I[Вывод успешного завершения]
    H -->|Нет| J[Вывод рекомендации и exit(1)]
    I --> K[Завершение скрипта]
    J --> K

Итог

Файл test-setup.js — это удобный и лаконичный инструмент для проверки и контроля качества кода на всех основных этапах разработки. Его использование помогает выявить проблемы с типизацией, стилем, тестами и сборкой на ранних стадиях, обеспечивая стабильность и поддерживаемость проекта. Благодаря простоте и читаемости, скрипт легко адаптируется и расширяется под нужды конкретного проекта.