Files
svg-sprites/integration/README.md
S.Gromov 632b450c8b test: добавить площадку интеграционного тестирования
- добавлены consumer fixtures для React и Next.js
- добавлены typecheck, production build и браузерные smoke-тесты
- добавлена интеграционная проверка в CI
2026-07-13 20:08:31 +03:00

68 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Integration playground
Постоянные минимальные consumer-приложения для проверки генерации, typecheck,
production build и отображения внешнего SVG-спрайта в настоящем Chromium.
## Матрица
| Fixture | Генератор | Runtime |
| --- | --- | --- |
| `react-vite` | `react@vite` | React + Vite |
| `react-webpack` | `react@webpack` | React + Webpack 5 |
| `next-app-turbopack` | `next@app/turbopack` | App Router + Turbopack |
| `next-app-webpack` | `next@app/webpack` | App Router + Webpack |
| `next-pages-turbopack` | `next@pages/turbopack` | Pages Router + Turbopack |
| `next-pages-webpack` | `next@pages/webpack` | Pages Router + Webpack |
В verify-матрицу входят только поддерживаемые exact modes. Fixtures остальных
frameworks сохранены как заготовки и будут подключаться после появления их adapters.
## Первый запуск
Из корня репозитория:
```bash
npm ci
npm run build:package
npm run integration:install
npm exec --prefix integration -- playwright install chromium
npm run integration:verify
```
`integration:verify` последовательно выполняет генерацию, typecheck, production build
активных fixtures и Playwright smoke-тесты.
## Отдельные этапы
```bash
npm run integration:generate
npm run integration:build
npm run integration:test
```
Для запуска команды только в одном fixture:
```bash
node integration/scripts/run-workspaces.mjs build react-vite
npm run dev --workspace @svg-sprites-fixtures/react-vite --prefix integration
```
Перед E2E production builds должны существовать. Тест запускает каждый server
последовательно, проверяет внешний `href`, HTTP status и Content-Type спрайта,
наличие symbol ID, отсутствие browser errors и зелёные пиксели отрисованной иконки.
## Структура
```text
integration/
├── apps/ # реальные consumer package boundaries
├── fixtures/icons/ # общие исходные SVG
├── scripts/ # workspace runner и static production server
├── tests/ # Playwright runtime smoke
├── package.json # отдельный npm workspace
└── package-lock.json # зафиксированная framework matrix
```
Generated-файлы, framework build outputs и Playwright artifacts исключены через
`integration/.gitignore`.