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는 페이지 컴포넌트를 import하거나, 같은 이름의 테스트 파일을 사용하거나, 테스트 케이스에서 전체 라우트로 이동하는 테스트를 자동 연결합니다. 모호한 테스트는 명시적으로 매핑할 수 있습니다.

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에 저장합니다. 테스트 파일 내용이 바뀌면 이전 결과는 자동으로 무효화됩니다. 저장 출력은 테스트당 마지막 20KB로 제한되며 캐시 디렉터리는 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 라이선스로 공개됩니다.