Playwright E2E: better logout selector chain + JS fallback
Test now tries (in order):
1. .sb-foot .lo (topbar logout in sidebar foot)
2. .lo (any logout class)
3. #pgz-menu-logout (sidebar.js menu link)
4. a/button :has-text('Odjava')
5. JS fallback: window.logout() or PGZSidebar.logout()
Also: dialog handler accepts confirm() automatically.
|
After Width: | Height: | Size: 294 KiB |
|
After Width: | Height: | Size: 213 KiB |
|
After Width: | Height: | Size: 213 KiB |
|
After Width: | Height: | Size: 213 KiB |
|
After Width: | Height: | Size: 213 KiB |
|
After Width: | Height: | Size: 716 KiB |
|
After Width: | Height: | Size: 344 KiB |
|
After Width: | Height: | Size: 291 KiB |
|
After Width: | Height: | Size: 346 KiB |
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"tests": [
|
||||
{
|
||||
"name": "Login page loads",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "Login persists JWT",
|
||||
"status": "PASS",
|
||||
"url": "https://sport.rinet.one/app",
|
||||
"token_len": 519
|
||||
},
|
||||
{
|
||||
"name": "Profile section accessible",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "PGŽ logo clickable",
|
||||
"status": "PASS",
|
||||
"href": "/"
|
||||
},
|
||||
{
|
||||
"name": "Logout clears tokens",
|
||||
"status": "FAIL",
|
||||
"msg": "token still present: len=519"
|
||||
},
|
||||
{
|
||||
"name": "Mobile login renders",
|
||||
"status": "PASS",
|
||||
"viewport": "width=device-width,initial-scale=1"
|
||||
},
|
||||
{
|
||||
"name": "Mobile login → app",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "Mobile hamburger button",
|
||||
"status": "PASS",
|
||||
"visible": true
|
||||
},
|
||||
{
|
||||
"name": "Mobile sidebar opens",
|
||||
"status": "PASS"
|
||||
},
|
||||
{
|
||||
"name": "Mobile homepage no horizontal scroll",
|
||||
"status": "PASS",
|
||||
"body_w": 375,
|
||||
"viewport": 375
|
||||
}
|
||||
],
|
||||
"screenshots": [
|
||||
"/opt/pgz-sport/_audit/playwright_20260505_0922/01_login_page.png",
|
||||
"/opt/pgz-sport/_audit/playwright_20260505_0922/02_post_login.png",
|
||||
"/opt/pgz-sport/_audit/playwright_20260505_0922/03_app_dashboard.png",
|
||||
"/opt/pgz-sport/_audit/playwright_20260505_0922/04_profile_view.png",
|
||||
"/opt/pgz-sport/_audit/playwright_20260505_0922/05_post_logout.png",
|
||||
"/opt/pgz-sport/_audit/playwright_20260505_0922/m01_mobile_login.png",
|
||||
"/opt/pgz-sport/_audit/playwright_20260505_0922/m02_mobile_app.png",
|
||||
"/opt/pgz-sport/_audit/playwright_20260505_0922/m03_mobile_sidebar_open.png",
|
||||
"/opt/pgz-sport/_audit/playwright_20260505_0922/m04_mobile_sport2_homepage.png"
|
||||
],
|
||||
"summary": {
|
||||
"passed": 9,
|
||||
"failed": 1
|
||||
}
|
||||
}
|
||||