Gavia UIv1.0.0

Качество и совместимость

Покрытие unit-тестами, состав проверок и правила совместимости Gavia UI.

Покрытие unit-тестами

Покрытие показывает, какую часть кода выполнили unit-тесты в этом прогоне.

Строки
98,66%
Выполненные строки кода
Инструкции
97,41%
Выполненные инструкции
Ветвления
92,65%
Проверенные исходы условий
Функции
98,12%
Вызванные функции

991 / 991 unit-тестов прошли в этом прогоне.

Отчёт CI · версия 1.0.0 ·

Ревизия fbe82aab· в рабочей копии есть незакоммиченные изменения.

В расчёт входят компоненты, утилиты, разрешение имён иконок и токенов. E2E, визуальные сравнения и Axe выполняются отдельно. Декларации типов, сгенерированные каталоги, метаданные manifest и точки реэкспорта исключены.

Что проверяется

ПроверкаЧто она проверяет
Vitest + Vue Test UtilsКонтракты компонентов, состояния, события, утилиты и ветки поведения. Проценты выше относятся к этим unit-тестам.
PlaywrightВзаимодействия, клавиатура, фокус и оверлеи в Chromium, Firefox, WebKit и мобильном Chromium.
Визуальные эталоныDesktop и mobile в Gavia, Gavia Dark, Classic, Classic Dark и Newspaper. Для Gavia и Gavia Dark загружается Gavia Sans; классические эталоны используют Arial/Consolas.
AxeВидимые страницы и открытые списки/диалоги в пяти темах, правила WCAG 2.2 AA в Chromium. Клавиатурные сценарии проверяются отдельно.
Публичный контрактDeclarations и прежний Vue-потребитель сравниваются с сохранённым снимком: удаления и сужение контракта останавливают проверку.
Архив пакетаСобранный tarball: ESM-import, типы, SFC из примеров, SSR и гидратация, файлы и лицензии, размер приложения с одной кнопкой.

В таблице указан состав проверок. Результат конкретного прогона смотрите в GitHub Actions. Локальный отчёт покрытия не подтверждает результат CI. Изменения PNG принимаются после просмотра expected/actual/diff.

Браузеры и Vue

ОкружениеЦелевой диапазон
Chrome / Edge111+; соответствующие Android Chromium
Firefox121+; соответствующие Android Firefox
Safari / iOS Safari16.4+
Vue3.4+; Vue остаётся единственным обязательным peer

Диапазон браузеров определён по поддержке ES2020, CSS Layers, :has(), color-mix и container queries. Автоматические проверки используют закреплённые версии Playwright; полный набор на каждой исторической минимальной версии отдельно не запускался.

WebKit проверяет движок и не заменяет отдельный Safari/iOS-прогон. IE и старые WebView не поддерживаются. CSS подключается явно; библиотека не устанавливает глобальные полифиллы.

Доступность и SSR

Доступность в приложении

Целевой уровень — WCAG 2.2 AA. Axe проверяет имена и связи ARIA, контраст и видимый DOM, включая открытые списки и диалоги в пяти темах.

Автоматический скан не подтверждает полное соответствие WCAG. При интеграции нужны ручные проверки клавиатуры, масштабирования, NVDA и VoiceOver. Эти прогоны не входят в приведённое unit-покрытие.

SSR и оверлеи

Проверяется Vue SSR и гидратация с сохранением DOM и идентификаторов. В Vue 3.4 порядок синхронного серверного дерева и гидратации должен совпадать; порядок асинхронных ветвей отдельно не гарантируется.

Оверлеи используют Teleport в body: сервер вставляет context.teleports.body в начало body перед корнем приложения. Если фреймворк обслуживает только собственный teleport-target, используйте его ClientOnly для оверлеев и проверьте интеграцию. Интеграцию с Nuxt и его модулями проверяйте в приложении.

Версии и совместимость

Все компоненты выпускаются одной версией Gavia UI. «С версии» в каталоге означает первый выпуск компонента; последующие изменения перечислены в changelog.

Patch

Исправления сохраняют публичный контракт и прежний код потребителя.

Minor и major

Minor добавляет возможности. В 0.x необходимое несовместимое изменение допускается только в minor с явной отметкой Breaking changes и руководством миграции. После 1.0 оно требует major.

Публичный контракт включает props, события и payload, slots, v-model, exposed-методы, exports, CSS-классы, data-wl, токены и pt-секции. Проверка типов защищает форму API; unit/E2E проверяют поведение. Миграционная заметка сама по себе не отключает проверку совместимости.