Покрытие unit-тестами
Покрытие показывает, какую часть кода выполнили unit-тесты в этом прогоне.
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 / Edge | 111+; соответствующие Android Chromium |
| Firefox | 121+; соответствующие Android Firefox |
| Safari / iOS Safari | 16.4+ |
| Vue | 3.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 проверяют поведение. Миграционная заметка сама по себе не отключает проверку совместимости.