- Conflit SQLx résolu (alignement sur version 0.7) - build.rs configurés pour protoc dans chat/stream servers - API Prometheus migrée vers HistogramOpts - Traits Display/Debug corrigés (String au lieu de &dyn Display) - API TOTP corrigée (totp-rs 5.4 avec Secret::Encoded) - Layers tracing-subscriber corrigés (types conditionnels) - VezaError/VezaResult exportés dans lib.rs - TransactionProvider simplifié (retour void au lieu de Box<dyn>) - VezaConfig contraint Serialize pour to_json() Files: veza-common/Cargo.toml, veza-common/src/*.rs, veza-chat-server/Cargo.toml, veza-chat-server/build.rs, veza-stream-server/Cargo.toml, veza-stream-server/build.rs, VEZA_ROADMAP.json Hours: 8 estimated, 3 actual
726 lines
No EOL
34 KiB
JSON
726 lines
No EOL
34 KiB
JSON
{
|
|
"config": {
|
|
"configFile": "/home/senke/git/talas/veza/apps/web/playwright.config.ts",
|
|
"rootDir": "/home/senke/git/talas/veza/apps/web/e2e",
|
|
"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",
|
|
"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",
|
|
"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",
|
|
"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",
|
|
"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": "auth-flow.spec.ts",
|
|
"file": "auth-flow.spec.ts",
|
|
"column": 0,
|
|
"line": 0,
|
|
"specs": [],
|
|
"suites": [
|
|
{
|
|
"title": "Complete Auth Flow E2E",
|
|
"file": "auth-flow.spec.ts",
|
|
"line": 26,
|
|
"column": 6,
|
|
"specs": [
|
|
{
|
|
"title": "should register a new user with valid email",
|
|
"ok": false,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 4,
|
|
"parallelIndex": 0,
|
|
"status": "failed",
|
|
"duration": 13072,
|
|
"error": {
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m",
|
|
"stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n at /home/senke/git/talas/veza/apps/web/e2e/auth-flow.spec.ts:110:30",
|
|
"location": {
|
|
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth-flow.spec.ts",
|
|
"column": 30,
|
|
"line": 110
|
|
},
|
|
"snippet": " 108 | .isVisible({ timeout: 3000 })\n 109 | .catch(() => false);\n> 110 | expect(successMessage).toBe(true);\n | ^\n 111 | console.log('✅ [AUTH-FLOW] Registration successful (success message shown)');\n 112 | }\n 113 |"
|
|
},
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth-flow.spec.ts",
|
|
"column": 30,
|
|
"line": 110
|
|
},
|
|
"message": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoBe\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // Object.is equality\u001b[22m\n\nExpected: \u001b[32mtrue\u001b[39m\nReceived: \u001b[31mfalse\u001b[39m\n\n 108 | .isVisible({ timeout: 3000 })\n 109 | .catch(() => false);\n> 110 | expect(successMessage).toBe(true);\n | ^\n 111 | console.log('✅ [AUTH-FLOW] Registration successful (success message shown)');\n 112 | }\n 113 |\n at /home/senke/git/talas/veza/apps/web/e2e/auth-flow.spec.ts:110:30"
|
|
}
|
|
],
|
|
"stdout": [
|
|
{
|
|
"text": "🧪 [AUTH-FLOW] Step 1: Register with valid email\n"
|
|
},
|
|
{
|
|
"text": "✏️ [FILL] Filling field input[name=\"email\"], input#email with value: test-flow-1766857215859@example.com\n"
|
|
},
|
|
{
|
|
"text": "✅ [FILL] Field input[name=\"email\"], input#email filled successfully\n"
|
|
},
|
|
{
|
|
"text": "✏️ [FILL] Filling field input[name=\"username\"], input#username with value: testuser1766857215859\n"
|
|
},
|
|
{
|
|
"text": "✅ [FILL] Field input[name=\"username\"], input#username filled successfully\n"
|
|
},
|
|
{
|
|
"text": "✏️ [FILL] Filling field input[name=\"password\"], input#password with value: Test123456789!\n"
|
|
},
|
|
{
|
|
"text": "✅ [FILL] Field input[name=\"password\"], input#password filled successfully\n"
|
|
},
|
|
{
|
|
"text": "✏️ [FILL] Filling field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"], input#passwordConfirm with value: Test123456789!\n"
|
|
},
|
|
{
|
|
"text": "✅ [FILL] Field input[name=\"passwordConfirm\"], input[name=\"password_confirm\"], input[name=\"confirmPassword\"], input#passwordConfirm filled successfully\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": "🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/register: 500\n"
|
|
},
|
|
{
|
|
"text": "🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error)\n"
|
|
},
|
|
{
|
|
"text": "🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/register: 500\n"
|
|
},
|
|
{
|
|
"text": "🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error)\n"
|
|
},
|
|
{
|
|
"text": "🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/register: 500\n"
|
|
},
|
|
{
|
|
"text": "🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error)\n"
|
|
},
|
|
{
|
|
"text": "🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/register: 500\n"
|
|
},
|
|
{
|
|
"text": "🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 500 (Internal Server Error)\n"
|
|
},
|
|
{
|
|
"text": "🔴 [CONSOLE ERROR] [API Error] HTTP 500 error after 3 retries - Request ID: 4ce083f7-2265-437b-9c9a-d9ffb4723cd1 {code: 9000, message: Failed to create user, request_id: 4ce083f7-2265-437b-9c9a-d9ffb4723cd1, timestamp: 2025-12-27T17:40:25Z, url: /auth/register}\n"
|
|
},
|
|
{
|
|
"text": "🔴 [CONSOLE ERROR] Register error: {code: 9000, message: Failed to create user, details: undefined, request_id: 4ce083f7-2265-437b-9c9a-d9ffb4723cd1, timestamp: 2025-12-27T17:40:25Z}\n"
|
|
},
|
|
{
|
|
"text": "\n📊 [AUTH-FLOW] === Final Verifications ===\n"
|
|
},
|
|
{
|
|
"text": "🔴 [AUTH-FLOW] Console errors (6):\n"
|
|
},
|
|
{
|
|
"text": " - Failed to load resource: the server responded with a status of 500 (Internal Server Error)\n"
|
|
},
|
|
{
|
|
"text": " - Failed to load resource: the server responded with a status of 500 (Internal Server Error)\n"
|
|
},
|
|
{
|
|
"text": " - Failed to load resource: the server responded with a status of 500 (Internal Server Error)\n"
|
|
},
|
|
{
|
|
"text": " - Failed to load resource: the server responded with a status of 500 (Internal Server Error)\n"
|
|
},
|
|
{
|
|
"text": " - [API Error] HTTP 500 error after 3 retries - Request ID: 4ce083f7-2265-437b-9c9a-d9ffb4723cd1 {code: 9000, message: Failed to create user, request_id: 4ce083f7-2265-437b-9c9a-d9ffb4723cd1, timestamp: 2025-12-27T17:40:25Z, url: /auth/register}\n"
|
|
},
|
|
{
|
|
"text": " - Register error: {code: 9000, message: Failed to create user, details: undefined, request_id: 4ce083f7-2265-437b-9c9a-d9ffb4723cd1, timestamp: 2025-12-27T17:40:25Z}\n"
|
|
},
|
|
{
|
|
"text": "🔴 [AUTH-FLOW] Network errors (4):\n"
|
|
},
|
|
{
|
|
"text": " - POST http://127.0.0.1:8080/api/v1/auth/register: 500\n"
|
|
},
|
|
{
|
|
"text": " - POST http://127.0.0.1:8080/api/v1/auth/register: 500\n"
|
|
},
|
|
{
|
|
"text": " - POST http://127.0.0.1:8080/api/v1/auth/register: 500\n"
|
|
},
|
|
{
|
|
"text": " - POST http://127.0.0.1:8080/api/v1/auth/register: 500\n"
|
|
}
|
|
],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2025-12-27T17:40:14.712Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "screenshot",
|
|
"contentType": "image/png",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-97b92-a-new-user-with-valid-email-chromium/test-failed-1.png"
|
|
},
|
|
{
|
|
"name": "video",
|
|
"contentType": "video/webm",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-97b92-a-new-user-with-valid-email-chromium/video.webm"
|
|
},
|
|
{
|
|
"name": "error-context",
|
|
"contentType": "text/markdown",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-97b92-a-new-user-with-valid-email-chromium/error-context.md"
|
|
},
|
|
{
|
|
"name": "trace",
|
|
"contentType": "application/zip",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-97b92-a-new-user-with-valid-email-chromium/trace.zip"
|
|
}
|
|
],
|
|
"errorLocation": {
|
|
"file": "/home/senke/git/talas/veza/apps/web/e2e/auth-flow.spec.ts",
|
|
"column": 30,
|
|
"line": 110
|
|
}
|
|
}
|
|
],
|
|
"status": "unexpected"
|
|
}
|
|
],
|
|
"id": "df6b40174562c70df515-dd266bf5fb98d1b15910",
|
|
"file": "auth-flow.spec.ts",
|
|
"line": 43,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "should verify email after registration",
|
|
"ok": false,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 5,
|
|
"parallelIndex": 0,
|
|
"status": "failed",
|
|
"duration": 225,
|
|
"error": {
|
|
"message": "Error: page.evaluate: SecurityError: Failed to read the 'sessionStorage' property from 'Window': Access is denied for this document.\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)",
|
|
"stack": "Error: page.evaluate: SecurityError: Failed to read the 'sessionStorage' property from 'Window': Access is denied for this document.\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at /home/senke/git/talas/veza/apps/web/e2e/auth-flow.spec.ts:141:36",
|
|
"location": {
|
|
"file": "<anonymous>",
|
|
"column": 16,
|
|
"line": 292
|
|
}
|
|
},
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "<anonymous>",
|
|
"column": 16,
|
|
"line": 292
|
|
},
|
|
"message": "Error: page.evaluate: SecurityError: Failed to read the 'sessionStorage' property from 'Window': Access is denied for this document.\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at /home/senke/git/talas/veza/apps/web/e2e/auth-flow.spec.ts:141:36"
|
|
}
|
|
],
|
|
"stdout": [
|
|
{
|
|
"text": "🧪 [AUTH-FLOW] Step 2: Verify email\n"
|
|
},
|
|
{
|
|
"text": "\n📊 [AUTH-FLOW] === Final Verifications ===\n"
|
|
},
|
|
{
|
|
"text": "✅ [AUTH-FLOW] No console errors\n"
|
|
},
|
|
{
|
|
"text": "✅ [AUTH-FLOW] No network errors\n"
|
|
}
|
|
],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2025-12-27T17:40:28.839Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "screenshot",
|
|
"contentType": "image/png",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-8d1d9-fy-email-after-registration-chromium/test-failed-1.png"
|
|
},
|
|
{
|
|
"name": "video",
|
|
"contentType": "video/webm",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-8d1d9-fy-email-after-registration-chromium/video.webm"
|
|
},
|
|
{
|
|
"name": "trace",
|
|
"contentType": "application/zip",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-8d1d9-fy-email-after-registration-chromium/trace.zip"
|
|
}
|
|
],
|
|
"errorLocation": {
|
|
"file": "<anonymous>",
|
|
"column": 16,
|
|
"line": 292
|
|
}
|
|
}
|
|
],
|
|
"status": "unexpected"
|
|
}
|
|
],
|
|
"id": "df6b40174562c70df515-52f4b8a229ce3eb1d2fd",
|
|
"file": "auth-flow.spec.ts",
|
|
"line": 137,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "should login successfully and verify token is stored",
|
|
"ok": false,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 6,
|
|
"parallelIndex": 0,
|
|
"status": "failed",
|
|
"duration": 222,
|
|
"error": {
|
|
"message": "Error: page.evaluate: SecurityError: Failed to read the 'sessionStorage' property from 'Window': Access is denied for this document.\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)",
|
|
"stack": "Error: page.evaluate: SecurityError: Failed to read the 'sessionStorage' property from 'Window': Access is denied for this document.\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at /home/senke/git/talas/veza/apps/web/e2e/auth-flow.spec.ts:201:36",
|
|
"location": {
|
|
"file": "<anonymous>",
|
|
"column": 16,
|
|
"line": 292
|
|
}
|
|
},
|
|
"errors": [
|
|
{
|
|
"location": {
|
|
"file": "<anonymous>",
|
|
"column": 16,
|
|
"line": 292
|
|
},
|
|
"message": "Error: page.evaluate: SecurityError: Failed to read the 'sessionStorage' property from 'Window': Access is denied for this document.\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at UtilityScript.evaluate (<anonymous>:292:16)\n at UtilityScript.<anonymous> (<anonymous>:1:44)\n at /home/senke/git/talas/veza/apps/web/e2e/auth-flow.spec.ts:201:36"
|
|
}
|
|
],
|
|
"stdout": [
|
|
{
|
|
"text": "🧪 [AUTH-FLOW] Step 3: Login and verify token\n"
|
|
},
|
|
{
|
|
"text": "\n📊 [AUTH-FLOW] === Final Verifications ===\n"
|
|
},
|
|
{
|
|
"text": "✅ [AUTH-FLOW] No console errors\n"
|
|
},
|
|
{
|
|
"text": "✅ [AUTH-FLOW] No network errors\n"
|
|
}
|
|
],
|
|
"stderr": [],
|
|
"retry": 0,
|
|
"startTime": "2025-12-27T17:40:29.822Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "screenshot",
|
|
"contentType": "image/png",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-8c50e--and-verify-token-is-stored-chromium/test-failed-1.png"
|
|
},
|
|
{
|
|
"name": "video",
|
|
"contentType": "video/webm",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-8c50e--and-verify-token-is-stored-chromium/video.webm"
|
|
},
|
|
{
|
|
"name": "trace",
|
|
"contentType": "application/zip",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-8c50e--and-verify-token-is-stored-chromium/trace.zip"
|
|
}
|
|
],
|
|
"errorLocation": {
|
|
"file": "<anonymous>",
|
|
"column": 16,
|
|
"line": 292
|
|
}
|
|
}
|
|
],
|
|
"status": "unexpected"
|
|
}
|
|
],
|
|
"id": "df6b40174562c70df515-9813cb501eb633e27752",
|
|
"file": "auth-flow.spec.ts",
|
|
"line": 195,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "should automatically refresh token when expiring soon",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 7,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 12464,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "🧪 [AUTH-FLOW] Step 4: Test automatic token refresh\n"
|
|
},
|
|
{
|
|
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
|
|
},
|
|
{
|
|
"text": "⏳ [LOGIN] Waiting 500ms before login (1766857231030ms 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"
|
|
},
|
|
{
|
|
"text": "⏳ [LOGIN] Waiting for auth state to be persisted...\n"
|
|
},
|
|
{
|
|
"text": "🔍 [LOGIN] Verifying authentication state...\n"
|
|
},
|
|
{
|
|
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
|
},
|
|
{
|
|
"text": "✅ [LOGIN] Successfully authenticated as e2e@test.com (token: eyJhbGciOiJIUzI1NiIs...)\n"
|
|
},
|
|
{
|
|
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
|
},
|
|
{
|
|
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
|
},
|
|
{
|
|
"text": "⚠️ [AUTH-FLOW] Token refresh not triggered (may not be expiring soon)\n"
|
|
},
|
|
{
|
|
"text": "\n📊 [AUTH-FLOW] === Final Verifications ===\n"
|
|
},
|
|
{
|
|
"text": "✅ [AUTH-FLOW] No console errors\n"
|
|
},
|
|
{
|
|
"text": "✅ [AUTH-FLOW] No network errors\n"
|
|
}
|
|
],
|
|
"stderr": [
|
|
{
|
|
"text": "⚠️ [LOGIN] Form not visible and not on dashboard. Proceeding (might fail)...\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2025-12-27T17:40:30.880Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "trace",
|
|
"contentType": "application/zip",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-349ea-sh-token-when-expiring-soon-chromium/trace.zip"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "df6b40174562c70df515-6d199b26807fa07b89e0",
|
|
"file": "auth-flow.spec.ts",
|
|
"line": 273,
|
|
"column": 3
|
|
},
|
|
{
|
|
"title": "should logout successfully and redirect to login",
|
|
"ok": true,
|
|
"tags": [],
|
|
"tests": [
|
|
{
|
|
"timeout": 60000,
|
|
"annotations": [],
|
|
"expectedStatus": "passed",
|
|
"projectId": "chromium",
|
|
"projectName": "chromium",
|
|
"results": [
|
|
{
|
|
"workerIndex": 7,
|
|
"parallelIndex": 0,
|
|
"status": "passed",
|
|
"duration": 7890,
|
|
"errors": [],
|
|
"stdout": [
|
|
{
|
|
"text": "🧪 [AUTH-FLOW] Step 5: Logout and redirect\n"
|
|
},
|
|
{
|
|
"text": "🔐 [LOGIN] Attempting authentication as e2e@test.com...\n"
|
|
},
|
|
{
|
|
"text": "⏳ [LOGIN] Waiting 500ms before login (12185ms 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"
|
|
},
|
|
{
|
|
"text": "⏳ [LOGIN] Waiting for auth state to be persisted...\n"
|
|
},
|
|
{
|
|
"text": "🔍 [LOGIN] Verifying authentication state...\n"
|
|
},
|
|
{
|
|
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
|
},
|
|
{
|
|
"text": "✅ [LOGIN] Successfully authenticated as e2e@test.com (token: eyJhbGciOiJIUzI1NiIs...)\n"
|
|
},
|
|
{
|
|
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
|
},
|
|
{
|
|
"text": "🔴 [NETWORK ERROR] POST http://127.0.0.1:8080/api/v1/auth/logout: 400\n"
|
|
},
|
|
{
|
|
"text": "🔴 [CONSOLE ERROR] Failed to load resource: the server responded with a status of 400 (Bad Request)\n"
|
|
},
|
|
{
|
|
"text": "✅ [AUTH-FLOW] Logout successful, redirected to login\n"
|
|
},
|
|
{
|
|
"text": "\n📊 [AUTH-FLOW] === Final Verifications ===\n"
|
|
},
|
|
{
|
|
"text": "🔴 [AUTH-FLOW] Console errors (1):\n"
|
|
},
|
|
{
|
|
"text": " - Failed to load resource: the server responded with a status of 400 (Bad Request)\n"
|
|
},
|
|
{
|
|
"text": "🔴 [AUTH-FLOW] Network errors (1):\n"
|
|
},
|
|
{
|
|
"text": " - POST http://127.0.0.1:8080/api/v1/auth/logout: 400\n"
|
|
}
|
|
],
|
|
"stderr": [
|
|
{
|
|
"text": "⚠️ [LOGIN] Form not visible and not on dashboard. Proceeding (might fail)...\n"
|
|
},
|
|
{
|
|
"text": "⚠️ [AUTH-FLOW] Test passed but had console errors\n"
|
|
}
|
|
],
|
|
"retry": 0,
|
|
"startTime": "2025-12-27T17:40:43.681Z",
|
|
"annotations": [],
|
|
"attachments": [
|
|
{
|
|
"name": "trace",
|
|
"contentType": "application/zip",
|
|
"path": "/home/senke/git/talas/veza/apps/web/test-results/auth-flow-Complete-Auth-Fl-14a19-fully-and-redirect-to-login-chromium/trace.zip"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"status": "expected"
|
|
}
|
|
],
|
|
"id": "df6b40174562c70df515-4ca1ce2371dbebeae00d",
|
|
"file": "auth-flow.spec.ts",
|
|
"line": 333,
|
|
"column": 3
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"errors": [],
|
|
"stats": {
|
|
"startTime": "2025-12-27T17:40:13.282Z",
|
|
"duration": 38575.8200000003,
|
|
"expected": 2,
|
|
"skipped": 0,
|
|
"unexpected": 3,
|
|
"flaky": 0
|
|
}
|
|
} |