1346 lines
No EOL
57 KiB
JSON
1346 lines
No EOL
57 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
|
||
}
|
||
],
|
||
"shard": null,
|
||
"tags": [],
|
||
"updateSnapshots": "missing",
|
||
"updateSourceMethod": "patch",
|
||
"version": "1.57.0",
|
||
"workers": 1,
|
||
"webServer": {
|
||
"command": "npm run dev",
|
||
"url": "http://localhost:3000",
|
||
"reuseExistingServer": true,
|
||
"timeout": 120000
|
||
}
|
||
},
|
||
"suites": [
|
||
{
|
||
"title": "playlists.spec.ts",
|
||
"file": "playlists.spec.ts",
|
||
"column": 0,
|
||
"line": 0,
|
||
"specs": [],
|
||
"suites": [
|
||
{
|
||
"title": "Playlists CRUD",
|
||
"file": "playlists.spec.ts",
|
||
"line": 28,
|
||
"column": 6,
|
||
"specs": [
|
||
{
|
||
"title": "should create a new playlist successfully",
|
||
"ok": true,
|
||
"tags": [],
|
||
"tests": [
|
||
{
|
||
"timeout": 60000,
|
||
"annotations": [],
|
||
"expectedStatus": "passed",
|
||
"projectId": "chromium",
|
||
"projectName": "chromium",
|
||
"results": [
|
||
{
|
||
"workerIndex": 0,
|
||
"parallelIndex": 0,
|
||
"status": "passed",
|
||
"duration": 16677,
|
||
"errors": [],
|
||
"stdout": [
|
||
{
|
||
"text": "🔐 [LOGIN] Attempting authentication as user@example.com...\n"
|
||
},
|
||
{
|
||
"text": "⏳ [LOGIN] Waiting 500ms before login (1766361226285ms since last login)...\n"
|
||
},
|
||
{
|
||
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Application fully hydrated\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Going to playlists page...\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating to: http://localhost:3000/playlists\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Page fully loaded\n"
|
||
},
|
||
{
|
||
"text": "🧪 [PLAYLISTS] Running: Create new playlist\n"
|
||
},
|
||
{
|
||
"text": "📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i\n"
|
||
},
|
||
{
|
||
"text": "✅ [MODAL] Modal opened successfully\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[name=\"name\"], input[name=\"title\"], input#title with value: Test Playlist 1766361239267\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[name=\"name\"], input[name=\"title\"], input#title 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": "🔔 [TOAST] Waiting for success message...\n"
|
||
},
|
||
{
|
||
"text": "✅ [TOAST] success message: Playlist créée : Votre playlist a été créée avec succès.\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Playlist created successfully\n"
|
||
},
|
||
{
|
||
"text": "\n📊 [PLAYLISTS] === Final Verifications ===\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No console errors\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No network errors\n"
|
||
}
|
||
],
|
||
"stderr": [],
|
||
"retry": 0,
|
||
"startTime": "2025-12-21T23:53:46.090Z",
|
||
"annotations": [],
|
||
"attachments": []
|
||
}
|
||
],
|
||
"status": "expected"
|
||
}
|
||
],
|
||
"id": "bd26eca51b3e4ada7ca2-f3e296a2f84338235416",
|
||
"file": "playlists.spec.ts",
|
||
"line": 80,
|
||
"column": 3
|
||
},
|
||
{
|
||
"title": "should display list of playlists",
|
||
"ok": true,
|
||
"tags": [],
|
||
"tests": [
|
||
{
|
||
"timeout": 60000,
|
||
"annotations": [],
|
||
"expectedStatus": "passed",
|
||
"projectId": "chromium",
|
||
"projectName": "chromium",
|
||
"results": [
|
||
{
|
||
"workerIndex": 0,
|
||
"parallelIndex": 0,
|
||
"status": "passed",
|
||
"duration": 13089,
|
||
"errors": [],
|
||
"stdout": [
|
||
{
|
||
"text": "🔐 [LOGIN] Attempting authentication as user@example.com...\n"
|
||
},
|
||
{
|
||
"text": "⏳ [LOGIN] Waiting 500ms before login (16132ms since last login)...\n"
|
||
},
|
||
{
|
||
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Application fully hydrated\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Going to playlists page...\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating to: http://localhost:3000/playlists\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Page fully loaded\n"
|
||
},
|
||
{
|
||
"text": "🧪 [PLAYLISTS] Running: Display playlists list\n"
|
||
},
|
||
{
|
||
"text": "📋 [LIST] Waiting for list/table to load (min 0 rows)...\n"
|
||
},
|
||
{
|
||
"text": "✅ [LIST] List/table loaded with data\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Playlists page loaded successfully\n"
|
||
},
|
||
{
|
||
"text": "\n📊 [PLAYLISTS] === Final Verifications ===\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No console errors\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No network errors\n"
|
||
}
|
||
],
|
||
"stderr": [],
|
||
"retry": 0,
|
||
"startTime": "2025-12-21T23:54:02.862Z",
|
||
"annotations": [],
|
||
"attachments": []
|
||
}
|
||
],
|
||
"status": "expected"
|
||
}
|
||
],
|
||
"id": "bd26eca51b3e4ada7ca2-bfbb131889640d9a23ef",
|
||
"file": "playlists.spec.ts",
|
||
"line": 137,
|
||
"column": 3
|
||
},
|
||
{
|
||
"title": "should update playlist name and description",
|
||
"ok": true,
|
||
"tags": [],
|
||
"tests": [
|
||
{
|
||
"timeout": 60000,
|
||
"annotations": [],
|
||
"expectedStatus": "passed",
|
||
"projectId": "chromium",
|
||
"projectName": "chromium",
|
||
"results": [
|
||
{
|
||
"workerIndex": 0,
|
||
"parallelIndex": 0,
|
||
"status": "passed",
|
||
"duration": 20290,
|
||
"errors": [],
|
||
"stdout": [
|
||
{
|
||
"text": "🔐 [LOGIN] Attempting authentication as user@example.com...\n"
|
||
},
|
||
{
|
||
"text": "⏳ [LOGIN] Waiting 500ms before login (12607ms since last login)...\n"
|
||
},
|
||
{
|
||
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Application fully hydrated\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Going to playlists page...\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating to: http://localhost:3000/playlists\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Page fully loaded\n"
|
||
},
|
||
{
|
||
"text": "🧪 [PLAYLISTS] Running: Update playlist\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating via href: /playlists...\n"
|
||
},
|
||
{
|
||
"text": "✅ [NAVIGATION] Successfully navigated directly to /playlists\n"
|
||
},
|
||
{
|
||
"text": "📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i\n"
|
||
},
|
||
{
|
||
"text": "✅ [MODAL] Modal opened successfully\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[name=\"name\"], input[name=\"title\"], input#title with value: Original Playlist 1766361268982\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[name=\"name\"], input[name=\"title\"], input#title 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": "🔔 [TOAST] Waiting for success message...\n"
|
||
},
|
||
{
|
||
"text": "✅ [TOAST] success message: Playlist créée : Votre playlist a été créée avec succès.\n"
|
||
},
|
||
{
|
||
"text": "🔍 Clicking edit button via dispatchEvent\n"
|
||
},
|
||
{
|
||
"text": "🔔 [TOAST] Waiting for success message...\n"
|
||
},
|
||
{
|
||
"text": "✅ [TOAST] success message: Playlist mise à jour avec succès\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Playlist updated successfully\n"
|
||
},
|
||
{
|
||
"text": "\n📊 [PLAYLISTS] === Final Verifications ===\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No console errors\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No network errors\n"
|
||
}
|
||
],
|
||
"stderr": [],
|
||
"retry": 0,
|
||
"startTime": "2025-12-21T23:54:15.961Z",
|
||
"annotations": [],
|
||
"attachments": []
|
||
}
|
||
],
|
||
"status": "expected"
|
||
}
|
||
],
|
||
"id": "bd26eca51b3e4ada7ca2-42e878ca7b586c79edaf",
|
||
"file": "playlists.spec.ts",
|
||
"line": 176,
|
||
"column": 3
|
||
},
|
||
{
|
||
"title": "should add track to playlist",
|
||
"ok": true,
|
||
"tags": [],
|
||
"tests": [
|
||
{
|
||
"timeout": 60000,
|
||
"annotations": [
|
||
{
|
||
"type": "skip",
|
||
"location": {
|
||
"file": "/home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts",
|
||
"line": 325,
|
||
"column": 12
|
||
}
|
||
}
|
||
],
|
||
"expectedStatus": "skipped",
|
||
"projectId": "chromium",
|
||
"projectName": "chromium",
|
||
"results": [
|
||
{
|
||
"workerIndex": 0,
|
||
"parallelIndex": 0,
|
||
"status": "skipped",
|
||
"duration": 16425,
|
||
"errors": [],
|
||
"stdout": [
|
||
{
|
||
"text": "🔐 [LOGIN] Attempting authentication as user@example.com...\n"
|
||
},
|
||
{
|
||
"text": "⏳ [LOGIN] Waiting 500ms before login (19783ms since last login)...\n"
|
||
},
|
||
{
|
||
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Application fully hydrated\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Going to playlists page...\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating to: http://localhost:3000/playlists\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Page fully loaded\n"
|
||
},
|
||
{
|
||
"text": "🧪 [PLAYLISTS] Running: Add track to playlist\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating via href: /playlists...\n"
|
||
},
|
||
{
|
||
"text": "✅ [NAVIGATION] Successfully navigated directly to /playlists\n"
|
||
},
|
||
{
|
||
"text": "📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i\n"
|
||
},
|
||
{
|
||
"text": "✅ [MODAL] Modal opened successfully\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[name=\"name\"], input[name=\"title\"], input#title with value: Add Track Playlist 1766361289210\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[name=\"name\"], input[name=\"title\"], input#title 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": "🔔 [TOAST] Waiting for success message...\n"
|
||
},
|
||
{
|
||
"text": "✅ [TOAST] success message: Playlist créée : Votre playlist a été créée avec succès.\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating via href: /library...\n"
|
||
},
|
||
{
|
||
"text": "✅ [NAVIGATION] Successfully navigated via href: /library\n"
|
||
},
|
||
{
|
||
"text": "📋 [LIST] Waiting for list/table to load (min 1 rows)...\n"
|
||
},
|
||
{
|
||
"text": "✅ [LIST] List/table loaded with data\n"
|
||
},
|
||
{
|
||
"text": "\n📊 [PLAYLISTS] === Final Verifications ===\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No console errors\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No network errors\n"
|
||
}
|
||
],
|
||
"stderr": [
|
||
{
|
||
"text": "⚠️ [PLAYLISTS] Add to playlist button not found, skipping test\n"
|
||
}
|
||
],
|
||
"retry": 0,
|
||
"startTime": "2025-12-21T23:54:36.267Z",
|
||
"annotations": [
|
||
{
|
||
"type": "skip",
|
||
"location": {
|
||
"file": "/home/senke/git/talas/veza/apps/web/e2e/playlists.spec.ts",
|
||
"line": 325,
|
||
"column": 12
|
||
}
|
||
}
|
||
],
|
||
"attachments": []
|
||
}
|
||
],
|
||
"status": "skipped"
|
||
}
|
||
],
|
||
"id": "bd26eca51b3e4ada7ca2-30fdefbe8962dfe87af3",
|
||
"file": "playlists.spec.ts",
|
||
"line": 265,
|
||
"column": 3
|
||
},
|
||
{
|
||
"title": "should delete playlist successfully",
|
||
"ok": true,
|
||
"tags": [],
|
||
"tests": [
|
||
{
|
||
"timeout": 60000,
|
||
"annotations": [],
|
||
"expectedStatus": "passed",
|
||
"projectId": "chromium",
|
||
"projectName": "chromium",
|
||
"results": [
|
||
{
|
||
"workerIndex": 0,
|
||
"parallelIndex": 0,
|
||
"status": "passed",
|
||
"duration": 21637,
|
||
"errors": [],
|
||
"stdout": [
|
||
{
|
||
"text": "🔐 [LOGIN] Attempting authentication as user@example.com...\n"
|
||
},
|
||
{
|
||
"text": "⏳ [LOGIN] Waiting 500ms before login (15950ms since last login)...\n"
|
||
},
|
||
{
|
||
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Application fully hydrated\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Going to playlists page...\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating to: http://localhost:3000/playlists\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Page fully loaded\n"
|
||
},
|
||
{
|
||
"text": "🧪 [PLAYLISTS] Running: Delete playlist\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating via href: /playlists...\n"
|
||
},
|
||
{
|
||
"text": "✅ [NAVIGATION] Successfully navigated directly to /playlists\n"
|
||
},
|
||
{
|
||
"text": "📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i\n"
|
||
},
|
||
{
|
||
"text": "✅ [MODAL] Modal opened successfully\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[name=\"name\"], input[name=\"title\"], input#title with value: Delete Playlist 1766361305682\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[name=\"name\"], input[name=\"title\"], input#title 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": "🔔 [TOAST] Waiting for success message...\n"
|
||
},
|
||
{
|
||
"text": "✅ [TOAST] success message: Playlist créée : Votre playlist a été créée avec succès.\n"
|
||
},
|
||
{
|
||
"text": "🔔 [TOAST] Waiting for success message...\n"
|
||
},
|
||
{
|
||
"text": "✅ [TOAST] success message: Playlist supprimée avec succès\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Playlist deleted successfully\n"
|
||
},
|
||
{
|
||
"text": "\n📊 [PLAYLISTS] === Final Verifications ===\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No console errors\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No network errors\n"
|
||
}
|
||
],
|
||
"stderr": [],
|
||
"retry": 0,
|
||
"startTime": "2025-12-21T23:54:52.706Z",
|
||
"annotations": [],
|
||
"attachments": []
|
||
}
|
||
],
|
||
"status": "expected"
|
||
}
|
||
],
|
||
"id": "bd26eca51b3e4ada7ca2-0b60cebaff5525fce80c",
|
||
"file": "playlists.spec.ts",
|
||
"line": 347,
|
||
"column": 3
|
||
},
|
||
{
|
||
"title": "should display empty state for new playlist",
|
||
"ok": true,
|
||
"tags": [],
|
||
"tests": [
|
||
{
|
||
"timeout": 60000,
|
||
"annotations": [],
|
||
"expectedStatus": "passed",
|
||
"projectId": "chromium",
|
||
"projectName": "chromium",
|
||
"results": [
|
||
{
|
||
"workerIndex": 0,
|
||
"parallelIndex": 0,
|
||
"status": "passed",
|
||
"duration": 17161,
|
||
"errors": [],
|
||
"stdout": [
|
||
{
|
||
"text": "🔐 [LOGIN] Attempting authentication as user@example.com...\n"
|
||
},
|
||
{
|
||
"text": "⏳ [LOGIN] Waiting 500ms before login (21156ms since last login)...\n"
|
||
},
|
||
{
|
||
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Application fully hydrated\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Going to playlists page...\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating to: http://localhost:3000/playlists\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Page fully loaded\n"
|
||
},
|
||
{
|
||
"text": "🧪 [PLAYLISTS] Running: Empty playlist state\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating via href: /playlists...\n"
|
||
},
|
||
{
|
||
"text": "✅ [NAVIGATION] Successfully navigated directly to /playlists\n"
|
||
},
|
||
{
|
||
"text": "📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i\n"
|
||
},
|
||
{
|
||
"text": "✅ [MODAL] Modal opened successfully\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[name=\"name\"], input[name=\"title\"], input#title with value: Empty Playlist 1766361327339\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[name=\"name\"], input[name=\"title\"], input#title 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": "🔔 [TOAST] Waiting for success message...\n"
|
||
},
|
||
{
|
||
"text": "✅ [TOAST] success message: Playlist créée : Votre playlist a été créée avec succès.\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Empty state displayed correctly\n"
|
||
},
|
||
{
|
||
"text": "\n📊 [PLAYLISTS] === Final Verifications ===\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No console errors\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No network errors\n"
|
||
}
|
||
],
|
||
"stderr": [],
|
||
"retry": 0,
|
||
"startTime": "2025-12-21T23:55:14.359Z",
|
||
"annotations": [],
|
||
"attachments": []
|
||
}
|
||
],
|
||
"status": "expected"
|
||
}
|
||
],
|
||
"id": "bd26eca51b3e4ada7ca2-b141d67d5e3405d04030",
|
||
"file": "playlists.spec.ts",
|
||
"line": 448,
|
||
"column": 3
|
||
},
|
||
{
|
||
"title": "should search playlists by name",
|
||
"ok": true,
|
||
"tags": [],
|
||
"tests": [
|
||
{
|
||
"timeout": 60000,
|
||
"annotations": [],
|
||
"expectedStatus": "passed",
|
||
"projectId": "chromium",
|
||
"projectName": "chromium",
|
||
"results": [
|
||
{
|
||
"workerIndex": 0,
|
||
"parallelIndex": 0,
|
||
"status": "passed",
|
||
"duration": 23383,
|
||
"errors": [],
|
||
"stdout": [
|
||
{
|
||
"text": "🔐 [LOGIN] Attempting authentication as user@example.com...\n"
|
||
},
|
||
{
|
||
"text": "⏳ [LOGIN] Waiting 500ms before login (16664ms since last login)...\n"
|
||
},
|
||
{
|
||
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Application fully hydrated\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Going to playlists page...\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating to: http://localhost:3000/playlists\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Page fully loaded\n"
|
||
},
|
||
{
|
||
"text": "🧪 [PLAYLISTS] Running: Search playlists\n"
|
||
},
|
||
{
|
||
"text": "🧭 [NAVIGATION] Navigating via href: /playlists...\n"
|
||
},
|
||
{
|
||
"text": "✅ [NAVIGATION] Successfully navigated directly to /playlists\n"
|
||
},
|
||
{
|
||
"text": "📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i\n"
|
||
},
|
||
{
|
||
"text": "✅ [MODAL] Modal opened successfully\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[name=\"name\"], input[name=\"title\"], input#title with value: SearchTest1766361344424 Alpha\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[name=\"name\"], input[name=\"title\"], input#title 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": "🔔 [TOAST] Waiting for success message...\n"
|
||
},
|
||
{
|
||
"text": "✅ [TOAST] success message: Playlist créée : Votre playlist a été créée avec succès.\n"
|
||
},
|
||
{
|
||
"text": "📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i\n"
|
||
},
|
||
{
|
||
"text": "✅ [MODAL] Modal opened successfully\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[name=\"name\"], input[name=\"title\"], input#title with value: SearchTest1766361344424 Beta\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[name=\"name\"], input[name=\"title\"], input#title 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": "🔔 [TOAST] Waiting for success message...\n"
|
||
},
|
||
{
|
||
"text": "✅ [TOAST] success message: Playlist créée : Votre playlist a été créée avec succès.\n"
|
||
},
|
||
{
|
||
"text": "📦 [MODAL] Opening modal via button: /create|créer|nouvelle/i\n"
|
||
},
|
||
{
|
||
"text": "✅ [MODAL] Modal opened successfully\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[name=\"name\"], input[name=\"title\"], input#title with value: Different 1766361345430\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[name=\"name\"], input[name=\"title\"], input#title 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": "🔔 [TOAST] Waiting for success message...\n"
|
||
},
|
||
{
|
||
"text": "✅ [TOAST] success message: Playlist créée : Votre playlist a été créée avec succès.\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] Search functionality works correctly\n"
|
||
},
|
||
{
|
||
"text": "\n📊 [PLAYLISTS] === Final Verifications ===\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No console errors\n"
|
||
},
|
||
{
|
||
"text": "✅ [PLAYLISTS] No network errors\n"
|
||
}
|
||
],
|
||
"stderr": [],
|
||
"retry": 0,
|
||
"startTime": "2025-12-21T23:55:31.535Z",
|
||
"annotations": [],
|
||
"attachments": []
|
||
}
|
||
],
|
||
"status": "expected"
|
||
}
|
||
],
|
||
"id": "bd26eca51b3e4ada7ca2-69138f178b3ea0d924e6",
|
||
"file": "playlists.spec.ts",
|
||
"line": 494,
|
||
"column": 3
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"title": "tracks_upload_chunked.spec.ts",
|
||
"file": "tracks_upload_chunked.spec.ts",
|
||
"column": 0,
|
||
"line": 0,
|
||
"specs": [],
|
||
"suites": [
|
||
{
|
||
"title": "Chunked Upload Flow",
|
||
"file": "tracks_upload_chunked.spec.ts",
|
||
"line": 31,
|
||
"column": 6,
|
||
"specs": [
|
||
{
|
||
"title": "should upload large file (15 MB) using chunked upload",
|
||
"ok": true,
|
||
"tags": [],
|
||
"tests": [
|
||
{
|
||
"timeout": 180000,
|
||
"annotations": [],
|
||
"expectedStatus": "passed",
|
||
"projectId": "chromium",
|
||
"projectName": "chromium",
|
||
"results": [
|
||
{
|
||
"workerIndex": 0,
|
||
"parallelIndex": 0,
|
||
"status": "passed",
|
||
"duration": 143861,
|
||
"errors": [],
|
||
"stdout": [
|
||
{
|
||
"text": "🧪 [CHUNKED UPLOAD] Running: Large file upload with chunking\n"
|
||
},
|
||
{
|
||
"text": "🔍 [CHUNKED UPLOAD] Step 1: Login\n"
|
||
},
|
||
{
|
||
"text": "🔐 [LOGIN] Attempting authentication as user@example.com...\n"
|
||
},
|
||
{
|
||
"text": "⏳ [LOGIN] Waiting 500ms before login (22933ms since last login)...\n"
|
||
},
|
||
{
|
||
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Application fully hydrated\n"
|
||
},
|
||
{
|
||
"text": "🔍 [CHUNKED UPLOAD] Step 2: Navigate to /library\n"
|
||
},
|
||
{
|
||
"text": "🔍 [CHUNKED UPLOAD] Step 3: Open upload modal\n"
|
||
},
|
||
{
|
||
"text": "📦 [MODAL] Opening modal via button: /upload/i\n"
|
||
},
|
||
{
|
||
"text": "✅ [MODAL] Modal opened successfully\n"
|
||
},
|
||
{
|
||
"text": "🔍 [CHUNKED UPLOAD] Step 4: Select large file (15 MB)\n"
|
||
},
|
||
{
|
||
"text": "✅ [CHUNKED UPLOAD] Large file selected: 12.00 MB\n"
|
||
},
|
||
{
|
||
"text": "🔍 [CHUNKED UPLOAD] Step 5: Fill metadata\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[id=\"title\"] with value: Large Track Test\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[id=\"title\"] filled successfully\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[id=\"artist\"] with value: QA Bot\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[id=\"artist\"] filled successfully\n"
|
||
},
|
||
{
|
||
"text": "🔍 [CHUNKED UPLOAD] Step 6: Start upload\n"
|
||
},
|
||
{
|
||
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form#upload-track-form\n"
|
||
},
|
||
{
|
||
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form#upload-track-form\n"
|
||
},
|
||
{
|
||
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
|
||
},
|
||
{
|
||
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
|
||
},
|
||
{
|
||
"text": "✅ [FORM SUBMIT] Form form#upload-track-form submitted successfully\n"
|
||
},
|
||
{
|
||
"text": "🔍 [CHUNKED UPLOAD] Step 7: Verify API calls\n"
|
||
},
|
||
{
|
||
"text": "🔍 [CHUNKED UPLOAD] Step 8: Verify success\n"
|
||
},
|
||
{
|
||
"text": "\n📊 [CHUNKED UPLOAD] === API Calls Summary ===\n"
|
||
},
|
||
{
|
||
"text": "Initiate called: ❌\n"
|
||
},
|
||
{
|
||
"text": "Chunks uploaded: 0 ⚠️\n"
|
||
},
|
||
{
|
||
"text": "Complete called: ❌\n"
|
||
},
|
||
{
|
||
"text": "ℹ️ [CHUNKED UPLOAD] Using direct upload method (POST /tracks)\n"
|
||
},
|
||
{
|
||
"text": "🔍 [CHUNKED UPLOAD] Step 10: Verify track appears in library\n"
|
||
},
|
||
{
|
||
"text": "\n📊 [CHUNKED UPLOAD] === Final Verifications ===\n"
|
||
},
|
||
{
|
||
"text": "✅ [CHUNKED UPLOAD] No console errors\n"
|
||
},
|
||
{
|
||
"text": "✅ [CHUNKED UPLOAD] No network errors\n"
|
||
}
|
||
],
|
||
"stderr": [
|
||
{
|
||
"text": "⚠️ [CHUNKED UPLOAD] Initiate call not detected - may be using direct upload\n"
|
||
},
|
||
{
|
||
"text": "⚠️ [CHUNKED UPLOAD] Complete call not detected - may be using direct upload\n"
|
||
},
|
||
{
|
||
"text": "⚠️ [CHUNKED UPLOAD] No success message, checking modal closure\n"
|
||
},
|
||
{
|
||
"text": "⚠️ [CHUNKED UPLOAD] Modal did not close, but backend confirmed upload (check logs)\n"
|
||
},
|
||
{
|
||
"text": "⚠️ [CHUNKED UPLOAD] Chunked upload API not detected - using direct upload\n"
|
||
},
|
||
{
|
||
"text": "⚠️ [CHUNKED UPLOAD] TASK-006 may not be implemented yet\n"
|
||
},
|
||
{
|
||
"text": "⚠️ [CHUNKED UPLOAD] Track not visible yet (may still be processing)\n"
|
||
}
|
||
],
|
||
"retry": 0,
|
||
"startTime": "2025-12-21T23:55:54.952Z",
|
||
"annotations": [],
|
||
"attachments": []
|
||
}
|
||
],
|
||
"status": "expected"
|
||
}
|
||
],
|
||
"id": "c0f639fec2fbba9ee0bd-38ea8cdb11c7c35eb5d0",
|
||
"file": "tracks_upload_chunked.spec.ts",
|
||
"line": 47,
|
||
"column": 3
|
||
},
|
||
{
|
||
"title": "should handle very large file (25 MB) with chunking",
|
||
"ok": true,
|
||
"tags": [],
|
||
"tests": [
|
||
{
|
||
"timeout": 180000,
|
||
"annotations": [],
|
||
"expectedStatus": "passed",
|
||
"projectId": "chromium",
|
||
"projectName": "chromium",
|
||
"results": [
|
||
{
|
||
"workerIndex": 0,
|
||
"parallelIndex": 0,
|
||
"status": "passed",
|
||
"duration": 104081,
|
||
"errors": [],
|
||
"stdout": [
|
||
{
|
||
"text": "🧪 [CHUNKED UPLOAD] Running: Very large file upload (25 MB)\n"
|
||
},
|
||
{
|
||
"text": "🔐 [LOGIN] Attempting authentication as user@example.com...\n"
|
||
},
|
||
{
|
||
"text": "⏳ [LOGIN] Waiting 500ms before login (143387ms since last login)...\n"
|
||
},
|
||
{
|
||
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Application fully hydrated\n"
|
||
},
|
||
{
|
||
"text": "📦 [MODAL] Opening modal via button: /upload/i\n"
|
||
},
|
||
{
|
||
"text": "✅ [MODAL] Modal opened successfully\n"
|
||
},
|
||
{
|
||
"text": "✅ [CHUNKED UPLOAD] Very large file selected: 20.00 MB\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[id=\"title\"] with value: Very Large Track\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[id=\"title\"] filled successfully\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[id=\"artist\"] with value: Performance Test\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[id=\"artist\"] filled successfully\n"
|
||
},
|
||
{
|
||
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form#upload-track-form\n"
|
||
},
|
||
{
|
||
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form#upload-track-form\n"
|
||
},
|
||
{
|
||
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
|
||
},
|
||
{
|
||
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
|
||
},
|
||
{
|
||
"text": "✅ [FORM SUBMIT] Form form#upload-track-form submitted successfully\n"
|
||
},
|
||
{
|
||
"text": "\n📊 [CHUNKED UPLOAD] === Final Verifications ===\n"
|
||
},
|
||
{
|
||
"text": "✅ [CHUNKED UPLOAD] No console errors\n"
|
||
},
|
||
{
|
||
"text": "✅ [CHUNKED UPLOAD] No network errors\n"
|
||
}
|
||
],
|
||
"stderr": [
|
||
{
|
||
"text": "⚠️ [CHUNKED UPLOAD] Upload timeout (90s) - file may still be processing\n"
|
||
},
|
||
{
|
||
"text": "⚠️ [CHUNKED UPLOAD] No chunks detected - direct upload used\n"
|
||
}
|
||
],
|
||
"retry": 0,
|
||
"startTime": "2025-12-21T23:58:18.827Z",
|
||
"annotations": [],
|
||
"attachments": []
|
||
}
|
||
],
|
||
"status": "expected"
|
||
}
|
||
],
|
||
"id": "c0f639fec2fbba9ee0bd-f2978a415527e60fdb05",
|
||
"file": "tracks_upload_chunked.spec.ts",
|
||
"line": 316,
|
||
"column": 3
|
||
},
|
||
{
|
||
"title": "should use direct upload for small files (< 10 MB)",
|
||
"ok": true,
|
||
"tags": [],
|
||
"tests": [
|
||
{
|
||
"timeout": 180000,
|
||
"annotations": [],
|
||
"expectedStatus": "passed",
|
||
"projectId": "chromium",
|
||
"projectName": "chromium",
|
||
"results": [
|
||
{
|
||
"workerIndex": 0,
|
||
"parallelIndex": 0,
|
||
"status": "passed",
|
||
"duration": 35873,
|
||
"errors": [],
|
||
"stdout": [
|
||
{
|
||
"text": "🧪 [CHUNKED UPLOAD] Running: Small file direct upload\n"
|
||
},
|
||
{
|
||
"text": "🔐 [LOGIN] Attempting authentication as user@example.com...\n"
|
||
},
|
||
{
|
||
"text": "⏳ [LOGIN] Waiting 500ms before login (103556ms since last login)...\n"
|
||
},
|
||
{
|
||
"text": " ✅ TOKEN FOUND: eyJhbGciOiJIUzI1NiIsInR5cCI6Ik... (source: storage)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Already authenticated (redirected to dashboard via Global Setup)\n"
|
||
},
|
||
{
|
||
"text": "✅ [LOGIN] Application fully hydrated\n"
|
||
},
|
||
{
|
||
"text": "📦 [MODAL] Opening modal via button: /upload/i\n"
|
||
},
|
||
{
|
||
"text": "✅ [MODAL] Modal opened successfully\n"
|
||
},
|
||
{
|
||
"text": "✅ [CHUNKED UPLOAD] Small file selected: 5.00 MB\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[id=\"title\"] with value: Small Track\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[id=\"title\"] filled successfully\n"
|
||
},
|
||
{
|
||
"text": "✏️ [FILL] Filling field input[id=\"artist\"] with value: Direct Upload Test\n"
|
||
},
|
||
{
|
||
"text": "✅ [FILL] Field input[id=\"artist\"] filled successfully\n"
|
||
},
|
||
{
|
||
"text": "⚡ [FORM SUBMIT] Forcing submission of form: form#upload-track-form\n"
|
||
},
|
||
{
|
||
"text": "🔍 [FORM SUBMIT] Waiting for form selector: form#upload-track-form\n"
|
||
},
|
||
{
|
||
"text": "⏳ [FORM SUBMIT] Waiting for React to update state...\n"
|
||
},
|
||
{
|
||
"text": "🚀 [FORM SUBMIT] Submitting form...\n"
|
||
},
|
||
{
|
||
"text": "✅ [FORM SUBMIT] Form form#upload-track-form submitted successfully\n"
|
||
},
|
||
{
|
||
"text": "✅ [CHUNKED UPLOAD] Direct upload used (no chunking) as expected\n"
|
||
},
|
||
{
|
||
"text": "\n📊 [CHUNKED UPLOAD] === Final Verifications ===\n"
|
||
},
|
||
{
|
||
"text": "✅ [CHUNKED UPLOAD] No console errors\n"
|
||
},
|
||
{
|
||
"text": "✅ [CHUNKED UPLOAD] No network errors\n"
|
||
}
|
||
],
|
||
"stderr": [
|
||
{
|
||
"text": "⚠️ [CHUNKED UPLOAD] Upload timeout for small file\n"
|
||
}
|
||
],
|
||
"retry": 0,
|
||
"startTime": "2025-12-22T00:00:02.926Z",
|
||
"annotations": [],
|
||
"attachments": []
|
||
}
|
||
],
|
||
"status": "expected"
|
||
}
|
||
],
|
||
"id": "c0f639fec2fbba9ee0bd-fed8f872c267d9e5ec51",
|
||
"file": "tracks_upload_chunked.spec.ts",
|
||
"line": 399,
|
||
"column": 3
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"errors": [],
|
||
"stats": {
|
||
"startTime": "2025-12-21T23:53:42.245Z",
|
||
"duration": 416598.547,
|
||
"expected": 9,
|
||
"skipped": 1,
|
||
"unexpected": 0,
|
||
"flaky": 0
|
||
}
|
||
} |