prk-utils
v3.0.9
Published
Описание библиотеки тестовых методов Эта библиотека содержит набор методов для тестирования различных аспектов HTML, CSS, JavaScript и их элементов. Основные функциональные возможности включают проверку корректности импорта, сравнение CSS и JS кода, прове
Downloads
443
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