Skip to content

Конфигурация

Передайте параметры адаптеру PageFlow:

ts
PageFlow.vite({
  enabled: true,
  previewPath: '/__unplugin-pageflow/',
  appUrl: '/',
  dynamicParams: {
    '/products/:id': { id: 'demo-product' },
  },
})

Параметры

ПараметрПо умолчаниюОписание
enabledtrueВключает PageFlow на сервере разработки.
previewPath/__unplugin-pageflow/URL визуальной карты.
appUrl/Маршрут для обнаружения роутера приложения.
dynamicParams{}Задаёт примеры динамических параметров маршрута.
pageTests{}Явно связывает glob маршрутов с glob тестовых файлов.
testCommands{}Включает выполнение тестов каждого типа с явными командами без shell.

Тесты страниц

PageFlow автоматически связывает тесты, импортирующие компонент страницы, использующие одноимённый файл или переходящие к полному маршруту в тестовом сценарии. Неоднозначные тесты можно сопоставить явно:

ts
PageFlow.vite({
  pageTests: {
    '/orders/**': ['tests/orders-*.spec.ts'],
  },
  testCommands: {
    unit: { command: 'pnpm', args: ['vitest', 'run', '{file}', '-t', '{name}'] },
    component: { command: 'pnpm', args: ['vitest', 'run', '{file}', '-t', '{name}'] },
    e2e: { command: 'pnpm', args: ['playwright', 'test', '{file}', '-g', '{name}'], timeoutMs: 180_000 },
  },
})

{file} и {name} заменяются индексированными файлом и именем сценария. Команды выполняются из корня проекта с shell: false; по умолчанию ни одна команда не угадывается и не включается. Тест может выполняться 120 секунд, а timeoutMs задаёт предел от 1 секунды до 30 минут.

PageFlow хранит последние 500 результатов в .unplugin-pageflow/cache/test-results.json. Изменение тестового файла автоматически делает предыдущий результат недействительным. Сохранённый вывод ограничен последними 20 КБ на тест; каталог кэша должен игнорироваться Git.

Параметры динамических маршрутов

PageFlow нужны конкретные значения для отображения маршрута вроде /products/:id:

ts
PageFlow.vite({
  dynamicParams: {
    '/products/:id': {
      id: 'demo-product',
    },
    '/users/:userId/orders/:orderId': {
      userId: 'alice',
      orderId: 'order-100',
    },
  },
})

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

Готовность превью

Перед снимком PageFlow ждёт загрузки шрифтов и изображений, а также стабилизации DOM. Страница с долгой асинхронной работой может явно сообщить о готовности:

ts
window.__UNPLUGIN_PAGEFLOW_READY__?.()

Опубликовано по лицензии MIT.