|
50 | 50 |
|
51 | 51 | - name: Build docs
|
52 | 52 | run: yarn --cwd docs-site build
|
53 |
| - |
54 |
| - - name: Install Playwright |
55 |
| - run: | |
56 |
| - npm install playwright |
57 |
| - npx playwright install --with-deps chromium |
58 |
| -
|
59 |
| - - name: Start docs preview server |
60 |
| - run: yarn --cwd docs-site preview --host 0.0.0.0 --port 4173 & |
61 |
| - |
62 |
| - - name: Wait for server to be ready |
63 |
| - run: | |
64 |
| - timeout 30 bash -c 'until curl -s http://localhost:4173 > /dev/null; do sleep 1; done' |
65 |
| -
|
66 |
| - - name: Test docs site with Playwright |
67 |
| - run: | |
68 |
| - cat > test-docs.js << 'EOF' |
69 |
| - const { chromium } = require('playwright'); |
70 |
| -
|
71 |
| - (async () => { |
72 |
| - const browser = await chromium.launch(); |
73 |
| - const page = await browser.newPage(); |
74 |
| - |
75 |
| - try { |
76 |
| - console.log('🚀 Navigating to docs site...'); |
77 |
| - await page.goto('http://localhost:4173', { waitUntil: 'networkidle' }); |
78 |
| - |
79 |
| - console.log('🔍 Looking for "React Datepicker" text...'); |
80 |
| - await page.waitForSelector('text=React Datepicker', { timeout: 10000 }); |
81 |
| - |
82 |
| - // Additional checks |
83 |
| - const title = await page.title(); |
84 |
| - console.log(`✅ Page title: ${title}`); |
85 |
| - |
86 |
| - const hasText = await page.getByText('React Datepicker').isVisible(); |
87 |
| - if (hasText) { |
88 |
| - console.log('✅ Success: "React Datepicker" text is visible on the docs site'); |
89 |
| - } else { |
90 |
| - throw new Error('❌ "React Datepicker" text not found'); |
91 |
| - } |
92 |
| - |
93 |
| - } catch (error) { |
94 |
| - console.error('❌ Test failed:', error.message); |
95 |
| - |
96 |
| - // Take screenshot for debugging |
97 |
| - await page.screenshot({ path: 'docs-test-failure.png', fullPage: true }); |
98 |
| - console.log('📸 Screenshot saved as docs-test-failure.png'); |
99 |
| - |
100 |
| - // Log page content for debugging |
101 |
| - const content = await page.content(); |
102 |
| - console.log('🔍 Page content preview:'); |
103 |
| - console.log(content.substring(0, 1000)); |
104 |
| - |
105 |
| - process.exit(1); |
106 |
| - } finally { |
107 |
| - await browser.close(); |
108 |
| - } |
109 |
| - })(); |
110 |
| - EOF |
111 |
| - |
112 |
| - node test-docs.js |
113 |
| -
|
114 |
| - - name: Upload screenshot on failure |
115 |
| - if: failure() |
116 |
| - uses: actions/upload-artifact@v4 |
117 |
| - with: |
118 |
| - name: docs-test-screenshot |
119 |
| - path: docs-test-failure.png |
0 commit comments