|
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