diff --git a/frontend/playwright-report/data/5ffa88b026d5419ae4ab64937dbb748dff0649bd.png b/frontend/playwright-report/data/5ffa88b026d5419ae4ab64937dbb748dff0649bd.png new file mode 100644 index 0000000..6fc8483 Binary files /dev/null and b/frontend/playwright-report/data/5ffa88b026d5419ae4ab64937dbb748dff0649bd.png differ diff --git a/frontend/playwright-report/data/bbb7e32ecf71376161c96bc2259c44bb2a19be2a.md b/frontend/playwright-report/data/bbb7e32ecf71376161c96bc2259c44bb2a19be2a.md new file mode 100644 index 0000000..d6dfb6c --- /dev/null +++ b/frontend/playwright-report/data/bbb7e32ecf71376161c96bc2259c44bb2a19be2a.md @@ -0,0 +1,71 @@ +# Page snapshot + +```yaml +- generic [ref=e1]: + - generic [ref=e3]: + - generic [ref=e5]: + - button "Collapse sidebar" [ref=e6]: + - img [ref=e7] + - generic [ref=e13]: + - heading "Smooth Schedule" [level=1] [ref=e14] + - paragraph [ref=e15]: superuser + - navigation [ref=e16]: + - paragraph [ref=e17]: Operations + - link "Dashboard" [ref=e18] [cursor=pointer]: + - /url: /platform/dashboard + - img [ref=e19] + - generic [ref=e24]: Dashboard + - link "Businesses" [ref=e25] [cursor=pointer]: + - /url: /platform/businesses + - img [ref=e26] + - generic [ref=e30]: Businesses + - link "Users" [ref=e31] [cursor=pointer]: + - /url: /platform/users + - img [ref=e32] + - generic [ref=e37]: Users + - link "Support" [active] [ref=e38] [cursor=pointer]: + - /url: /platform/support + - img [ref=e39] + - generic [ref=e41]: Support + - paragraph [ref=e42]: System + - link "Staff" [ref=e43] [cursor=pointer]: + - /url: /platform/staff + - img [ref=e44] + - generic [ref=e46]: Staff + - link "Platform Settings" [ref=e47] [cursor=pointer]: + - /url: /platform/settings + - img [ref=e48] + - generic [ref=e51]: Platform Settings + - generic [ref=e52]: + - link "Help" [ref=e53] [cursor=pointer]: + - /url: /help/ticketing + - img [ref=e54] + - generic [ref=e57]: Help + - link "API Docs" [ref=e58] [cursor=pointer]: + - /url: /help/api + - img [ref=e59] + - generic [ref=e62]: API Docs + - generic [ref=e63]: + - banner [ref=e64]: + - generic [ref=e66]: + - img [ref=e67] + - generic [ref=e70]: smoothschedule.com + - generic [ref=e71]: / + - generic [ref=e72]: Admin Console + - generic [ref=e73]: + - button [ref=e74]: + - img [ref=e75] + - button "Open notifications" [ref=e78]: + - img [ref=e79] + - button "Super User Superuser SU" [ref=e83]: + - generic [ref=e84]: + - paragraph [ref=e85]: Super User + - paragraph [ref=e86]: Superuser + - generic [ref=e87]: SU + - img [ref=e88] + - main [ref=e90]: + - generic [ref=e91]: + - img [ref=e92] + - paragraph [ref=e94]: Error loading tickets + - generic [ref=e95]: $0k +``` \ No newline at end of file diff --git a/frontend/playwright-report/index.html b/frontend/playwright-report/index.html index 70d7d0f..18ccdb3 100644 --- a/frontend/playwright-report/index.html +++ b/frontend/playwright-report/index.html @@ -82,4 +82,4 @@ Error generating stack: `+n.message+`
- \ No newline at end of file + \ No newline at end of file diff --git a/frontend/test-results/.last-run.json b/frontend/test-results/.last-run.json new file mode 100644 index 0000000..65c8837 --- /dev/null +++ b/frontend/test-results/.last-run.json @@ -0,0 +1,6 @@ +{ + "status": "failed", + "failedTests": [ + "9a7e4977473ed55fa848-618b0c2ae07e5089ab92" + ] +} \ No newline at end of file diff --git a/frontend/test-results/diagnose_ws-diagnose-websocket-connection-chromium/error-context.md b/frontend/test-results/diagnose_ws-diagnose-websocket-connection-chromium/error-context.md new file mode 100644 index 0000000..d6dfb6c --- /dev/null +++ b/frontend/test-results/diagnose_ws-diagnose-websocket-connection-chromium/error-context.md @@ -0,0 +1,71 @@ +# Page snapshot + +```yaml +- generic [ref=e1]: + - generic [ref=e3]: + - generic [ref=e5]: + - button "Collapse sidebar" [ref=e6]: + - img [ref=e7] + - generic [ref=e13]: + - heading "Smooth Schedule" [level=1] [ref=e14] + - paragraph [ref=e15]: superuser + - navigation [ref=e16]: + - paragraph [ref=e17]: Operations + - link "Dashboard" [ref=e18] [cursor=pointer]: + - /url: /platform/dashboard + - img [ref=e19] + - generic [ref=e24]: Dashboard + - link "Businesses" [ref=e25] [cursor=pointer]: + - /url: /platform/businesses + - img [ref=e26] + - generic [ref=e30]: Businesses + - link "Users" [ref=e31] [cursor=pointer]: + - /url: /platform/users + - img [ref=e32] + - generic [ref=e37]: Users + - link "Support" [active] [ref=e38] [cursor=pointer]: + - /url: /platform/support + - img [ref=e39] + - generic [ref=e41]: Support + - paragraph [ref=e42]: System + - link "Staff" [ref=e43] [cursor=pointer]: + - /url: /platform/staff + - img [ref=e44] + - generic [ref=e46]: Staff + - link "Platform Settings" [ref=e47] [cursor=pointer]: + - /url: /platform/settings + - img [ref=e48] + - generic [ref=e51]: Platform Settings + - generic [ref=e52]: + - link "Help" [ref=e53] [cursor=pointer]: + - /url: /help/ticketing + - img [ref=e54] + - generic [ref=e57]: Help + - link "API Docs" [ref=e58] [cursor=pointer]: + - /url: /help/api + - img [ref=e59] + - generic [ref=e62]: API Docs + - generic [ref=e63]: + - banner [ref=e64]: + - generic [ref=e66]: + - img [ref=e67] + - generic [ref=e70]: smoothschedule.com + - generic [ref=e71]: / + - generic [ref=e72]: Admin Console + - generic [ref=e73]: + - button [ref=e74]: + - img [ref=e75] + - button "Open notifications" [ref=e78]: + - img [ref=e79] + - button "Super User Superuser SU" [ref=e83]: + - generic [ref=e84]: + - paragraph [ref=e85]: Super User + - paragraph [ref=e86]: Superuser + - generic [ref=e87]: SU + - img [ref=e88] + - main [ref=e90]: + - generic [ref=e91]: + - img [ref=e92] + - paragraph [ref=e94]: Error loading tickets + - generic [ref=e95]: $0k +``` \ No newline at end of file diff --git a/frontend/test-results/diagnose_ws-diagnose-websocket-connection-chromium/test-failed-1.png b/frontend/test-results/diagnose_ws-diagnose-websocket-connection-chromium/test-failed-1.png new file mode 100644 index 0000000..6fc8483 Binary files /dev/null and b/frontend/test-results/diagnose_ws-diagnose-websocket-connection-chromium/test-failed-1.png differ diff --git a/frontend/tests/e2e/diagnose_ws.spec.ts b/frontend/tests/e2e/diagnose_ws.spec.ts new file mode 100644 index 0000000..59c30c2 --- /dev/null +++ b/frontend/tests/e2e/diagnose_ws.spec.ts @@ -0,0 +1,40 @@ +import { test, expect } from '@playwright/test'; + +test('diagnose websocket connection', async ({ page }) => { + test.setTimeout(60000); + // 1. Go to the platform login page + console.log('Navigating to login page...'); + await page.goto('http://platform.lvh.me:5173/login'); + + // 2. Log in using Quick Login (Platform Superuser) + await page.getByRole('button', { name: 'Platform Superuser SUPERUSER' }).click(); + + // 3. Wait for navigation to dashboard + await page.waitForURL('**/dashboard'); + console.log('Logged in successfully.'); + + // 4. Navigate to support page + console.log('Navigating to support page...'); + await page.getByRole('link', { name: 'Support' }).click(); + + // 5. Monitor WebSocket connections + const wsPromise = page.waitForEvent('websocket', ws => ws.url().includes('/ws/tickets/')); + + try { + const ws = await wsPromise; + console.log('WebSocket created:', ws.url()); + + // Wait a bit to see if it stays connected + await page.waitForTimeout(5000); + + if (ws.isClosed()) { + console.error('WebSocket is CLOSED.'); + throw new Error('WebSocket connection closed unexpectedly'); + } else { + console.log('WebSocket is OPEN.'); + } + } catch (e) { + console.error('WebSocket error:', e); + throw e; + } +});