EN · DE · RU · FR · ES

#2758: rest.test.js

projectforge-webapp/src/utilities/rest.test.js Набор модульных тестов · projectforge-webapp/src/utilities/rest.test.js 80 строк · 65 кода · 0 комментариев · 15 пустых
Набор тестов для модуля построения URL REST (rest.js), проверяющий корректность константы базового URL, сериализацию параметров запроса и сборку URL сервиса. Использует глобальный API Jest it/describe/expect. Этот тестовый файл гарантирует, что изменения маршрутизации URL (например, миграция префикса конечной точки REST с /rest на /rs) не нарушат логику построения URL, от которой зависят десятки компонентов, вызывающих API.

Архитектура

Структура тестов

Файл тестирует три экспортируемые функции из rest.js:

baseURL — одно утверждение, что константа равна ожидаемой строке. Это действует как канарейка: если базовый URL когда-либо неожиданно изменится, тест это обнаружит.

createQueryParams — описанный блок с четырьмя случаями: пустые параметры (возвращает пустую строку), одна пара ключ-значение, несколько пар ключ-значение, объединённых через &, и параметры, содержащие специальные символы, которые должны быть URI-закодированы (например, немецкие умлауты в Schwarzwälder Kirschtorte).

getServiceURL — описанный блок с тремя случаями: неопределённые параметры (просто добавляет путь к базовому), пустые параметры (то же самое) и параметры присутствуют (полный URL со строкой запроса). Проверяет сборку полного URL конечной точки REST из пути сервиса и необязательных параметров.

Тест-ориентированная миграция маршрутизации

Этот тестовый файл сыграл критическую роль во время миграции префикса API. Когда базовый URL изменился с /rest на /rs, ожидания тестов послужили спецификацией: сначала были обновлены все утверждения, чтобы отразить новые ожидаемые значения, затем была изменена реализация в rest.js до тех пор, пока тесты не прошли. Позже миграция на Vite переместила обработку прокси на уровень инструмента сборки, что сделало baseURL тестируемым как пустая строка вместо /rs.

История Git

КоммитЧто изменилось
bf988bc6dИзменено ожидаемое значение baseURL с '/rs' на '' (пустая строка). Это сопровождало миграцию react-scripts→Vite: dev-сервер Vite обрабатывает прокси-пересылку путей /rs и /rest на бэкенд, поэтому константа базового URL React-приложения больше не нуждается в префиксе, так как прокси-уровень обрабатывает это прозрачно.
f744162e7Обновлены все ожидания тестов с '/rest' на '/rs' по всему файлу — четыре вхождения в тестовых случаях getServiceURL и одно в baseURL. Это отразило консолидацию конечных точек REST бэкенда, где старый префикс /rest был заменён на /rs для согласованности со схемой монтирования страниц Wicket.
7ea575588Создан тестовый файл с начальным набором тестов, использующим '/rest' в качестве базового префикса сервиса. Установлен шаблон тестирования пустых параметров, одиночных параметров, множественных параметров и URI-закодированных специальных символов. Игривые тестовые данные (торты, вкус, Schwarzwälder Kirschtorte) появились здесь.