Skip to content

fix(ci): regenerate pnpm-lock.yaml with pnpm v8 for CI compatibility #10

fix(ci): regenerate pnpm-lock.yaml with pnpm v8 for CI compatibility

fix(ci): regenerate pnpm-lock.yaml with pnpm v8 for CI compatibility #10

Triggered via push December 16, 2025 05:26
Status Failure
Total duration 3m 52s
Artifacts 4

playwright.yml

on: push
Matrix: test
test-summary
8s
test-summary
Fit to window
Zoom out
Zoom in

Annotations

15 errors, 2 warnings, and 1 notice
test (firefox)
Process completed with exit code 1.
test (firefox)
Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell ╔═════════════════════════════════════════════════════════════════════════╗ ║ Looks like Playwright Test or Playwright was just installed or updated. ║ ║ Please run the following command to download new browsers: ║ ║ ║ ║ pnpm exec playwright install ║ ║ ║ ║ <3 Playwright Team ║ ╚═════════════════════════════════════════════════════════════════════════╝ at global-setup.ts:7 5 | 6 | // Pre-warm the browser for faster test starts > 7 | const browser = await chromium.launch(); | ^ 8 | await browser.close(); 9 | 10 | console.log('Global setup completed'); at globalSetup (/home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/global-setup.ts:7:34)
test (webkit)
Process completed with exit code 1.
test (webkit)
Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium_headless_shell-1200/chrome-headless-shell-linux64/chrome-headless-shell ╔═════════════════════════════════════════════════════════════════════════╗ ║ Looks like Playwright Test or Playwright was just installed or updated. ║ ║ Please run the following command to download new browsers: ║ ║ ║ ║ pnpm exec playwright install ║ ║ ║ ║ <3 Playwright Team ║ ╚═════════════════════════════════════════════════════════════════════════╝ at global-setup.ts:7 5 | 6 | // Pre-warm the browser for faster test starts > 7 | const browser = await chromium.launch(); | ^ 8 | await browser.close(); 9 | 10 | console.log('Global setup completed'); at globalSetup (/home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/global-setup.ts:7:34)
[chromium] › e2e/demo.spec.ts:118:7 › Interactive Demo › should handle mobile view transitions: e2e/demo.spec.ts#L128
4) [chromium] › e2e/demo.spec.ts:118:7 › Interactive Demo › should handle mobile view transitions Error: expect(locator).toBeVisible() failed Locator: locator('text=✅ AFTER (2024)').first() Expected: visible Received: hidden Timeout: 10000ms Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for locator('text=✅ AFTER (2024)').first() 14 × locator resolved to <div class="inline-flex items-center rounded-full border transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-success hover:bg-success text-white font-bold text-sm px-4 py-2 shadow-lg">✅ AFTER (2024)</div> - unexpected value "hidden" 126 | // Check that the new view is visible with timeout 127 | const newSiteBadge = page.locator('text=✅ AFTER (2024)').first(); > 128 | await expect(newSiteBadge).toBeVisible({ timeout: 10000 }); | ^ 129 | }); 130 | }); at /home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/demo.spec.ts:128:32
[chromium] › e2e/demo.spec.ts:102:7 › Interactive Demo › should display CTA section below demo: e2e/demo.spec.ts#L113
3) [chromium] › e2e/demo.spec.ts:102:7 › Interactive Demo › should display CTA section below demo Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText('Free consultation') Expected: visible Error: strict mode violation: getByText('Free consultation') resolved to 4 elements: 1) <div class="animate-marquee whitespace-nowrap text-sm text-yellow-800 font-bold chrome-optimized">🔥 HOT DEALS! 🔥 CALL NOW FOR FREE CONSULTATION! 🔥 …</div> aka getByText('🔥 HOT DEALS! 🔥 CALL NOW FOR').first() 2) <div class="animate-marquee whitespace-nowrap text-sm text-yellow-800 font-bold chrome-optimized">🔥 HOT DEALS! 🔥 CALL NOW FOR FREE CONSULTATION! 🔥 …</div> aka getByText('🔥 HOT DEALS! 🔥 CALL NOW FOR').nth(1) 3) <a href="/contact" class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:shadow-lg h-11 rounded-md px-8 text-base md:h-11 md:px-8 bg-accent hover:bg-accent/90 text-accent-foreground shadow-lg min-h-[44px] min-w-[44px] focus:outline-none focus:ring-2 focus:ring-ring focus:…>Get Your Free Consultation</a> aka getByRole('link', { name: 'Get Your Free Consultation' }) 4) <div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-background/20 text-primary-foreground border-background/30">…</div> aka getByText('Free Consultation', { exact: true }) Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByText('Free consultation') 111 | 112 | // Check benefit points > 113 | await expect(page.getByText('Free consultation')).toBeVisible(); | ^ 114 | await expect(page.getByText('30-day guarantee')).toBeVisible(); 115 | await expect(page.getByText('NASA-grade precision')).toBeVisible(); 116 | }); at /home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/demo.spec.ts:113:55
[chromium] › e2e/demo.spec.ts:102:7 › Interactive Demo › should display CTA section below demo: e2e/demo.spec.ts#L113
3) [chromium] › e2e/demo.spec.ts:102:7 › Interactive Demo › should display CTA section below demo Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText('Free consultation') Expected: visible Error: strict mode violation: getByText('Free consultation') resolved to 4 elements: 1) <div class="animate-marquee whitespace-nowrap text-sm text-yellow-800 font-bold chrome-optimized">🔥 HOT DEALS! 🔥 CALL NOW FOR FREE CONSULTATION! 🔥 …</div> aka getByText('🔥 HOT DEALS! 🔥 CALL NOW FOR').first() 2) <div class="animate-marquee whitespace-nowrap text-sm text-yellow-800 font-bold chrome-optimized">🔥 HOT DEALS! 🔥 CALL NOW FOR FREE CONSULTATION! 🔥 …</div> aka getByText('🔥 HOT DEALS! 🔥 CALL NOW FOR').nth(1) 3) <a href="/contact" class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:shadow-lg h-11 rounded-md px-8 text-base md:h-11 md:px-8 bg-accent hover:bg-accent/90 text-accent-foreground shadow-lg min-h-[44px] min-w-[44px] focus:outline-none focus:ring-2 focus:ring-ring focus:…>Get Your Free Consultation</a> aka getByRole('link', { name: 'Get Your Free Consultation' }) 4) <div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-background/20 text-primary-foreground border-background/30">…</div> aka getByText('Free Consultation', { exact: true }) Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByText('Free consultation') 111 | 112 | // Check benefit points > 113 | await expect(page.getByText('Free consultation')).toBeVisible(); | ^ 114 | await expect(page.getByText('30-day guarantee')).toBeVisible(); 115 | await expect(page.getByText('NASA-grade precision')).toBeVisible(); 116 | }); at /home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/demo.spec.ts:113:55
[chromium] › e2e/demo.spec.ts:102:7 › Interactive Demo › should display CTA section below demo: e2e/demo.spec.ts#L113
3) [chromium] › e2e/demo.spec.ts:102:7 › Interactive Demo › should display CTA section below demo Error: expect(locator).toBeVisible() failed Locator: getByText('Free consultation') Expected: visible Error: strict mode violation: getByText('Free consultation') resolved to 4 elements: 1) <div class="animate-marquee whitespace-nowrap text-sm text-yellow-800 font-bold chrome-optimized">🔥 HOT DEALS! 🔥 CALL NOW FOR FREE CONSULTATION! 🔥 …</div> aka getByText('🔥 HOT DEALS! 🔥 CALL NOW FOR').first() 2) <div class="animate-marquee whitespace-nowrap text-sm text-yellow-800 font-bold chrome-optimized">🔥 HOT DEALS! 🔥 CALL NOW FOR FREE CONSULTATION! 🔥 …</div> aka getByText('🔥 HOT DEALS! 🔥 CALL NOW FOR').nth(1) 3) <a href="/contact" class="inline-flex items-center justify-center whitespace-nowrap font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:shadow-lg h-11 rounded-md px-8 text-base md:h-11 md:px-8 bg-accent hover:bg-accent/90 text-accent-foreground shadow-lg min-h-[44px] min-w-[44px] focus:outline-none focus:ring-2 focus:ring-ring focus:…>Get Your Free Consultation</a> aka getByRole('link', { name: 'Get Your Free Consultation' }) 4) <div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 hover:bg-secondary/80 bg-background/20 text-primary-foreground border-background/30">…</div> aka getByText('Free Consultation', { exact: true }) Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByText('Free consultation') 111 | 112 | // Check benefit points > 113 | await expect(page.getByText('Free consultation')).toBeVisible(); | ^ 114 | await expect(page.getByText('30-day guarantee')).toBeVisible(); 115 | await expect(page.getByText('NASA-grade precision')).toBeVisible(); 116 | }); at /home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/demo.spec.ts:113:55
[chromium] › e2e/contact-form.spec.ts:100:7 › Contact Form › should handle server errors gracefully: e2e/contact-form.spec.ts#L117
2) [chromium] › e2e/contact-form.spec.ts:100:7 › Contact Form › should handle server errors gracefully Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText(/Something went wrong/i) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByText(/Something went wrong/i) 115 | 116 | // Should show error message with longer timeout > 117 | await expect(page.getByText(/Something went wrong/i)).toBeVisible({ timeout: 10000 }); | ^ 118 | }); 119 | 120 | test('should preserve form data on validation error', async ({ page }) => { at /home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/contact-form.spec.ts:117:59
[chromium] › e2e/contact-form.spec.ts:100:7 › Contact Form › should handle server errors gracefully: e2e/contact-form.spec.ts#L117
2) [chromium] › e2e/contact-form.spec.ts:100:7 › Contact Form › should handle server errors gracefully Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText(/Something went wrong/i) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByText(/Something went wrong/i) 115 | 116 | // Should show error message with longer timeout > 117 | await expect(page.getByText(/Something went wrong/i)).toBeVisible({ timeout: 10000 }); | ^ 118 | }); 119 | 120 | test('should preserve form data on validation error', async ({ page }) => { at /home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/contact-form.spec.ts:117:59
[chromium] › e2e/contact-form.spec.ts:100:7 › Contact Form › should handle server errors gracefully: e2e/contact-form.spec.ts#L117
2) [chromium] › e2e/contact-form.spec.ts:100:7 › Contact Form › should handle server errors gracefully Error: expect(locator).toBeVisible() failed Locator: getByText(/Something went wrong/i) Expected: visible Timeout: 10000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 10000ms - waiting for getByText(/Something went wrong/i) 115 | 116 | // Should show error message with longer timeout > 117 | await expect(page.getByText(/Something went wrong/i)).toBeVisible({ timeout: 10000 }); | ^ 118 | }); 119 | 120 | test('should preserve form data on validation error', async ({ page }) => { at /home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/contact-form.spec.ts:117:59
[chromium] › e2e/contact-form-simple.spec.ts:63:7 › Contact Form Simple Tests › should handle API errors gracefully: e2e/contact-form-simple.spec.ts#L82
1) [chromium] › e2e/contact-form-simple.spec.ts:63:7 › Contact Form Simple Tests › should handle API errors gracefully Retry #2 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText(/Something went wrong/i) Expected: visible Timeout: 15000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 15000ms - waiting for getByText(/Something went wrong/i) 80 | 81 | // Should show error message > 82 | await expect(page.getByText(/Something went wrong/i)).toBeVisible({ timeout: 15000 }); | ^ 83 | }); 84 | }); at /home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/contact-form-simple.spec.ts:82:59
[chromium] › e2e/contact-form-simple.spec.ts:63:7 › Contact Form Simple Tests › should handle API errors gracefully: e2e/contact-form-simple.spec.ts#L82
1) [chromium] › e2e/contact-form-simple.spec.ts:63:7 › Contact Form Simple Tests › should handle API errors gracefully Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── Error: expect(locator).toBeVisible() failed Locator: getByText(/Something went wrong/i) Expected: visible Timeout: 15000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 15000ms - waiting for getByText(/Something went wrong/i) 80 | 81 | // Should show error message > 82 | await expect(page.getByText(/Something went wrong/i)).toBeVisible({ timeout: 15000 }); | ^ 83 | }); 84 | }); at /home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/contact-form-simple.spec.ts:82:59
[chromium] › e2e/contact-form-simple.spec.ts:63:7 › Contact Form Simple Tests › should handle API errors gracefully: e2e/contact-form-simple.spec.ts#L82
1) [chromium] › e2e/contact-form-simple.spec.ts:63:7 › Contact Form Simple Tests › should handle API errors gracefully Error: expect(locator).toBeVisible() failed Locator: getByText(/Something went wrong/i) Expected: visible Timeout: 15000ms Error: element(s) not found Call log: - Expect "toBeVisible" with timeout 15000ms - waiting for getByText(/Something went wrong/i) 80 | 81 | // Should show error message > 82 | await expect(page.getByText(/Something went wrong/i)).toBeVisible({ timeout: 15000 }); | ^ 83 | }); 84 | }); at /home/runner/work/phoenix-precision-agency/phoenix-precision-agency/e2e/contact-form-simple.spec.ts:82:59
test-summary
Invalid character in entity name Line: 9 Column: 260 Char: &
test (firefox)
No files were found with the provided path: test-results/. No artifacts will be uploaded.
test (webkit)
No files were found with the provided path: test-results/. No artifacts will be uploaded.
🎭 Playwright Run Summary
8 failed [chromium] › e2e/contact-form-simple.spec.ts:63:7 › Contact Form Simple Tests › should handle API errors gracefully [chromium] › e2e/contact-form.spec.ts:100:7 › Contact Form › should handle server errors gracefully [chromium] › e2e/demo.spec.ts:102:7 › Interactive Demo › should display CTA section below demo ─ [chromium] › e2e/demo.spec.ts:118:7 › Interactive Demo › should handle mobile view transitions ─ [chromium] › e2e/navigation.spec.ts:9:7 › Navigation and Routing › should navigate between all pages successfully [chromium] › e2e/responsive.spec.ts:42:7 › Responsive Design › should show mobile navigation menu on mobile devices [chromium] › e2e/responsive.spec.ts:260:7 › Responsive Design › should have responsive images ── [chromium] › e2e/responsive.spec.ts:280:7 › Responsive Design › should handle text overflow appropriately 1 skipped 35 passed (2.8m)

Artifacts

Produced during runtime
Name Size Digest
playwright-report-chromium Expired
18.3 MB
sha256:4d23f756d6e39588a6d709aa2882ee3a633eb4b6ef472614ed568981bac32a13
playwright-report-firefox Expired
189 KB
sha256:c3232e187ec295ed2d6921c37e369ed5493dc9b787b401cbe1ae5a6d7670d370
playwright-report-webkit Expired
189 KB
sha256:10221c1dd4fe93d4688ddc03fb8c0095acc5c0390aade6a662cb8a4777fe9af3
test-results-chromium Expired
22 MB
sha256:f337a3defffe68854a8d73c57de0374221824e84fab7a092935e5e803e84dae7