3.0.10 • Published 8 months ago

prk-utils v3.0.10

Weekly downloads
-
License
ISC
Repository
-
Last release
8 months ago

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