prk-utils
v3.0.10
Published
Описание библиотеки тестовых методов Эта библиотека содержит набор методов для тестирования различных аспектов HTML, CSS, JavaScript и их элементов. Основные функциональные возможности включают проверку корректности импорта, сравнение CSS и JS кода, прове
Readme
prk-utils
Описание библиотеки тестовых методов Эта библиотека содержит набор методов для тестирования различных аспектов HTML, CSS, JavaScript и их элементов. Основные функциональные возможности включают проверку корректности импорта, сравнение CSS и JS кода, проверку атрибутов HTML и сравнение контента тегов. Используется в тестах React, Node.js тренажеров веб-факультета
Функциональность
Методы для проверки импорта
checkImport(tree, name, path, errors, mandatory)- Проверяет наличие и правильность импорта модуля в дереве AST.
Методы для сравнения CSS
compareCSS(css1, css2)- Сравнивает две строки CSS кода, возвращает результат сравнения и ошибки.cssToObject(cssString)- Преобразует CSS строку в объект, представляющий структуру CSS правил.
Методы для проверки HTML атрибутов
checkAttributes(element1, element2)- Сравнивает атрибуты двух HTML элементов, возвращает результат сравнения и ошибки.checkClass(classString1, classString2, location)- Сравнивает классы двух HTML элементов, проверяет наличие и порядок классов.checkHref(href1, href2, location)- Сравнивает значения атрибутаhrefу двух HTML элементов, проверяет корректность ссылки.
Методы для сравнения контента тегов
checkTagContent(content1, content2, tagName)- Сравнивает содержимое двух HTML тегов, возвращает результат сравнения и ошибки.getTagContent(htmlString, tagName)- Извлекает содержимое указанных тегов из HTML строки, возвращает массив объектов с содержимым тегов.
Методы для проверки JavaScript кода
compareJS(js1, js2, errors)- Сравнивает две строки JavaScript кода, определяет различия в синтаксисе и семантике.checkExpressionCorrect(tree, query, expressionName, errors, options)- Проверяет правильность выражений в дереве AST, возвращает результат и ошибки.
Методы для общего сравнения HTML
compareHTML(html1, html2)- Сравнивает две строки HTML, определяет различия в тегах, атрибутах и содержимом, возвращает результат и ошибки.
Методы для конвертации
convertCSSError(compareResult)- Преобразует ошибки CSS в читаемый формат, возвращает объект с идентификатором ошибки и дополнительными данными.convertHTMLError(compareResult)- Преобразует ошибки HTML в читаемый формат, возвращает объект с идентификатором ошибки и дополнительными данными.
Вспомогательные методы
addError(errors, errorKey)- Добавляет ошибку в массив ошибок, проверяет наличие дубликатов.checkFiles(answers, errors)- Проверяет файлы на соответствие ожидаемому содержимому, возвращает массив ошибок.jsxToJS(jsxCode)- Преобразует JSX код в JavaScript, возвращает строку JavaScript кода.tsToJS(tsCode)- Преобразует TypeScript код в JavaScript, возвращает строку JavaScript кода.getParse5tokenizer(htmlString)- Создает токенайзер для HTML, возвращает токены для анализа HTML структуры.
Методы для тестирования React компонентов
getReactTestRendererComponent(importStatement, jsx)- Возвращает React компонент для тестирования, принимает путь к компоненту и его рендер.
Использование в проектах
Для корректной установки пакета в образ docker необходимо добросить авторизационный токен (скоуп packages_registry:read) и задать его в CI env'ах (NPM_TOKEN). Для этого в пайплайне перед сборкой можно использовать следующий сниппет
script:
- export TAG=$(echo $CI_COMMIT_BRANCH | cut -d "/" -f 2)
- echo "@prk-dev:registry=https://practicum.gitlab.yandexcloud.net/api/v4/projects/271/packages/npm/" >> image/nodejs/.npmrc
- echo "//practicum.gitlab.yandexcloud.net/api/v4/projects/271/packages/npm/:_authToken=${NPM_TOKEN}" >> image/nodejs/.npmrc
- docker build . -t this-is-example