Skip to content

datadmitry/js_unittest_cicd

Repository files navigation

Школьный проект: Счетчик

Что это?

Простой сайт-счетчик, который можно увеличивать и уменьшать.

Как установить?

  1. Установи Node.js с сайта nodejs.org
  2. Скачай папку с проектом
  3. Открой терминал в папке проекта
  4. Напиши: npm install
  5. Напиши: npm start
  6. Открой браузер: http://localhost:3000

Как запустить тесты локально?

npm install
npm test

Для подробного вывода:

npm run test:verbose

Что делает CI/CD?

  1. Когда ты загружаешь новый код на GitHub в ветку main
  2. Автоматически запускаются все unit-тесты
  3. Результаты тестов записываются в этот README с эмодзи ✅ или ❌
  4. Автоматически обновляется файл CHANGELOG.md с историей изменений

Структура файлов:

  • server.js - код сервера
  • server.test.js - unit-тесты (Jest + supertest)
  • .github/workflows/ci.yaml - настройка автоматики
  • CHANGELOG.md - что ты менял

Как работает?

  1. Сервер запоминает число (счетчик)
  2. Кнопка "+1" увеличивает число
  3. Кнопка "-1" уменьшает число
  4. Все изменения сохраняются, пока сервер работает

API эндпоинты:

  • GET / - главная страница со счетчиком
  • GET /counter - получить значение счетчика (JSON)
  • POST /increment - увеличить счетчик на 1
  • POST /decrement - уменьшить счетчик на 1

Результаты тестов

Последний запуск: 26.01.2026, 11:23:44 UTC

Статус: ✅ Все тесты пройдены

Всего тестов: 15 | ✅ Пройдено: 15 | ❌ Провалено: 0

Детали по тестам:

Тест Статус
GET / > должен возвращать HTML страницу со счетчиком
GET / > должен содержать кнопки +1 и -1
GET /counter > должен возвращать текущее значение счетчика как JSON
GET /counter > должен возвращать правильное значение после изменения счетчика
POST /increment > должен увеличивать счетчик на 1
POST /increment > должен увеличивать счетчик несколько раз подряд
POST /increment > должен работать с отрицательными значениями
POST /decrement > должен уменьшать счетчик на 1
POST /decrement > должен уменьшать счетчик несколько раз подряд
POST /decrement > должен корректно переходить в отрицательные значения
Вспомогательные функции > resetCounter должен сбрасывать счетчик к значению по умолчанию
Вспомогательные функции > resetCounter должен устанавливать произвольное значение
Вспомогательные функции > getCounter должен возвращать текущее значение
Интеграционные тесты > increment и decrement должны корректно взаимодействовать
Интеграционные тесты > значение на главной странице должно обновляться

About

Пример использования CI/CD для автоматизации тестирования

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors