Проект выполнен в рамках практической работы по теме unit-тестирования. Цель работы — научиться писать и запускать unit-тесты с помощью Jest для функций валидации.
В проекте реализована логика проверки данных для формы бронирования жилья. Форма предполагает ввод локации, даты заезда и даты выезда.
В проект добавлены функции валидации:
- валидация даты;
- валидация названия города или страны.
Для каждой функции написаны отдельные unit-тесты.
Тесты расположены в той же папке, что и проверяемый код:
src/
validate/
validateCity.ts
validateCity.test.ts
validateDate.ts
validateDate.test.ts
Функция validateDate проверяет дату, введённую пользователем.
Проверяется следующее:
- дата пропускается в формате
ДД.ММ.ГГГГ; - дата не пропускает специальные символы вместо точек;
- дата не пропускает буквенные значения;
- дата не может быть раньше текущей даты.
Функция validateCity проверяет название города или страны.
Проверяется следующее:
- пустое значение не проходит валидацию;
- значение с экранированием не проходит валидацию;
- название с дефисами и восклицательным знаком проходит валидацию;
- название со специальными символами, например
Ağrı, проходит валидацию; - название из одной буквы проходит валидацию.
Для запуска тестов используется Jest и ts-jest.
Были добавлены следующие файлы настройки:
jest.config.cjs
tsconfig.json
jest.config.cjs отвечает за запуск Jest и обработку TypeScript-файлов.
tsconfig.json содержит настройки TypeScript для корректной работы тестов.
Перед запуском проекта необходимо установить зависимости:
npm installДля запуска Vite-сервера используется команда:
npm run devПосле запуска приложение будет доступно по адресу:
http://localhost:5173
Для запуска unit-тестов используется команда:
npm testПри успешном выполнении тестов Jest выводит результат прохождения тестов для файлов:
validateCity.test.ts
validateDate.test.ts
В проект добавлен файл .gitignore, чтобы не отправлять в репозиторий служебные файлы и папки, например:
node_modules/
dist/
coverage/
.env
В результате работы были реализованы функции валидации данных формы бронирования и написаны unit-тесты, проверяющие корректную работу этих функций. Тесты позволяют быстро проверить, что логика валидации работает правильно и не ломается при изменении кода.