488 lines
No EOL
22 KiB
JSON
488 lines
No EOL
22 KiB
JSON
{
|
|
"config": {
|
|
"configFile": "/home/senke/git/talas/veza/apps/web/playwright.config.ts",
|
|
"rootDir": "/home/senke/git/talas/veza/apps/web/e2e/tests",
|
|
"forbidOnly": false,
|
|
"fullyParallel": true,
|
|
"globalSetup": "/home/senke/git/talas/veza/apps/web/e2e/global-setup.ts",
|
|
"globalTeardown": null,
|
|
"globalTimeout": 0,
|
|
"grep": {},
|
|
"grepInvert": null,
|
|
"maxFailures": 0,
|
|
"metadata": {
|
|
"actualWorkers": 1
|
|
},
|
|
"preserveOutput": "always",
|
|
"reporter": [
|
|
[
|
|
"html",
|
|
null
|
|
],
|
|
[
|
|
"json",
|
|
{
|
|
"outputFile": "e2e-results.json"
|
|
}
|
|
]
|
|
],
|
|
"reportSlowTests": {
|
|
"max": 5,
|
|
"threshold": 300000
|
|
},
|
|
"quiet": false,
|
|
"projects": [
|
|
{
|
|
"outputDir": "/home/senke/git/talas/veza/apps/web/test-results",
|
|
"repeatEach": 1,
|
|
"retries": 0,
|
|
"metadata": {
|
|
"actualWorkers": 1
|
|
},
|
|
"id": "chromium",
|
|
"name": "chromium",
|
|
"testDir": "/home/senke/git/talas/veza/apps/web/e2e/tests",
|
|
"testIgnore": [],
|
|
"testMatch": [
|
|
"**/*.@(spec|test).?(c|m)[jt]s?(x)"
|
|
],
|
|
"timeout": 60000
|
|
},
|
|
{
|
|
"outputDir": "/home/senke/git/talas/veza/apps/web/test-results",
|
|
"repeatEach": 1,
|
|
"retries": 0,
|
|
"metadata": {
|
|
"actualWorkers": 1
|
|
},
|
|
"id": "firefox",
|
|
"name": "firefox",
|
|
"testDir": "/home/senke/git/talas/veza/apps/web/e2e/tests",
|
|
"testIgnore": [],
|
|
"testMatch": [
|
|
"**/*.@(spec|test).?(c|m)[jt]s?(x)"
|
|
],
|
|
"timeout": 60000
|
|
},
|
|
{
|
|
"outputDir": "/home/senke/git/talas/veza/apps/web/test-results",
|
|
"repeatEach": 1,
|
|
"retries": 0,
|
|
"metadata": {
|
|
"actualWorkers": 1
|
|
},
|
|
"id": "webkit",
|
|
"name": "webkit",
|
|
"testDir": "/home/senke/git/talas/veza/apps/web/e2e/tests",
|
|
"testIgnore": [],
|
|
"testMatch": [
|
|
"**/*.@(spec|test).?(c|m)[jt]s?(x)"
|
|
],
|
|
"timeout": 60000
|
|
},
|
|
{
|
|
"outputDir": "/home/senke/git/talas/veza/apps/web/test-results",
|
|
"repeatEach": 1,
|
|
"retries": 0,
|
|
"metadata": {
|
|
"actualWorkers": 1
|
|
},
|
|
"id": "msedge",
|
|
"name": "msedge",
|
|
"testDir": "/home/senke/git/talas/veza/apps/web/e2e/tests",
|
|
"testIgnore": [],
|
|
"testMatch": [
|
|
"**/*.@(spec|test).?(c|m)[jt]s?(x)"
|
|
],
|
|
"timeout": 60000
|
|
}
|
|
],
|
|
"shard": null,
|
|
"tags": [],
|
|
"updateSnapshots": "missing",
|
|
"updateSourceMethod": "patch",
|
|
"version": "1.57.0",
|
|
"workers": 1,
|
|
"webServer": {
|
|
"command": "npm run dev",
|
|
"url": "http://localhost:5173",
|
|
"reuseExistingServer": true,
|
|
"timeout": 120000
|
|
}
|
|
},
|
|
"suites": [
|
|
{
|
|
"title": "ui-audit.spec.ts",
|
|
"file": "ui-audit.spec.ts",
|
|
"column": 0,
|
|
"line": 0,
|
|
"specs": [],
|
|
"suites": [
|
|
{
|
|
"title": "Dynamic UI/UX Audit",
|
|
"file": "ui-audit.spec.ts",
|
|
"line": 23,
|
|
"column": 6,
|
|
"specs": [
|
|
{
|
|
"title": "Audit page: /dashboard",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 0,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 5132,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
|
|
},
|
|
{
|
|
"text": "⏳ [LOGIN] Waiting 500ms before login (1769366024585ms since last login)...\n"
|
|
},
|
|
{
|
|
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: auth-storage)\n"
|
|
},
|
|
{
|
|
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
|
},
|
|
{
|
|
"text": "✅ [LOGIN] Application fully hydrated\n"
|
|
},
|
|
{
|
|
"text": "\n🔍 Auditing /dashboard...\n"
|
|
},
|
|
{
|
|
"text": "⚠️ Console Errors on /dashboard: [\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 401 (Unauthorized)'\u001b[39m,\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 400 (Bad Request)'\u001b[39m,\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 401 (Unauthorized)'\u001b[39m,\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 400 (Bad Request)'\u001b[39m\n]\n"
|
|
},
|
|
{
|
|
"text": "⚠️ Found 2 interactive elements smaller than 32x32px on /dashboard\n"
|
|
},
|
|
{
|
|
"text": "✅ Audit complete for /dashboard\n"
|
|
}
|
|
],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-01-25T18:33:44.423Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "b1f5fdeb991d5e404bae-7b12d2d1c26cca8ae4ab",
|
|
"file": "ui-audit.spec.ts",
|
|
"line": 37,
|
|
"column": 9
|
|
},
|
|
{
|
|
"title": "Audit page: /library",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 0,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 4850,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
|
|
},
|
|
{
|
|
"text": "⏳ [LOGIN] Waiting 500ms before login (4593ms since last login)...\n"
|
|
},
|
|
{
|
|
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: auth-storage)\n"
|
|
},
|
|
{
|
|
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
|
},
|
|
{
|
|
"text": "✅ [LOGIN] Application fully hydrated\n"
|
|
},
|
|
{
|
|
"text": "\n🔍 Auditing /library...\n"
|
|
},
|
|
{
|
|
"text": "⚠️ Console Errors on /library: [\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 401 (Unauthorized)'\u001b[39m,\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 400 (Bad Request)'\u001b[39m,\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 401 (Unauthorized)'\u001b[39m,\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 400 (Bad Request)'\u001b[39m\n]\n"
|
|
},
|
|
{
|
|
"text": "⚠️ Found 2 interactive elements smaller than 32x32px on /library\n"
|
|
},
|
|
{
|
|
"text": "✅ Audit complete for /library\n"
|
|
}
|
|
],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-01-25T18:33:49.630Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "b1f5fdeb991d5e404bae-9ba15251363700ccfc0d",
|
|
"file": "ui-audit.spec.ts",
|
|
"line": 37,
|
|
"column": 9
|
|
},
|
|
{
|
|
"title": "Audit page: /marketplace",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 0,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 4735,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
|
|
},
|
|
{
|
|
"text": "⏳ [LOGIN] Waiting 500ms before login (4358ms since last login)...\n"
|
|
},
|
|
{
|
|
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: auth-storage)\n"
|
|
},
|
|
{
|
|
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
|
},
|
|
{
|
|
"text": "✅ [LOGIN] Application fully hydrated\n"
|
|
},
|
|
{
|
|
"text": "\n🔍 Auditing /marketplace...\n"
|
|
},
|
|
{
|
|
"text": "⚠️ Console Errors on /marketplace: [\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 401 (Unauthorized)'\u001b[39m,\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 400 (Bad Request)'\u001b[39m,\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 401 (Unauthorized)'\u001b[39m,\n \u001b[32m'[http://localhost:5173/dashboard] Failed to load resource: the server responded with a status of 400 (Bad Request)'\u001b[39m\n]\n"
|
|
},
|
|
{
|
|
"text": "⚠️ Found 2 interactive elements smaller than 32x32px on /marketplace\n"
|
|
},
|
|
{
|
|
"text": "✅ Audit complete for /marketplace\n"
|
|
}
|
|
],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2026-01-25T18:33:54.497Z",
|
|
"annotations": [],
|
|
"attachments": []
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "b1f5fdeb991d5e404bae-3c89b9aed6b563183f59",
|
|
"file": "ui-audit.spec.ts",
|
|
"line": 37,
|
|
"column": 9
|
|
},
|
|
{
|
|
"title": "Audit page: /settings",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 0,
|
|
"parallelIndex": 0,
|
|
"status": "interrupted",
|
|
"duration": 20580,
|
|
"error": {
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('nav[role=\"navigation\"], aside[role=\"navigation\"]')\nExpected: visible\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" with timeout 15000ms\u001b[22m\n\u001b[2m - waiting for locator('nav[role=\"navigation\"], aside[role=\"navigation\"]')\u001b[22m\n",
|
|
"stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('nav[role=\"navigation\"], aside[role=\"navigation\"]')\nExpected: visible\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" with timeout 15000ms\u001b[22m\n\u001b[2m - waiting for locator('nav[role=\"navigation\"], aside[role=\"navigation\"]')\u001b[22m\n\n at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:415:82)\n at /home/senke/git/talas/veza/apps/web/e2e/tests/ui-audit.spec.ts:33:9",
|
|
"location": {
|
|
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
|
|
"column": 82,
|
|
"line": 415
|
|
},
|
|
"snippet": "\u001b[90m at \u001b[39m../utils/test-helpers.ts:415\n\n\u001b[0m \u001b[90m 413 |\u001b[39m\n \u001b[90m 414 |\u001b[39m \u001b[90m// Vérifier que l'utilisateur est authentifié (sidebar visible)\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 415 |\u001b[39m \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'nav[role=\"navigation\"], aside[role=\"navigation\"]'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 416 |\u001b[39m timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 417 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 418 |\u001b[39m\u001b[0m"
|
|
},
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
|
|
"column": 82,
|
|
"line": 415
|
|
},
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mlocator\u001b[39m\u001b[2m).\u001b[22mtoBeVisible\u001b[2m(\u001b[22m\u001b[2m)\u001b[22m failed\n\nLocator: locator('nav[role=\"navigation\"], aside[role=\"navigation\"]')\nExpected: visible\nError: element(s) not found\n\nCall log:\n\u001b[2m - Expect \"toBeVisible\" with timeout 15000ms\u001b[22m\n\u001b[2m - waiting for locator('nav[role=\"navigation\"], aside[role=\"navigation\"]')\u001b[22m\n\n\n\u001b[90m at \u001b[39m../utils/test-helpers.ts:415\n\n\u001b[0m \u001b[90m 413 |\u001b[39m\n \u001b[90m 414 |\u001b[39m \u001b[90m// Vérifier que l'utilisateur est authentifié (sidebar visible)\u001b[39m\n\u001b[31m\u001b[1m>\u001b[22m\u001b[39m\u001b[90m 415 |\u001b[39m \u001b[36mawait\u001b[39m expect(page\u001b[33m.\u001b[39mlocator(\u001b[32m'nav[role=\"navigation\"], aside[role=\"navigation\"]'\u001b[39m))\u001b[33m.\u001b[39mtoBeVisible({\n \u001b[90m |\u001b[39m \u001b[31m\u001b[1m^\u001b[22m\u001b[39m\n \u001b[90m 416 |\u001b[39m timeout\u001b[33m:\u001b[39m \u001b[35m15000\u001b[39m\u001b[33m,\u001b[39m\n \u001b[90m 417 |\u001b[39m })\u001b[33m;\u001b[39m\n \u001b[90m 418 |\u001b[39m\u001b[0m\n\u001b[2m at loginAsUser (/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts:415:82)\u001b[22m\n\u001b[2m at /home/senke/git/talas/veza/apps/web/e2e/tests/ui-audit.spec.ts:33:9\u001b[22m"
|
|
}
|
|
],
|
|
"stdout": [
|
|
{
|
|
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
|
|
},
|
|
{
|
|
"text": "⏳ [LOGIN] Waiting 500ms before login (4251ms since last login)...\n"
|
|
},
|
|
{
|
|
"text": "✏️ [LOGIN] User not authenticated, proceeding with login form...\n"
|
|
},
|
|
{
|
|
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form\n"
|
|
},
|
|
{
|
|
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form\n"
|
|
},
|
|
{
|
|
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
|
|
},
|
|
{
|
|
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
|
|
},
|
|
{
|
|
"text": "✅ [FORM SUBMIT] Form form submitted successfully\n"
|
|
},
|
|
{
|
|
"text": "⏳ [LOGIN] Waiting for networkidle after navigation...\n"
|
|
}
|
|
],
|
|
"stderr": [
|
|
{
|
|
"text": "⚠️ [LOGIN] Form not visible and not on dashboard. Proceeding (might fail)...\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2026-01-25T18:33:59.245Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "screenshot",
|
|
"contentType": "image/png",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/ui-audit-Dynamic-UI-UX-Audit-Audit-page-settings-chromium/test-failed-1.png"
|
|
},
|
|
{
|
|
"name": "video",
|
|
"contentType": "video/webm",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/ui-audit-Dynamic-UI-UX-Audit-Audit-page-settings-chromium/video.webm"
|
|
}
|
|
],
|
|
"errorLocation": {
|
|
"file": "/home/senke/git/talas/veza/apps/web/e2e/utils/test-helpers.ts",
|
|
"column": 82,
|
|
"line": 415
|
|
}
|
|
}
|
|
],
|
|
"status": "skipped"
|
|
}
|
|
],
|
|
"id": "b1f5fdeb991d5e404bae-168e6537046bc9804464",
|
|
"file": "ui-audit.spec.ts",
|
|
"line": 37,
|
|
"column": 9
|
|
},
|
|
{
|
|
"title": "Audit page: /profile/me",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [],
|
|
"status": "skipped"
|
|
}
|
|
],
|
|
"id": "b1f5fdeb991d5e404bae-c6919a14d064b6a9ad38",
|
|
"file": "ui-audit.spec.ts",
|
|
"line": 37,
|
|
"column": 9
|
|
},
|
|
{
|
|
"title": "Audit page: /studio",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [],
|
|
"status": "skipped"
|
|
}
|
|
],
|
|
"id": "b1f5fdeb991d5e404bae-c31a81927a44faedaff5",
|
|
"file": "ui-audit.spec.ts",
|
|
"line": 37,
|
|
"column": 9
|
|
},
|
|
{
|
|
"title": "Audit page: /messages",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [],
|
|
"status": "skipped"
|
|
}
|
|
],
|
|
"id": "b1f5fdeb991d5e404bae-102430bbd33e8fefb9ff",
|
|
"file": "ui-audit.spec.ts",
|
|
"line": 37,
|
|
"column": 9
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"errors": [],
|
|
"stats": {
|
|
"startTime": "2026-01-25T18:33:42.805Z",
|
|
"duration": 37081.33,
|
|
"expected": 3,
|
|
"skipped": 4,
|
|
"unexpected": 0,
|
|
"flaky": 0
|
|
}
|
|
} |