Files
flyer-crawler.projectium.com/test-results-full.txt

1.4 MiB

 
> flyer-crawler@0.11.11 test
> node scripts/check-linux.js && cross-env NODE_ENV=test tsx ./node_modules/vitest/vitest.mjs run
 
 
RUN v4.0.16 /app
 
--- [EXECUTION PROOF] tailwind.config.js is being loaded. ---
--- [EXECUTION PROOF] postcss.config.js is being loaded. ---
[POSTCSS] Attempting to use Tailwind config at: /app/tailwind.config.js
[POSTCSS] Imported tailwind.config.js object: {
"content": [
"./index.html",
"./src/**/*.{js,ts,jsx,tsx}"
]
}
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 983ms
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 2.00s
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 2.91s
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 3.91s
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 4.92s
 
src/services/apiClient.test.ts [queued]
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 5.73s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts [queued]
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 5.86s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts [queued]
src/services/db/expiry.db.test.ts [queued]
src/services/db/user.db.test.ts [queued]
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 8.60s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts [queued]
src/services/db/expiry.db.test.ts [queued]
src/services/db/user.db.test.ts [queued]
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 9.51s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts [queued]
src/services/db/expiry.db.test.ts [queued]
src/services/db/user.db.test.ts [queued]
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 11.18s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts [queued]
src/services/db/expiry.db.test.ts [queued]
src/services/db/user.db.test.ts [queued]
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 12.57s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts [queued]
src/services/db/expiry.db.test.ts [queued]
src/services/db/user.db.test.ts [queued]
 
Test Files 0 passed (242)
Tests 0 passed (0)
Start at 07:51:47
Duration 13.49s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts [queued]
src/services/db/expiry.db.test.ts 0/62
src/services/db/user.db.test.ts [queued]
 
Test Files 0 passed (242)
Tests 0 passed (62)
Start at 07:51:47
Duration 14.55s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts [queued]
src/services/db/expiry.db.test.ts 0/62
src/services/db/user.db.test.ts [queued]
 
Test Files 0 passed (242)
Tests 0 passed (62)
Start at 07:51:47
Duration 14.78s
src/services/db/expiry.db.test.ts (62 tests) 291ms
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts [queued]
src/services/db/expiry.db.test.ts 62/62
src/services/db/user.db.test.ts [queued]
 
Test Files 1 passed (242)
Tests 62 passed (62)
Start at 07:51:47
Duration 15.40s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts [queued]
src/services/db/expiry.db.test.ts 62/62
src/services/db/user.db.test.ts [queued]
 
Test Files 1 passed (242)
Tests 62 passed (62)
Start at 07:51:47
Duration 15.77s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts [queued]
src/services/db/expiry.db.test.ts 62/62
src/services/db/user.db.test.ts 1/69
 
Test Files 1 passed (242)
Tests 63 passed (131)
Start at 07:51:47
Duration 16.28s
src/services/db/user.db.test.ts (69 tests) 204ms
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts 0/112
src/services/db/user.db.test.ts 69/69
 
Test Files 2 passed (242)
Tests 131 passed (243)
Start at 07:51:47
Duration 16.56s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts 1/112
src/services/db/user.db.test.ts 69/69
 
Test Files 2 passed (242)
Tests 132 passed (243)
Start at 07:51:47
Duration 16.86s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts 56/112
src/services/db/user.db.test.ts 69/69
 
Test Files 2 passed (242)
Tests 187 passed (243)
Start at 07:51:47
Duration 16.96s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts [queued]
src/services/apiClient.test.ts 75/112
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 2 passed (242)
Tests 206 passed (243)
Start at 07:51:47
Duration 17.27s
src/services/apiClient.test.ts (112 tests) 547ms
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts 1/49
src/services/apiClient.test.ts 112/112
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 3 passed (242)
Tests 244 passed (292)
Start at 07:51:47
Duration 17.41s
stdout | src/services/aiService.server.test.ts > AI Service (Server) > extractCoreDataFromFlyerImage > should throw an error if the AI response contains malformed JSON
TEST START: 'should throw an error if the AI response contains malformed JSON'
 
stdout | src/services/aiService.server.test.ts > AI Service (Server) > extractCoreDataFromFlyerImage > should throw an error if the AI API call fails
TEST START: 'should throw an error if the AI API call fails'
 
stdout | src/services/aiService.server.test.ts > AI Service (Server) > _parseJsonFromAiResponse (private method) > should handle JSON arrays correctly
 
--- TEST LOG: "should handle JSON arrays correctly" ---
- Test Input String: "Some text preceding ```json\n\n[1, 2, 3]\n\n``` and some text after."
- Actual Output from function: [1,2,3]
- Expected Output: [1,2,3]
--- END TEST LOG ---
 
 
stdout | src/services/aiService.server.test.ts > AI Service (Server) > extractTextFromImageArea > should call sharp to crop the image and call the AI with the correct prompt
TEST START: 'should call sharp to crop...'
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts 9/49
src/services/apiClient.test.ts 112/112
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 3 passed (242)
Tests 252 passed (292)
Start at 07:51:47
Duration 17.71s
stdout | src/services/aiService.server.test.ts > AI Service (Server) > extractTextFromImageArea > should throw an error if the AI API call fails
TEST START: 'should throw an error if the AI API call fails' (extractTextFromImageArea)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts 49/49
src/services/apiClient.test.ts 112/112
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 4 passed (242)
Tests 292 passed (292)
Start at 07:51:47
Duration 17.96s
stderr | src/services/aiService.server.test.ts > AI Service (Server) > enqueueFlyerProcessing > should enqueue job with user address if profile exists
[DEBUG] aiService.enqueueFlyerProcessing resolved baseUrl: "https://example.com"
 
stderr | src/services/aiService.server.test.ts > AI Service (Server) > enqueueFlyerProcessing > should enqueue job without address if profile is missing
[DEBUG] aiService.enqueueFlyerProcessing resolved baseUrl: "https://example.com"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts 49/49
src/services/apiClient.test.ts 112/112
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 4 passed (242)
Tests 292 passed (292)
Start at 07:51:47
Duration 17.96s
src/services/aiService.server.test.ts (49 tests) 489ms
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/aiService.server.test.ts 49/49
src/services/apiClient.test.ts 112/112
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 4 passed (242)
Tests 292 passed (292)
Start at 07:51:47
Duration 17.96s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/db/receipt.db.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 4 passed (242)
Tests 292 passed (292)
Start at 07:51:47
Duration 18.59s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/db/receipt.db.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 4 passed (242)
Tests 292 passed (292)
Start at 07:51:47
Duration 19.38s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/db/receipt.db.test.ts [queued]
src/services/upcService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 4 passed (242)
Tests 292 passed (292)
Start at 07:51:47
Duration 19.50s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/db/flyer.db.test.ts [queued]
src/services/db/receipt.db.test.ts [queued]
src/services/upcService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 4 passed (242)
Tests 292 passed (292)
Start at 07:51:47
Duration 20.33s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/db/flyer.db.test.ts [queued]
src/services/db/receipt.db.test.ts [queued]
src/services/upcService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 4 passed (242)
Tests 292 passed (292)
Start at 07:51:47
Duration 21.34s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/db/flyer.db.test.ts [queued]
src/services/db/receipt.db.test.ts 0/46
src/services/upcService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 4 passed (242)
Tests 292 passed (338)
Start at 07:51:47
Duration 21.74s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/db/flyer.db.test.ts [queued]
src/services/db/receipt.db.test.ts 1/46
src/services/upcService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 4 passed (242)
Tests 293 passed (338)
Start at 07:51:47
Duration 21.95s
src/services/db/receipt.db.test.ts (46 tests) 190ms
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/db/flyer.db.test.ts 1/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 0/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 5 passed (242)
Tests 339 passed (441)
Start at 07:51:47
Duration 22.23s
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should execute an INSERT query and return the new flyer
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"file_name": "test.jpg",
"image_url": "https://example.com/images/test.jpg",
"icon_url": "https://example.com/images/icons/test.jpg",
"checksum": "checksum123",
"store_id": 1,
"valid_from": "2024-01-01",
"valid_to": "2024-01-07",
"store_address": "123 Test St",
"status": "processed",
"item_count": 10,
"uploaded_by": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"
}
[DB DEBUG] Final URLs for insert: {
imageUrl: 'https://example.com/images/test.jpg',
iconUrl: 'https://example.com/images/icons/test.jpg'
}
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw UniqueConstraintError on duplicate checksum
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"checksum": "duplicate-checksum"
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'placeholder.jpg',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/placeholder.jpg', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw UniqueConstraintError on duplicate checksum
[DB DEBUG] insertFlyer caught error: Error: duplicate key value violates unique constraint "flyers_checksum_key"
at /app/src/services/db/flyer.db.test.ts:185:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12) {
code: '23505'
}
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw UniqueConstraintError on duplicate checksum
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"checksum": "duplicate-checksum"
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'placeholder.jpg',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/placeholder.jpg', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw UniqueConstraintError on duplicate checksum
[DB DEBUG] insertFlyer caught error: Error: duplicate key value violates unique constraint "flyers_checksum_key"
at /app/src/services/db/flyer.db.test.ts:185:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12) {
code: '23505'
}
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw a generic error if the database query fails
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"checksum": "fail-checksum"
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'placeholder.jpg',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/placeholder.jpg', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw a generic error if the database query fails
[DB DEBUG] insertFlyer caught error: Error: DB Connection Error
at /app/src/services/db/flyer.db.test.ts:211:48
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid checksum format
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"checksum": "short"
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'placeholder.jpg',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/placeholder.jpg', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid checksum format
[DB DEBUG] insertFlyer caught error: Error: violates check constraint "flyers_checksum_check"
at /app/src/services/db/flyer.db.test.ts:223:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12) {
code: '23514'
}
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid checksum format
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"checksum": "short"
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'placeholder.jpg',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/placeholder.jpg', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid checksum format
[DB DEBUG] insertFlyer caught error: Error: violates check constraint "flyers_checksum_check"
at /app/src/services/db/flyer.db.test.ts:223:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12) {
code: '23514'
}
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid status
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"status": "invalid_status"
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'placeholder.jpg',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/placeholder.jpg', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid status
[DB DEBUG] insertFlyer caught error: Error: violates check constraint "flyers_status_check"
at /app/src/services/db/flyer.db.test.ts:237:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12) {
code: '23514'
}
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid status
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"status": "invalid_status"
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'placeholder.jpg',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/placeholder.jpg', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid status
[DB DEBUG] insertFlyer caught error: Error: violates check constraint "flyers_status_check"
at /app/src/services/db/flyer.db.test.ts:237:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12) {
code: '23514'
}
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid URL format
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"image_url": "not-a-url"
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'not-a-url',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/not-a-url', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid URL format
[DB DEBUG] insertFlyer caught error: Error: violates check constraint "url_check"
at /app/src/services/db/flyer.db.test.ts:251:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12) {
code: '23514'
}
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid URL format
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"image_url": "not-a-url"
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'not-a-url',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/not-a-url', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should throw CheckConstraintError for invalid URL format
[DB DEBUG] insertFlyer caught error: Error: violates check constraint "url_check"
at /app/src/services/db/flyer.db.test.ts:251:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12) {
code: '23514'
}
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should transform relative icon_url to absolute URL with leading slash
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"file_name": "test.jpg",
"image_url": "https://example.com/images/test.jpg",
"icon_url": "/uploads/icons/test-icon.jpg",
"checksum": "checksum-with-relative-icon",
"store_id": 1,
"valid_from": "2024-01-01",
"valid_to": "2024-01-07",
"store_address": "123 Test St",
"status": "processed",
"item_count": 10,
"uploaded_by": null
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'https://example.com/images/test.jpg',
originalIcon: '/uploads/icons/test-icon.jpg'
}
[DB DEBUG] Final URLs for insert: {
imageUrl: 'https://example.com/images/test.jpg',
iconUrl: 'http://localhost:3000/uploads/icons/test-icon.jpg'
}
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > insertFlyer > should transform relative icon_url to absolute URL without leading slash
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"file_name": "test.jpg",
"image_url": "https://example.com/images/test.jpg",
"icon_url": "uploads/icons/test-icon.jpg",
"checksum": "checksum-with-relative-icon2",
"store_id": 1,
"valid_from": "2024-01-01",
"valid_to": "2024-01-07",
"store_address": "123 Test St",
"status": "processed",
"item_count": 10,
"uploaded_by": null
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'https://example.com/images/test.jpg',
originalIcon: 'uploads/icons/test-icon.jpg'
}
[DB DEBUG] Final URLs for insert: {
imageUrl: 'https://example.com/images/test.jpg',
iconUrl: 'http://localhost:3000/uploads/icons/test-icon.jpg'
}
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts [queued]
src/routes/user.routes.test.ts [queued]
src/services/db/flyer.db.test.ts 1/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 0/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 5 passed (242)
Tests 339 passed (441)
Start at 07:51:47
Duration 22.23s
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > createFlyerAndItems > should execute find/create store, insert flyer, and insert items using the provided client
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"file_name": "transact.jpg",
"store_name": "Transaction Store",
"store_id": 1
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'placeholder.jpg',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/placeholder.jpg', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > createFlyerAndItems > should create a flyer with no items if items array is empty
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"file_name": "empty.jpg",
"store_name": "Empty Store",
"store_id": 2
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'placeholder.jpg',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/placeholder.jpg', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > createFlyerAndItems > should propagate an error if any step fails
[DB DEBUG] FlyerRepository.insertFlyer called with: {
"file_name": "fail.jpg",
"store_name": "Fail Store",
"store_id": 1
}
[DB DEBUG] Transforming relative URLs: {
baseUrl: 'http://localhost:3000',
originalImage: 'placeholder.jpg',
originalIcon: null
}
[DB DEBUG] Final URLs for insert: { imageUrl: 'http://localhost:3000/placeholder.jpg', iconUrl: null }
 
stderr | src/services/db/flyer.db.test.ts > Flyer DB Service > createFlyerAndItems > should propagate an error if any step fails
[DB DEBUG] insertFlyer caught error: Error: Underlying DB call failed
at /app/src/services/db/flyer.db.test.ts:592:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 0/61
src/routes/user.routes.test.ts 0/107
src/services/db/flyer.db.test.ts 20/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 43/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 5 passed (242)
Tests 401 passed (609)
Start at 07:51:47
Duration 22.44s
stdout | src/services/db/flyer.db.test.ts > Flyer DB Service > getFlyers > should use default limit and offset when none are provided
[TEST DEBUG] Running test: getFlyers > should use default limit and offset
 
stdout | src/services/db/flyer.db.test.ts > Flyer DB Service > getFlyers > should use default limit and offset when none are provided
[TEST DEBUG] mockPoolInstance.query calls: [
[
"\n SELECT\n f.*,\n json_build_object(\n 'store_id', s.store_id,\n 'name', s.name,\n 'logo_url', s.logo_url,\n 'locations', COALESCE(\n (SELECT json_agg(\n json_build_object(\n 'address_line_1', a.address_line_1,\n 'city', a.city,\n 'province_state', a.province_state,\n 'postal_code', a.postal_code\n )\n )\n FROM public.store_locations sl\n JOIN public.addresses a ON sl.address_id = a.address_id\n WHERE sl.store_id = s.store_id),\n '[]'::json\n )\n ) as store\n FROM public.flyers f\n JOIN public.stores s ON f.store_id = s.store_id\n ORDER BY f.created_at DESC LIMIT $1 OFFSET $2",
[
20,
0
]
]
]
 
stdout | src/services/db/flyer.db.test.ts > Flyer DB Service > getFlyers > should use provided limit and offset values
[TEST DEBUG] Running test: getFlyers > should use provided limit and offset
 
stdout | src/services/db/flyer.db.test.ts > Flyer DB Service > getFlyers > should use provided limit and offset values
[TEST DEBUG] mockPoolInstance.query calls: [
[
"\n SELECT\n f.*,\n json_build_object(\n 'store_id', s.store_id,\n 'name', s.name,\n 'logo_url', s.logo_url,\n 'locations', COALESCE(\n (SELECT json_agg(\n json_build_object(\n 'address_line_1', a.address_line_1,\n 'city', a.city,\n 'province_state', a.province_state,\n 'postal_code', a.postal_code\n )\n )\n FROM public.store_locations sl\n JOIN public.addresses a ON sl.address_id = a.address_id\n WHERE sl.store_id = s.store_id),\n '[]'::json\n )\n ) as store\n FROM public.flyers f\n JOIN public.stores s ON f.store_id = s.store_id\n ORDER BY f.created_at DESC LIMIT $1 OFFSET $2",
[
10,
5
]
]
]
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 0/61
src/routes/user.routes.test.ts 0/107
src/services/db/flyer.db.test.ts 20/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 43/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 5 passed (242)
Tests 401 passed (609)
Start at 07:51:47
Duration 22.44s
src/services/db/flyer.db.test.ts (45 tests | 1 failed) 319ms
should find an existing store and return its ID 16ms
should create a new store if it does not exist and return its ID 3ms
should throw an error if the database query fails 9ms
should throw an error if store is not found after upsert (edge case) 6ms
should execute an INSERT query and return the new flyer 19ms
should throw UniqueConstraintError on duplicate checksum 34ms
should throw a generic error if the database query fails 13ms
should throw CheckConstraintError for invalid checksum format 17ms
should throw CheckConstraintError for invalid status 11ms
should throw CheckConstraintError for invalid URL format 14ms
should transform relative icon_url to absolute URL with leading slash 5ms
should transform relative icon_url to absolute URL without leading slash 4ms
should build a bulk INSERT query and return the new items 3ms
should return an empty array and not query the DB if items array is empty 2ms
should throw ForeignKeyConstraintError if flyerId is invalid 4ms
should throw a generic error if the database query fails 9ms
should sanitize empty or whitespace-only price_display to "N/A" 2ms
should execute find/create store, insert flyer, and insert items using the provided client 11ms
should create a flyer with no items if items array is empty 3ms
should propagate an error if any step fails 18ms
should execute the correct SELECT query and return brands 7ms
should throw an error if the database query fails 2ms
× should return a flyer if found 22ms
should throw NotFoundError if flyer is not found 4ms
should use default limit and offset when none are provided 8ms
should use provided limit and offset values 11ms
should throw an error if the database query fails 3ms
should return items for a specific flyer 13ms
should return an empty array if flyer has no items 2ms
should throw an error if the database query fails 4ms
should return items for multiple flyers using ANY 2ms
should return an empty array if no items are found for the given flyer IDs 1ms
should throw an error if the database query fails 3ms
should return the total count of items 2ms
should return 0 if the flyerIds array is empty 1ms
should throw an error if the database query fails 3ms
should return a flyer for a given checksum 3ms
should return undefined if no flyer is found for the checksum 1ms
should throw an error if the database query fails 2ms
should increment view_count for a "view" interaction 2ms
should increment click_count for a "click" interaction 1ms
should not throw an error if the database query fails (fire-and-forget) 2ms
should use withTransaction to delete a flyer 1ms
should throw an error if the flyer to delete is not found 1ms
should rollback transaction on generic error 2ms
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 1/61
src/routes/user.routes.test.ts 0/107
src/services/db/flyer.db.test.ts 45/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 48/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 431 passed (609)
Start at 07:51:47
Duration 22.54s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-and-process > should enqueue a job and return 202 on success
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-and-process > should return 400 if checksum is missing
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 4/61
src/routes/user.routes.test.ts 2/107
src/services/db/flyer.db.test.ts 45/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 50/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 438 passed (609)
Start at 07:51:47
Duration 22.78s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > GET /profile > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 4/61
src/routes/user.routes.test.ts 2/107
src/services/db/flyer.db.test.ts 45/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 50/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 438 passed (609)
Start at 07:51:47
Duration 22.78s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > GET /profile > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:171:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-and-process > should return 409 if flyer checksum already exists
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 4/61
src/routes/user.routes.test.ts 2/107
src/services/db/flyer.db.test.ts 45/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 50/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 438 passed (609)
Start at 07:51:47
Duration 22.78s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > GET /watched-items > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 7/61
src/routes/user.routes.test.ts 6/107
src/services/db/flyer.db.test.ts 45/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 52/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 447 passed (609)
Start at 07:51:47
Duration 22.88s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > GET /watched-items > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:194:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-and-process > should return 500 if enqueuing the job fails
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 7/61
src/routes/user.routes.test.ts 6/107
src/services/db/flyer.db.test.ts 45/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 52/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 447 passed (609)
Start at 07:51:47
Duration 22.88s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-and-process > should return 500 if enqueuing the job fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 7/61
src/routes/user.routes.test.ts 6/107
src/services/db/flyer.db.test.ts 45/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 52/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 447 passed (609)
Start at 07:51:47
Duration 22.88s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-and-process > should return 500 if enqueuing the job fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Redis connection failed
at /app/src/routes/ai.routes.test.ts:237:9
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-and-process > should pass user ID to the job when authenticated
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-and-process > should pass user profile address to the job when authenticated user has an address
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 7/61
src/routes/user.routes.test.ts 6/107
src/services/db/flyer.db.test.ts 45/45
src/services/db/receipt.db.test.ts 46/46
src/services/upcService.server.test.ts 52/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 447 passed (609)
Start at 07:51:47
Duration 22.88s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > POST /watched-items > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 13/61
src/routes/user.routes.test.ts 11/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 55/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 461 passed (609)
Start at 07:51:47
Duration 23.24s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > POST /watched-items > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:220:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-and-process > should clean up the uploaded file if validation fails (e.g., missing checksum)
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-legacy > should process a legacy flyer and return 200 on success
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 13/61
src/routes/user.routes.test.ts 11/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 55/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 461 passed (609)
Start at 07:51:47
Duration 23.24s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > DELETE /watched-items/:masterItemId > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 13/61
src/routes/user.routes.test.ts 11/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 55/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 461 passed (609)
Start at 07:51:47
Duration 23.24s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > DELETE /watched-items/:masterItemId > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:273:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 13/61
src/routes/user.routes.test.ts 11/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 55/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 461 passed (609)
Start at 07:51:47
Duration 23.24s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Routes > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 20/61
src/routes/user.routes.test.ts 23/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 57/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 482 passed (609)
Start at 07:51:47
Duration 23.44s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Routes > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:296:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 20/61
src/routes/user.routes.test.ts 23/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 57/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 482 passed (609)
Start at 07:51:47
Duration 23.44s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Routes > should return 500 on a generic database error during creation
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 20/61
src/routes/user.routes.test.ts 23/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 57/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 482 passed (609)
Start at 07:51:47
Duration 23.44s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Routes > should return 500 on a generic database error during creation
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:340:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 20/61
src/routes/user.routes.test.ts 23/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 57/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 482 passed (609)
Start at 07:51:47
Duration 23.44s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Routes > DELETE /shopping-lists/:listId > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 20/61
src/routes/user.routes.test.ts 23/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 57/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 482 passed (609)
Start at 07:51:47
Duration 23.44s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Routes > DELETE /shopping-lists/:listId > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:374:27
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-legacy > should return 409 and cleanup file if a duplicate flyer is detected
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-legacy > should return 500 and cleanup file on a generic service error
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 20/61
src/routes/user.routes.test.ts 23/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 57/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 482 passed (609)
Start at 07:51:47
Duration 23.44s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-legacy > should return 500 and cleanup file on a generic service error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 20/61
src/routes/user.routes.test.ts 23/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 57/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 482 passed (609)
Start at 07:51:47
Duration 23.44s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /upload-legacy > should return 500 and cleanup file on a generic service error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Internal service failure
at /app/src/routes/ai.routes.test.ts:427:9
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy) > should save a flyer and return 201 on success
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy) > should return 409 Conflict and delete the uploaded file if flyer checksum already exists
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy) > should accept payload when extractedData.items is missing and save with empty items
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy) > should fallback to a safe store name when store_name is missing
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 20/61
src/routes/user.routes.test.ts 23/107
src/services/db/flyer.db.test.ts 45/45
src/services/upcService.server.test.ts 57/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 5 passed (242)
Tests 1 failed | 482 passed (609)
Start at 07:51:47
Duration 23.44s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Item Routes > should return 500 on a generic database error when adding an item
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 22/61
src/routes/user.routes.test.ts 33/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 495 passed (609)
Start at 07:51:47
Duration 23.54s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Item Routes > should return 500 on a generic database error when adding an item
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:462:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 22/61
src/routes/user.routes.test.ts 33/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 495 passed (609)
Start at 07:51:47
Duration 23.54s
src/services/upcService.server.test.ts (58 tests) 1357ms
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 22/61
src/routes/user.routes.test.ts 33/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 495 passed (609)
Start at 07:51:47
Duration 23.54s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy) > should handle a generic error during flyer creation
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 22/61
src/routes/user.routes.test.ts 33/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 495 passed (609)
Start at 07:51:47
Duration 23.54s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Item Routes > should return 500 on a generic database error when updating an item
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 22/61
src/routes/user.routes.test.ts 33/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 495 passed (609)
Start at 07:51:47
Duration 23.54s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Item Routes > should return 500 on a generic database error when updating an item
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:505:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 22/61
src/routes/user.routes.test.ts 33/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 495 passed (609)
Start at 07:51:47
Duration 23.54s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy) > should handle a generic error during flyer creation
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 22/61
src/routes/user.routes.test.ts 33/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 495 passed (609)
Start at 07:51:47
Duration 23.54s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy) > should handle a generic error during flyer creation
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB transaction failed
at /app/src/routes/ai.routes.test.ts:547:9
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 22/61
src/routes/user.routes.test.ts 33/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 495 passed (609)
Start at 07:51:47
Duration 23.54s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Item Routes > DELETE /shopping-lists/items/:itemId > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 23/61
src/routes/user.routes.test.ts 34/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 497 passed (609)
Start at 07:51:47
Duration 23.86s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Shopping List Item Routes > DELETE /shopping-lists/items/:itemId > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:543:27
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 23/61
src/routes/user.routes.test.ts 34/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 497 passed (609)
Start at 07:51:47
Duration 23.86s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > PUT /profile > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 23/61
src/routes/user.routes.test.ts 34/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 497 passed (609)
Start at 07:51:47
Duration 23.86s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > PUT /profile > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:585:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 23/61
src/routes/user.routes.test.ts 34/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 497 passed (609)
Start at 07:51:47
Duration 23.86s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > PUT /profile/password > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 23/61
src/routes/user.routes.test.ts 34/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 497 passed (609)
Start at 07:51:47
Duration 23.86s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > PUT /profile/password > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:617:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 23/61
src/routes/user.routes.test.ts 34/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 497 passed (609)
Start at 07:51:47
Duration 23.86s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy Payload Variations) > should handle payload where "data" field is an object, not stringified JSON
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy Payload Variations) > should handle payload where extractedData is null
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy Payload Variations) > should handle payload where extractedData is a string
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy Payload Variations) > should handle payload where extractedData is at the root of the body
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy Payload Variations) > should default item quantity to 1 if missing
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy Error Handling) > should handle malformed JSON in data field and return 400
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 31/61
src/routes/user.routes.test.ts 47/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 518 passed (609)
Start at 07:51:47
Duration 24.10s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > DELETE /account > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 31/61
src/routes/user.routes.test.ts 47/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 518 passed (609)
Start at 07:51:47
Duration 24.10s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > DELETE /account > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:681:11
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /flyers/process (Legacy Error Handling) > should return 400 if checksum is missing from legacy payload
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /check-flyer > should return 200 with a stubbed response on success
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /check-flyer > should return 500 on a generic error
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 31/61
src/routes/user.routes.test.ts 47/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 518 passed (609)
Start at 07:51:47
Duration 24.10s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /check-flyer > should return 500 on a generic error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 31/61
src/routes/user.routes.test.ts 47/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 518 passed (609)
Start at 07:51:47
Duration 24.10s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /check-flyer > should return 500 on a generic error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Logging failed
at Object.<anonymous> (/app/src/routes/ai.routes.test.ts:717:15)
at Object.Mock (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at /app/src/routes/ai.routes.ts:487:15
at Layer.handleRequest (/app/node_modules/router/lib/layer.js:152:17)
at next (/app/node_modules/router/lib/route.js:157:13)
at done (/app/node_modules/multer/lib/make-middleware.js:59:7)
at indicateDone (/app/node_modules/multer/lib/make-middleware.js:63:68)
at Multipart.<anonymous> (/app/node_modules/multer/lib/make-middleware.js:187:7)
at Multipart.emit (node:events:524:28)
at emitCloseNT (node:internal/streams/destroy:147:10)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 31/61
src/routes/user.routes.test.ts 47/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 518 passed (609)
Start at 07:51:47
Duration 24.10s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > User Preferences and Personalization > PUT /profile/preferences > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 31/61
src/routes/user.routes.test.ts 47/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 518 passed (609)
Start at 07:51:47
Duration 24.10s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > User Preferences and Personalization > PUT /profile/preferences > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:711:27
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 31/61
src/routes/user.routes.test.ts 47/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 518 passed (609)
Start at 07:51:47
Duration 24.10s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > User Preferences and Personalization > GET and PUT /users/me/dietary-restrictions > GET should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 31/61
src/routes/user.routes.test.ts 47/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 518 passed (609)
Start at 07:51:47
Duration 24.10s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > User Preferences and Personalization > GET and PUT /users/me/dietary-restrictions > GET should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:748:27
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 31/61
src/routes/user.routes.test.ts 47/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 518 passed (609)
Start at 07:51:47
Duration 24.10s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > User Preferences and Personalization > GET and PUT /users/me/dietary-restrictions > PUT should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 34/61
src/routes/user.routes.test.ts 61/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 535 passed (609)
Start at 07:51:47
Duration 24.20s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > User Preferences and Personalization > GET and PUT /users/me/dietary-restrictions > PUT should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:785:27
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 34/61
src/routes/user.routes.test.ts 61/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 535 passed (609)
Start at 07:51:47
Duration 24.20s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > User Preferences and Personalization > GET and PUT /users/me/appliances > GET should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 34/61
src/routes/user.routes.test.ts 61/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 535 passed (609)
Start at 07:51:47
Duration 24.20s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > User Preferences and Personalization > GET and PUT /users/me/appliances > GET should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:812:27
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /rescan-area > should return 400 if cropArea or extractionType is missing
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 34/61
src/routes/user.routes.test.ts 61/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 535 passed (609)
Start at 07:51:47
Duration 24.20s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > User Preferences and Personalization > GET and PUT /users/me/appliances > PUT should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 34/61
src/routes/user.routes.test.ts 61/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 535 passed (609)
Start at 07:51:47
Duration 24.20s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > User Preferences and Personalization > GET and PUT /users/me/appliances > PUT should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:843:27
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 34/61
src/routes/user.routes.test.ts 61/107
src/services/upcService.server.test.ts 58/58
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 535 passed (609)
Start at 07:51:47
Duration 24.20s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /rescan-area > should return 400 if cropArea is malformed JSON
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 35/61
src/routes/user.routes.test.ts 66/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 541 passed (609)
Start at 07:51:47
Duration 24.58s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Notification Routes > GET /notifications should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 35/61
src/routes/user.routes.test.ts 66/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 541 passed (609)
Start at 07:51:47
Duration 24.58s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Notification Routes > GET /notifications should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:902:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 35/61
src/routes/user.routes.test.ts 66/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 541 passed (609)
Start at 07:51:47
Duration 24.58s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Notification Routes > POST /notifications/mark-all-read should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 35/61
src/routes/user.routes.test.ts 66/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 541 passed (609)
Start at 07:51:47
Duration 24.58s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Notification Routes > POST /notifications/mark-all-read should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:919:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 35/61
src/routes/user.routes.test.ts 66/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 541 passed (609)
Start at 07:51:47
Duration 24.58s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Notification Routes > POST /notifications/:notificationId/mark-read should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 35/61
src/routes/user.routes.test.ts 66/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 541 passed (609)
Start at 07:51:47
Duration 24.58s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Notification Routes > POST /notifications/:notificationId/mark-read should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:940:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 35/61
src/routes/user.routes.test.ts 66/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 541 passed (609)
Start at 07:51:47
Duration 24.58s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Address Routes > GET /addresses/:addressId should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 35/61
src/routes/user.routes.test.ts 66/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 541 passed (609)
Start at 07:51:47
Duration 24.58s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Address Routes > GET /addresses/:addressId should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/user.routes.test.ts:975:65
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 35/61
src/routes/user.routes.test.ts 66/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 541 passed (609)
Start at 07:51:47
Duration 24.58s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Address Routes > PUT /profile/address should return 500 on a generic service error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 35/61
src/routes/user.routes.test.ts 66/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 541 passed (609)
Start at 07:51:47
Duration 24.58s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Address Routes > PUT /profile/address should return 500 on a generic service error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:1025:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 35/61
src/routes/user.routes.test.ts 66/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 541 passed (609)
Start at 07:51:47
Duration 24.58s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /extract-address > should return 200 with a stubbed response on success
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /extract-address > should return 500 on a generic error
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 44/61
src/routes/user.routes.test.ts 84/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 568 passed (609)
Start at 07:51:47
Duration 24.68s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /extract-address > should return 500 on a generic error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 44/61
src/routes/user.routes.test.ts 84/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 568 passed (609)
Start at 07:51:47
Duration 24.68s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /extract-address > should return 500 on a generic error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Logging failed
at Object.<anonymous> (/app/src/routes/ai.routes.test.ts:774:15)
at Object.Mock (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at /app/src/routes/ai.routes.ts:533:15
at Layer.handleRequest (/app/node_modules/router/lib/layer.js:152:17)
at next (/app/node_modules/router/lib/route.js:157:13)
at done (/app/node_modules/multer/lib/make-middleware.js:59:7)
at indicateDone (/app/node_modules/multer/lib/make-middleware.js:63:68)
at Multipart.<anonymous> (/app/node_modules/multer/lib/make-middleware.js:187:7)
at Multipart.emit (node:events:524:28)
at emitCloseNT (node:internal/streams/destroy:147:10)
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /extract-logo > should return 200 with a stubbed response on success
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /extract-logo > should return 500 on a generic error
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 44/61
src/routes/user.routes.test.ts 84/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 568 passed (609)
Start at 07:51:47
Duration 24.68s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /extract-logo > should return 500 on a generic error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 44/61
src/routes/user.routes.test.ts 84/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 568 passed (609)
Start at 07:51:47
Duration 24.68s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /extract-logo > should return 500 on a generic error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Logging failed
at Object.<anonymous> (/app/src/routes/ai.routes.test.ts:802:15)
at Object.Mock (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at /app/src/routes/ai.routes.ts:581:15
at Layer.handleRequest (/app/node_modules/router/lib/layer.js:152:17)
at next (/app/node_modules/router/lib/route.js:157:13)
at done (/app/node_modules/multer/lib/make-middleware.js:59:7)
at indicateDone (/app/node_modules/multer/lib/make-middleware.js:63:68)
at Multipart.<anonymous> (/app/node_modules/multer/lib/make-middleware.js:187:7)
at Multipart.emit (node:events:524:28)
at emitCloseNT (node:internal/streams/destroy:147:10)
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /rescan-area (authenticated) > should call the AI service and return the result on success (authenticated)
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /rescan-area (authenticated) > should return 500 if the AI service throws an error (authenticated)
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 44/61
src/routes/user.routes.test.ts 84/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 568 passed (609)
Start at 07:51:47
Duration 24.68s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /rescan-area (authenticated) > should return 500 if the AI service throws an error (authenticated)
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 44/61
src/routes/user.routes.test.ts 84/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 568 passed (609)
Start at 07:51:47
Duration 24.68s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > POST /rescan-area (authenticated) > should return 500 if the AI service throws an error (authenticated)
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: AI API is down
at /app/src/routes/ai.routes.test.ts:848:9
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 44/61
src/routes/user.routes.test.ts 84/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 568 passed (609)
Start at 07:51:47
Duration 24.68s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > POST /profile/avatar > should return 500 if updating the profile fails after upload
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 44/61
src/routes/user.routes.test.ts 84/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 568 passed (609)
Start at 07:51:47
Duration 24.68s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > POST /profile/avatar > should return 500 if updating the profile fails after upload
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:1067:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 44/61
src/routes/user.routes.test.ts 84/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 568 passed (609)
Start at 07:51:47
Duration 24.68s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > when user is authenticated > POST /quick-insights should return 500 on a generic error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 44/61
src/routes/user.routes.test.ts 84/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 568 passed (609)
Start at 07:51:47
Duration 24.68s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > when user is authenticated > POST /quick-insights should return 500 on a generic error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Logging failed
at Object.<anonymous> (/app/src/routes/ai.routes.test.ts:886:15)
at Object.Mock (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at /app/src/routes/ai.routes.ts:628:15
at Layer.handleRequest (/app/node_modules/router/lib/layer.js:152:17)
at next (/app/node_modules/router/lib/route.js:157:13)
at /app/src/middleware/validation.middleware.ts:43:14
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 44/61
src/routes/user.routes.test.ts 84/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 568 passed (609)
Start at 07:51:47
Duration 24.68s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > when user is authenticated > POST /plan-trip should return 500 if the AI service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 45/61
src/routes/user.routes.test.ts 85/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 570 passed (609)
Start at 07:51:47
Duration 24.85s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > when user is authenticated > POST /plan-trip should return 500 if the AI service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Maps API key invalid
at /app/src/routes/ai.routes.test.ts:951:9
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 45/61
src/routes/user.routes.test.ts 85/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 570 passed (609)
Start at 07:51:47
Duration 24.85s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > when user is authenticated > POST /deep-dive should return 500 on a generic error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 45/61
src/routes/user.routes.test.ts 85/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 570 passed (609)
Start at 07:51:47
Duration 24.85s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > when user is authenticated > POST /deep-dive should return 500 on a generic error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Deep dive logging failed
at Object.<anonymous> (/app/src/routes/ai.routes.test.ts:968:15)
at Object.Mock (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at /app/src/routes/ai.routes.ts:673:15
at Layer.handleRequest (/app/node_modules/router/lib/layer.js:152:17)
at next (/app/node_modules/router/lib/route.js:157:13)
at /app/src/middleware/validation.middleware.ts:43:14
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 45/61
src/routes/user.routes.test.ts 85/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 570 passed (609)
Start at 07:51:47
Duration 24.85s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > when user is authenticated > POST /search-web should return 500 on a generic error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 45/61
src/routes/user.routes.test.ts 85/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 570 passed (609)
Start at 07:51:47
Duration 24.85s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > when user is authenticated > POST /search-web should return 500 on a generic error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Search web logging failed
at Object.<anonymous> (/app/src/routes/ai.routes.test.ts:979:15)
at Object.Mock (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at /app/src/routes/ai.routes.ts:717:15
at Layer.handleRequest (/app/node_modules/router/lib/layer.js:152:17)
at next (/app/node_modules/router/lib/route.js:157:13)
at /app/src/middleware/validation.middleware.ts:43:14
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 45/61
src/routes/user.routes.test.ts 85/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 570 passed (609)
Start at 07:51:47
Duration 24.85s
stdout | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > when user is authenticated > POST /compare-prices should return 500 on a generic error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 45/61
src/routes/user.routes.test.ts 85/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 570 passed (609)
Start at 07:51:47
Duration 24.85s
stderr | src/routes/ai.routes.test.ts > AI Routes (/api/ai) > when user is authenticated > POST /compare-prices should return 500 on a generic error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Compare prices logging failed
at Object.<anonymous> (/app/src/routes/ai.routes.test.ts:990:15)
at Object.Mock (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at /app/src/routes/ai.routes.ts:763:15
at Layer.handleRequest (/app/node_modules/router/lib/layer.js:152:17)
at next (/app/node_modules/router/lib/route.js:157:13)
at /app/src/middleware/validation.middleware.ts:43:14
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 45/61
src/routes/user.routes.test.ts 85/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 6 passed (242)
Tests 1 failed | 570 passed (609)
Start at 07:51:47
Duration 24.85s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > POST /profile/avatar > should clean up the uploaded file if updating the profile fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 104/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 7 passed (242)
Tests 1 failed | 605 passed (609)
Start at 07:51:47
Duration 25.21s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > POST /profile/avatar > should clean up the uploaded file if updating the profile fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:1112:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 104/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 7 passed (242)
Tests 1 failed | 605 passed (609)
Start at 07:51:47
Duration 25.21s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Recipe Routes > POST /recipes should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 104/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 7 passed (242)
Tests 1 failed | 605 passed (609)
Start at 07:51:47
Duration 25.21s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Recipe Routes > POST /recipes should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:1158:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 104/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 7 passed (242)
Tests 1 failed | 605 passed (609)
Start at 07:51:47
Duration 25.21s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Recipe Routes > DELETE /recipes/:recipeId should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 104/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 7 passed (242)
Tests 1 failed | 605 passed (609)
Start at 07:51:47
Duration 25.21s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Recipe Routes > DELETE /recipes/:recipeId should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:1185:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 104/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 7 passed (242)
Tests 1 failed | 605 passed (609)
Start at 07:51:47
Duration 25.21s
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Recipe Routes > PUT /recipes/:recipeId should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 104/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 7 passed (242)
Tests 1 failed | 605 passed (609)
Start at 07:51:47
Duration 25.21s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Recipe Routes > PUT /recipes/:recipeId should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:1233:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 104/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 7 passed (242)
Tests 1 failed | 605 passed (609)
Start at 07:51:47
Duration 25.21s
src/routes/ai.routes.test.ts (61 tests) 2427ms
stdout | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Recipe Routes > GET /shopping-lists/:listId should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 104/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 7 passed (242)
Tests 1 failed | 605 passed (609)
Start at 07:51:47
Duration 25.21s
stderr | src/routes/user.routes.test.ts > User Routes (/api/users) > when user is authenticated > Recipe Routes > GET /shopping-lists/:listId should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/user.routes.test.ts:1282:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 104/107
src/tests/integration/flyer-processing.integration.test.ts [queued]
 
Test Files 1 failed | 7 passed (242)
Tests 1 failed | 605 passed (609)
Start at 07:51:47
Duration 25.21s
src/routes/user.routes.test.ts (107 tests) 2815ms
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 107/107
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 8 passed (242)
Tests 1 failed | 608 passed (616)
Start at 07:51:47
Duration 25.64s
stderr | src/tests/integration/flyer-processing.integration.test.ts > Flyer Processing Background Job Integration Test
[TEST SETUP] STORAGE_PATH: /app/flyer-images
[TEST SETUP] FRONTEND_URL stubbed to: https://example.com
 
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/ai.routes.test.ts 61/61
src/routes/user.routes.test.ts 107/107
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 8 passed (242)
Tests 1 failed | 608 passed (616)
Start at 07:51:47
Duration 26.92s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/services/flyerProcessingService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 8 passed (242)
Tests 1 failed | 608 passed (616)
Start at 07:51:47
Duration 27.09s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/auth.routes.test.ts [queued]
src/services/db/shopping.db.test.ts [queued]
src/services/flyerProcessingService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 8 passed (242)
Tests 1 failed | 608 passed (616)
Start at 07:51:47
Duration 27.71s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/auth.routes.test.ts [queued]
src/services/db/shopping.db.test.ts [queued]
src/services/flyerProcessingService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 8 passed (242)
Tests 1 failed | 608 passed (616)
Start at 07:51:47
Duration 28.93s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/auth.routes.test.ts [queued]
src/services/db/personalization.db.test.ts [queued]
src/services/db/shopping.db.test.ts [queued]
src/services/flyerProcessingService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 8 passed (242)
Tests 1 failed | 608 passed (616)
Start at 07:51:47
Duration 29.03s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/auth.routes.test.ts [queued]
src/services/db/personalization.db.test.ts [queued]
src/services/db/shopping.db.test.ts [queued]
src/services/flyerProcessingService.server.test.ts [queued]
src/services/receiptService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 8 passed (242)
Tests 1 failed | 608 passed (616)
Start at 07:51:47
Duration 30.36s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/auth.routes.test.ts [queued]
src/services/db/personalization.db.test.ts [queued]
src/services/db/shopping.db.test.ts [queued]
src/services/flyerProcessingService.server.test.ts [queued]
src/services/receiptService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 8 passed (242)
Tests 1 failed | 608 passed (616)
Start at 07:51:47
Duration 31.35s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/auth.routes.test.ts [queued]
src/services/db/personalization.db.test.ts [queued]
src/services/db/shopping.db.test.ts 0/62
src/services/flyerProcessingService.server.test.ts [queued]
src/services/receiptService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 8 passed (242)
Tests 1 failed | 608 passed (678)
Start at 07:51:47
Duration 31.59s
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/auth.routes.test.ts [queued]
src/services/db/personalization.db.test.ts [queued]
src/services/db/shopping.db.test.ts 1/62
src/services/flyerProcessingService.server.test.ts [queued]
src/services/receiptService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 8 passed (242)
Tests 1 failed | 609 passed (678)
Start at 07:51:47
Duration 31.76s
src/services/db/shopping.db.test.ts (62 tests) 115ms
 
src/pages/admin/components/ProfileManager.test.tsx [queued]
src/routes/auth.routes.test.ts [queued]
src/services/db/personalization.db.test.ts 0/56
src/services/db/shopping.db.test.ts 62/62
src/services/flyerProcessingService.server.test.ts [queued]
src/services/receiptService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 9 passed (242)
Tests 1 failed | 670 passed (734)
Start at 07:51:47
Duration 32.03s
 
src/pages/admin/components/ProfileManager.test.tsx 0/46
src/routes/auth.routes.test.ts [queued]
src/services/db/personalization.db.test.ts 0/56
src/services/db/shopping.db.test.ts 62/62
src/services/flyerProcessingService.server.test.ts [queued]
src/services/receiptService.server.test.ts 0/37
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 9 passed (242)
Tests 1 failed | 670 passed (817)
Start at 07:51:47
Duration 32.33s
src/services/db/personalization.db.test.ts (56 tests) 193ms
src/services/receiptService.server.test.ts (37 tests) 205ms
 
src/pages/admin/components/ProfileManager.test.tsx 0/46
src/routes/auth.routes.test.ts [queued]
src/services/db/personalization.db.test.ts 56/56
src/services/flyerProcessingService.server.test.ts [queued]
src/services/receiptService.server.test.ts 37/37
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 763 passed (817)
Start at 07:51:47
Duration 33.37s
 
src/pages/admin/components/ProfileManager.test.tsx 0/46
src/routes/auth.routes.test.ts 0/47
src/services/flyerProcessingService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 763 passed (864)
Start at 07:51:47
Duration 33.79s
 
src/pages/admin/components/ProfileManager.test.tsx 0/46
src/routes/auth.routes.test.ts 1/47
src/services/flyerProcessingService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 764 passed (864)
Start at 07:51:47
Duration 34.30s
stderr | src/pages/admin/components/ProfileManager.test.tsx > ProfileManager > Authentication Flows (Signed Out) > should render the Sign In form when authStatus is SIGNED_OUT
React does not recognize the `showStrength` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `showstrength` instead. If you accidentally passed it from a parent component, remove it from the DOM element.
 
 
src/pages/admin/components/ProfileManager.test.tsx 0/46
src/routes/auth.routes.test.ts 5/47
src/services/flyerProcessingService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 768 passed (864)
Start at 07:51:47
Duration 34.42s
stdout | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /register > should return 500 if a generic database error occurs during registration
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx 0/46
src/routes/auth.routes.test.ts 6/47
src/services/flyerProcessingService.server.test.ts 0/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 769 passed (884)
Start at 07:51:47
Duration 34.53s
stderr | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /register > should return 500 if a generic database error occurs during registration
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB connection lost
at /app/src/routes/auth.routes.test.ts:267:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx 0/46
src/routes/auth.routes.test.ts 6/47
src/services/flyerProcessingService.server.test.ts 0/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 769 passed (884)
Start at 07:51:47
Duration 34.53s
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should process an image file successfully and enqueue a cleanup job
[WORKER DEBUG] ProcessingService: Calling fileHandler.prepareImageInputs for /tmp/flyer.jpg
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should process an image file successfully and enqueue a cleanup job
[WORKER DEBUG] ProcessingService: fileHandler returned 1 images.
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should process an image file successfully and enqueue a cleanup job
[WORKER DEBUG] ProcessingService: Calling aiProcessor.extractAndValidateData
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should process an image file successfully and enqueue a cleanup job
[WORKER DEBUG] ProcessingService: aiProcessor returned data for store: Mock Store
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should process an image file successfully and enqueue a cleanup job
[WORKER DEBUG] ProcessingService: Generating icon from /tmp/flyer-processed.jpeg to /tmp/icons
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 7/47
src/services/flyerProcessingService.server.test.ts 0/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 771 passed (884)
Start at 07:51:47
Duration 34.63s
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should process an image file successfully and enqueue a cleanup job
[WORKER DEBUG] ProcessingService: Icon generated: icon-flyer.webp
[DEBUG] FlyerProcessingService resolved baseUrl: "https://example.com" (job.data.baseUrl: "https://example.com", env.FRONTEND_URL: "http://localhost:3000")
[DEBUG] FlyerProcessingService calling transformer with: {
originalFileName: 'flyer.jpg',
imageFileName: 'flyer-processed.jpeg',
iconFileName: 'icon-flyer.webp',
checksum: 'checksum-123',
baseUrl: 'https://example.com'
}
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should process an image file successfully and enqueue a cleanup job
[DEBUG] FlyerProcessingService transformer output URLs: {
imageUrl: 'https://example.com/test.jpg',
iconUrl: 'https://example.com/icon.webp'
}
[DEBUG] Full Flyer Data to be saved: {
"file_name": "test.jpg",
"image_url": "https://example.com/test.jpg",
"icon_url": "https://example.com/icon.webp",
"store_name": "Mock Store",
"status": "processed",
"item_count": 0,
"valid_from": "2024-01-01",
"valid_to": "2024-01-07"
}
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should convert a PDF, process its images, and enqueue a cleanup job for all files
[WORKER DEBUG] ProcessingService: Calling fileHandler.prepareImageInputs for /tmp/flyer.pdf
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should convert a PDF, process its images, and enqueue a cleanup job for all files
[WORKER DEBUG] ProcessingService: fileHandler returned 2 images.
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should convert a PDF, process its images, and enqueue a cleanup job for all files
[WORKER DEBUG] ProcessingService: Calling aiProcessor.extractAndValidateData
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should convert a PDF, process its images, and enqueue a cleanup job for all files
[WORKER DEBUG] ProcessingService: aiProcessor returned data for store: Mock Store
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should convert a PDF, process its images, and enqueue a cleanup job for all files
[WORKER DEBUG] ProcessingService: Generating icon from /tmp/flyer-1.jpg to /tmp/icons
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should convert a PDF, process its images, and enqueue a cleanup job for all files
[WORKER DEBUG] ProcessingService: Icon generated: icon-flyer-1.webp
[DEBUG] FlyerProcessingService resolved baseUrl: "https://example.com" (job.data.baseUrl: "https://example.com", env.FRONTEND_URL: "http://localhost:3000")
[DEBUG] FlyerProcessingService calling transformer with: {
originalFileName: 'flyer.pdf',
imageFileName: 'flyer-1.jpg',
iconFileName: 'icon-flyer-1.webp',
checksum: 'checksum-123',
baseUrl: 'https://example.com'
}
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 13/47
src/services/flyerProcessingService.server.test.ts 0/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 777 passed (884)
Start at 07:51:47
Duration 34.83s
stdout | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /login > should return 500 if saving the refresh token fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 13/47
src/services/flyerProcessingService.server.test.ts 0/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 777 passed (884)
Start at 07:51:47
Duration 34.83s
stderr | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /login > should return 500 if saving the refresh token fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB write failed
at /app/src/routes/auth.routes.test.ts:357:65
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should convert a PDF, process its images, and enqueue a cleanup job for all files
[DEBUG] FlyerProcessingService transformer output URLs: {
imageUrl: 'https://example.com/test.jpg',
iconUrl: 'https://example.com/icon.webp'
}
[DEBUG] Full Flyer Data to be saved: {
"file_name": "test.jpg",
"image_url": "https://example.com/test.jpg",
"icon_url": "https://example.com/icon.webp",
"store_name": "Mock Store",
"status": "processed",
"item_count": 0,
"valid_from": "2024-01-01",
"valid_to": "2024-01-07"
}
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 13/47
src/services/flyerProcessingService.server.test.ts 0/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 777 passed (884)
Start at 07:51:47
Duration 34.83s
stdout | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /login > should return 500 if passport strategy returns an error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 13/47
src/services/flyerProcessingService.server.test.ts 0/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 777 passed (884)
Start at 07:51:47
Duration 34.83s
stderr | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /login > should return 500 if passport strategy returns an error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Database connection failed
at /app/src/routes/auth.routes.test.ts:33:25
at /app/src/routes/auth.routes.ts:294:5
at Layer.handleRequest (/app/node_modules/router/lib/layer.js:152:17)
at next (/app/node_modules/router/lib/route.js:157:13)
at /app/src/middleware/validation.middleware.ts:43:14
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw an error and not enqueue cleanup if the AI service fails
[WORKER DEBUG] ProcessingService: Calling fileHandler.prepareImageInputs for /tmp/flyer.jpg
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw an error and not enqueue cleanup if the AI service fails
[WORKER DEBUG] ProcessingService: fileHandler returned 1 images.
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw an error and not enqueue cleanup if the AI service fails
[WORKER DEBUG] ProcessingService: Calling aiProcessor.extractAndValidateData
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 13/47
src/services/flyerProcessingService.server.test.ts 0/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 777 passed (884)
Start at 07:51:47
Duration 34.83s
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 17/47
src/services/flyerProcessingService.server.test.ts 2/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 783 passed (884)
Start at 07:51:47
Duration 34.94s
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw UnrecoverableError for quota issues and not enqueue cleanup
[WORKER DEBUG] ProcessingService: Calling fileHandler.prepareImageInputs for /tmp/flyer.jpg
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw UnrecoverableError for quota issues and not enqueue cleanup
[WORKER DEBUG] ProcessingService: fileHandler returned 1 images.
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw UnrecoverableError for quota issues and not enqueue cleanup
[WORKER DEBUG] ProcessingService: Calling aiProcessor.extractAndValidateData
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw PdfConversionError and not enqueue cleanup if PDF conversion fails
[WORKER DEBUG] ProcessingService: Calling fileHandler.prepareImageInputs for /tmp/bad.pdf
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 21/47
src/services/flyerProcessingService.server.test.ts 5/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 790 passed (884)
Start at 07:51:47
Duration 35.05s
stdout | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /forgot-password > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 21/47
src/services/flyerProcessingService.server.test.ts 5/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 790 passed (884)
Start at 07:51:47
Duration 35.05s
stderr | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /forgot-password > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB connection failed
at /app/src/routes/auth.routes.test.ts:460:57
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw AiDataValidationError and not enqueue cleanup if AI validation fails
[WORKER DEBUG] ProcessingService: Calling fileHandler.prepareImageInputs for /tmp/flyer.jpg
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw AiDataValidationError and not enqueue cleanup if AI validation fails
[WORKER DEBUG] ProcessingService: fileHandler returned 1 images.
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw AiDataValidationError and not enqueue cleanup if AI validation fails
[WORKER DEBUG] ProcessingService: Calling aiProcessor.extractAndValidateData
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should handle convertible image types and include original and converted files in cleanup
[WORKER DEBUG] ProcessingService: Calling fileHandler.prepareImageInputs for /tmp/flyer.gif
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should handle convertible image types and include original and converted files in cleanup
[WORKER DEBUG] ProcessingService: fileHandler returned 1 images.
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should handle convertible image types and include original and converted files in cleanup
[WORKER DEBUG] ProcessingService: Calling aiProcessor.extractAndValidateData
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should handle convertible image types and include original and converted files in cleanup
[WORKER DEBUG] ProcessingService: aiProcessor returned data for store: Mock Store
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should handle convertible image types and include original and converted files in cleanup
[WORKER DEBUG] ProcessingService: Generating icon from /tmp/flyer-converted.png to /tmp/icons
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should handle convertible image types and include original and converted files in cleanup
[WORKER DEBUG] ProcessingService: Icon generated: icon-flyer-converted.webp
[DEBUG] FlyerProcessingService resolved baseUrl: "https://example.com" (job.data.baseUrl: "https://example.com", env.FRONTEND_URL: "http://localhost:3000")
[DEBUG] FlyerProcessingService calling transformer with: {
originalFileName: 'flyer.gif',
imageFileName: 'flyer-converted.png',
iconFileName: 'icon-flyer-converted.webp',
checksum: 'checksum-123',
baseUrl: 'https://example.com'
}
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should handle convertible image types and include original and converted files in cleanup
[DEBUG] FlyerProcessingService transformer output URLs: {
imageUrl: 'https://example.com/test.jpg',
iconUrl: 'https://example.com/icon.webp'
}
[DEBUG] Full Flyer Data to be saved: {
"file_name": "test.jpg",
"image_url": "https://example.com/test.jpg",
"icon_url": "https://example.com/icon.webp",
"store_name": "Mock Store",
"status": "processed",
"item_count": 0,
"valid_from": "2024-01-01",
"valid_to": "2024-01-07"
}
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 21/47
src/services/flyerProcessingService.server.test.ts 5/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 790 passed (884)
Start at 07:51:47
Duration 35.05s
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw an error and not enqueue cleanup if the database service fails
[WORKER DEBUG] ProcessingService: Calling fileHandler.prepareImageInputs for /tmp/flyer.jpg
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw an error and not enqueue cleanup if the database service fails
[WORKER DEBUG] ProcessingService: fileHandler returned 1 images.
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw an error and not enqueue cleanup if the database service fails
[WORKER DEBUG] ProcessingService: Calling aiProcessor.extractAndValidateData
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw an error and not enqueue cleanup if the database service fails
[WORKER DEBUG] ProcessingService: aiProcessor returned data for store: Mock Store
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw an error and not enqueue cleanup if the database service fails
[WORKER DEBUG] ProcessingService: Generating icon from /tmp/flyer.jpg to /tmp/icons
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw an error and not enqueue cleanup if the database service fails
[WORKER DEBUG] ProcessingService: Icon generated: icon-flyer.webp
[DEBUG] FlyerProcessingService resolved baseUrl: "https://example.com" (job.data.baseUrl: "https://example.com", env.FRONTEND_URL: "http://localhost:3000")
[DEBUG] FlyerProcessingService calling transformer with: {
originalFileName: 'flyer.jpg',
imageFileName: 'flyer.jpg',
iconFileName: 'icon-flyer.webp',
checksum: 'checksum-123',
baseUrl: 'https://example.com'
}
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw an error and not enqueue cleanup if the database service fails
[DEBUG] FlyerProcessingService transformer output URLs: {
imageUrl: 'https://example.com/test.jpg',
iconUrl: 'https://example.com/icon.webp'
}
[DEBUG] Full Flyer Data to be saved: {
"file_name": "test.jpg",
"image_url": "https://example.com/test.jpg",
"icon_url": "https://example.com/icon.webp",
"store_name": "Mock Store",
"status": "processed",
"item_count": 0,
"valid_from": "2024-01-01",
"valid_to": "2024-01-07"
}
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should throw UnsupportedFileTypeError for an unsupported file type
[WORKER DEBUG] ProcessingService: Calling fileHandler.prepareImageInputs for /tmp/document.txt
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should delegate to _reportErrorAndThrow if icon generation fails
[WORKER DEBUG] ProcessingService: Calling fileHandler.prepareImageInputs for /tmp/flyer.jpg
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should delegate to _reportErrorAndThrow if icon generation fails
[WORKER DEBUG] ProcessingService: fileHandler returned 1 images.
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should delegate to _reportErrorAndThrow if icon generation fails
[WORKER DEBUG] ProcessingService: Calling aiProcessor.extractAndValidateData
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should delegate to _reportErrorAndThrow if icon generation fails
[WORKER DEBUG] ProcessingService: aiProcessor returned data for store: Mock Store
 
stderr | src/services/flyerProcessingService.server.test.ts > FlyerProcessingService > processJob (Orchestrator) > should delegate to _reportErrorAndThrow if icon generation fails
[WORKER DEBUG] ProcessingService: Generating icon from /tmp/flyer.jpg to /tmp/icons
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 24/47
src/services/flyerProcessingService.server.test.ts 11/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 11 passed (242)
Tests 1 failed | 799 passed (884)
Start at 07:51:47
Duration 35.15s
stdout | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /reset-password > should return 500 if updatePassword throws an error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 27/47
src/services/flyerProcessingService.server.test.ts 20/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 12 passed (242)
Tests 1 failed | 811 passed (884)
Start at 07:51:47
Duration 35.25s
stderr | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /reset-password > should return 500 if updatePassword throws an error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Database connection failed
at /app/src/routes/auth.routes.test.ts:520:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 27/47
src/services/flyerProcessingService.server.test.ts 20/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 12 passed (242)
Tests 1 failed | 811 passed (884)
Start at 07:51:47
Duration 35.25s
src/services/flyerProcessingService.server.test.ts (20 tests) 724ms
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 27/47
src/services/flyerProcessingService.server.test.ts 20/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 12 passed (242)
Tests 1 failed | 811 passed (884)
Start at 07:51:47
Duration 35.25s
stdout | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /refresh-token > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 31/47
src/services/flyerProcessingService.server.test.ts 20/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 12 passed (242)
Tests 1 failed | 815 passed (884)
Start at 07:51:47
Duration 35.36s
stderr | src/routes/auth.routes.test.ts > Auth Routes (/api/auth) > POST /refresh-token > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/auth.routes.test.ts:565:62
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 31/47
src/services/flyerProcessingService.server.test.ts 20/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 12 passed (242)
Tests 1 failed | 815 passed (884)
Start at 07:51:47
Duration 35.36s
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 34/47
src/services/flyerProcessingService.server.test.ts 20/20
src/tests/integration/flyer-processing.integration.test.ts 0/7
 
Test Files 1 failed | 12 passed (242)
Tests 1 failed | 818 passed (884)
Start at 07:51:47
Duration 35.61s
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 36/47
src/services/flyerProcessingService.server.test.ts 20/20
src/tests/integration/flyer-processing.integration.test.ts 1/7
 
Test Files 1 failed | 12 passed (242)
Tests 1 failed | 820 passed | 1 skipped (884)
Start at 07:51:47
Duration 35.71s
stderr | src/tests/integration/flyer-processing.integration.test.ts > Flyer Processing Background Job Integration Test
[TEST TEARDOWN] Closing in-process workers...
 
 
src/pages/admin/components/ProfileManager.test.tsx 1/46
src/routes/auth.routes.test.ts 37/47
src/tests/integration/flyer-processing.integration.test.ts 1/7
 
Test Files 1 failed | 12 passed (242)
Tests 1 failed | 821 passed | 1 skipped (884)
Start at 07:51:47
Duration 36.64s
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 3/46
src/routes/auth.routes.test.ts 42/47
src/services/db/admin.db.test.ts [queued]
src/services/expiryService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts [queued]
 
Test Files 1 failed | 12 passed (242)
Tests 1 failed | 828 passed | 7 skipped (884)
Start at 07:51:47
Duration 36.80s
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 3/46
src/routes/auth.routes.test.ts 47/47
src/services/db/admin.db.test.ts [queued]
src/services/expiryService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts [queued]
 
Test Files 1 failed | 12 passed (242)
Tests 1 failed | 833 passed | 7 skipped (884)
Start at 07:51:47
Duration 38.35s
src/routes/auth.routes.test.ts (47 tests) 3327ms
should block requests after exceeding the limit when the opt-in header is sent 397ms
should NOT block requests when the opt-in header is not sent (default test behavior) 354ms
stdout | src/pages/admin/components/ProfileManager.test.tsx > ProfileManager > Authenticated User Features > should handle failure when fetching user address
[TEST DEBUG] Running: should handle failure when fetching user address
[TEST DEBUG] Mocked apiClient.getUserAddress to reject.
[TEST DEBUG] Waiting for assertions. Current logger calls: []
 
stdout | src/pages/admin/components/ProfileManager.test.tsx > ProfileManager > Authenticated User Features > should handle failure when fetching user address
[TEST DEBUG] Waiting for assertions. Current logger calls: [ [ '[useProfileAddress] Fetch returned null for addressId: 123.' ] ]
 
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 12/46
src/routes/auth.routes.test.ts 47/47
src/services/db/admin.db.test.ts [queued]
src/services/expiryService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts [queued]
 
Test Files 1 failed | 13 passed (242)
Tests 1 failed | 842 passed | 7 skipped (884)
Start at 07:51:47
Duration 38.71s
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 13/46
src/routes/auth.routes.test.ts 47/47
src/services/db/admin.db.test.ts [queued]
src/services/expiryService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts [queued]
 
Test Files 1 failed | 13 passed (242)
Tests 1 failed | 843 passed | 7 skipped (884)
Start at 07:51:47
Duration 38.93s
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 15/46
src/routes/auth.routes.test.ts 47/47
src/services/db/admin.db.test.ts [queued]
src/services/expiryService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts [queued]
 
Test Files 1 failed | 13 passed (242)
Tests 1 failed | 845 passed | 7 skipped (884)
Start at 07:51:47
Duration 39.23s
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 16/46
src/services/db/admin.db.test.ts [queued]
src/services/expiryService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts [queued]
 
Test Files 1 failed | 13 passed (242)
Tests 1 failed | 846 passed | 7 skipped (884)
Start at 07:51:47
Duration 40.92s
stdout | src/pages/admin/components/ProfileManager.test.tsx > ProfileManager > Authenticated User Features > should not geocode if address already has coordinates (using fake timers)
[TEST LOG] Waiting for initial address load...
 
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 17/46
src/services/backgroundJobService.test.ts [queued]
src/services/db/admin.db.test.ts [queued]
src/services/expiryService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts [queued]
 
Test Files 1 failed | 13 passed (242)
Tests 1 failed | 847 passed | 7 skipped (884)
Start at 07:51:47
Duration 41.07s
stdout | src/pages/admin/components/ProfileManager.test.tsx > ProfileManager > Authenticated User Features > should not geocode if address already has coordinates (using fake timers)
[TEST LOG] Wait complete. Verifying no geocode call.
 
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 17/46
src/services/backgroundJobService.test.ts [queued]
src/services/db/admin.db.test.ts 0/54
src/services/expiryService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts [queued]
 
Test Files 1 failed | 13 passed (242)
Tests 1 failed | 847 passed | 7 skipped (938)
Start at 07:51:47
Duration 41.27s
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 17/46
src/services/backgroundJobService.test.ts [queued]
src/services/db/admin.db.test.ts 1/54
src/services/expiryService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts [queued]
 
Test Files 1 failed | 13 passed (242)
Tests 1 failed | 848 passed | 7 skipped (938)
Start at 07:51:47
Duration 41.40s
src/services/db/admin.db.test.ts (54 tests) 174ms
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 17/46
src/services/backgroundJobService.test.ts [queued]
src/services/db/admin.db.test.ts 54/54
src/services/expiryService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts [queued]
 
Test Files 1 failed | 14 passed (242)
Tests 1 failed | 901 passed | 7 skipped (938)
Start at 07:51:47
Duration 42.12s
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 18/46
src/services/backgroundJobService.test.ts [queued]
src/services/db/admin.db.test.ts 54/54
src/services/expiryService.server.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 1 failed | 14 passed (242)
Tests 1 failed | 902 passed | 7 skipped (969)
Start at 07:51:47
Duration 42.24s
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 18/46
src/services/backgroundJobService.test.ts [queued]
src/services/db/admin.db.test.ts 54/54
src/services/expiryService.server.test.ts 1/26
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 1 failed | 14 passed (242)
Tests 1 failed | 903 passed | 7 skipped (995)
Start at 07:51:47
Duration 42.61s
src/services/expiryService.server.test.ts (26 tests) 153ms
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 18/46
src/services/backgroundJobService.test.ts [queued]
src/services/db/admin.db.test.ts 54/54
src/services/expiryService.server.test.ts 26/26
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 1 failed | 15 passed (242)
Tests 1 failed | 928 passed | 7 skipped (995)
Start at 07:51:47
Duration 42.82s
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 18/46
src/services/backgroundJobService.test.ts [queued]
src/services/expiryService.server.test.ts 26/26
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 1 failed | 15 passed (242)
Tests 1 failed | 928 passed | 7 skipped (995)
Start at 07:51:47
Duration 43.06s
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 19/46
src/services/backgroundJobService.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 1 failed | 15 passed (242)
Tests 1 failed | 929 passed | 7 skipped (995)
Start at 07:51:47
Duration 44.34s
Sourcemap for "/app/node_modules/node-cron/dist/esm/node-cron.js" points to missing source files
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 20/46
src/services/backgroundJobService.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 1 failed | 15 passed (242)
Tests 1 failed | 930 passed | 7 skipped (995)
Start at 07:51:47
Duration 45.45s
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 21/46
src/services/backgroundJobService.test.ts [queued]
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 1 failed | 15 passed (242)
Tests 1 failed | 931 passed | 7 skipped (995)
Start at 07:51:47
Duration 45.97s
src/tests/integration/flyer-processing.integration.test.ts (7 tests | 7 skipped) 20095ms
should successfully process a flyer for an AUTHENTICATED user via the background queue
should successfully process a flyer for an ANONYMOUS user via the background queue
should strip EXIF data from uploaded JPEG images during processing
should strip metadata from uploaded PNG images during processing
should handle a failure from the AI service gracefully - requires mock injection mechanism
should handle a database failure during flyer creation - requires mock injection mechanism
should NOT clean up temporary files when a job fails - requires mock injection mechanism
 
src/App.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 21/46
src/services/backgroundJobService.test.ts 0/28
src/tests/integration/flyer-processing.integration.test.ts 7/7
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 15 passed (242)
Tests 1 failed | 931 passed | 7 skipped (1023)
Start at 07:51:47
Duration 46.11s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/pages/admin/components/ProfileManager.test.tsx 21/46
src/services/backgroundJobService.test.ts 0/28
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 15 passed (242)
Tests 1 failed | 931 passed | 7 skipped (1023)
Start at 07:51:47
Duration 46.40s
src/services/backgroundJobService.test.ts (28 tests) 449ms
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/pages/admin/components/ProfileManager.test.tsx 22/46
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 960 passed | 7 skipped (1023)
Start at 07:51:47
Duration 47.15s
stdout | src/pages/admin/components/ProfileManager.test.tsx > ProfileManager > Authenticated User Features > should handle toggling dark mode when profile preferences are initially null
[TEST LOG] Clicking preferences tab...
 
stdout | src/pages/admin/components/ProfileManager.test.tsx > ProfileManager > Authenticated User Features > should handle toggling dark mode when profile preferences are initially null
[TEST LOG] Clicking dark mode toggle...
 
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/pages/admin/components/ProfileManager.test.tsx 23/46
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 961 passed | 7 skipped (1023)
Start at 07:51:47
Duration 47.65s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/pages/admin/components/ProfileManager.test.tsx 26/46
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 964 passed | 7 skipped (1023)
Start at 07:51:47
Duration 48.82s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/pages/admin/components/ProfileManager.test.tsx 26/46
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 964 passed | 7 skipped (1023)
Start at 07:51:47
Duration 49.19s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/pages/admin/components/ProfileManager.test.tsx 27/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 965 passed | 7 skipped (1023)
Start at 07:51:47
Duration 49.30s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/pages/admin/components/ProfileManager.test.tsx 28/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 966 passed | 7 skipped (1023)
Start at 07:51:47
Duration 49.54s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/pages/admin/components/ProfileManager.test.tsx 29/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 967 passed | 7 skipped (1023)
Start at 07:51:47
Duration 50.16s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 30/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 968 passed | 7 skipped (1023)
Start at 07:51:47
Duration 50.42s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 31/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 969 passed | 7 skipped (1023)
Start at 07:51:47
Duration 50.80s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 32/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 970 passed | 7 skipped (1023)
Start at 07:51:47
Duration 50.91s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 32/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 970 passed | 7 skipped (1023)
Start at 07:51:47
Duration 51.21s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 33/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 971 passed | 7 skipped (1023)
Start at 07:51:47
Duration 51.46s
 
src/App.test.tsx [queued]
src/config/passport.test.ts [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 34/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 972 passed | 7 skipped (1023)
Start at 07:51:47
Duration 51.74s
 
src/App.test.tsx [queued]
src/config/passport.test.ts 0/28
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 35/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 973 passed | 7 skipped (1051)
Start at 07:51:47
Duration 52.00s
 
src/App.test.tsx [queued]
src/config/passport.test.ts 1/28
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 35/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 16 passed (242)
Tests 1 failed | 974 passed | 7 skipped (1051)
Start at 07:51:47
Duration 52.21s
src/config/passport.test.ts (28 tests) 115ms
stdout | src/pages/admin/components/ProfileManager.test.tsx > ProfileManager > Authenticated User Features > should log warning if address fetch returns null
[TEST DEBUG] Running: should log warning if address fetch returns null
[TEST DEBUG] Mocked apiClient.getUserAddress to resolve with a null body.
[TEST DEBUG] Waiting for assertions. Current logger calls: []
 
stdout | src/pages/admin/components/ProfileManager.test.tsx > ProfileManager > Authenticated User Features > should log warning if address fetch returns null
[TEST DEBUG] Waiting for assertions. Current logger calls: [ [ '[useProfileAddress] Fetch returned null for addressId: 123.' ] ]
 
 
src/App.test.tsx [queued]
src/config/passport.test.ts 28/28
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 36/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 0/31
 
Test Files 2 failed | 17 passed (242)
Tests 1 failed | 1002 passed | 7 skipped (1051)
Start at 07:51:47
Duration 52.56s
src/tests/integration/inventory.integration.test.ts (31 tests | 31 skipped) 10023ms
should add a new inventory item
should add item without expiry date
should add item with notes and purchase_date
should reject invalid location
should reject missing item_name
should reject unauthenticated requests
should return all inventory items
should filter by location
should support pagination
should compute expiry_status correctly for items
should only return items for the authenticated user
should return item details
should return 404 for non-existent item
should not allow accessing another user's item
should update item quantity
should update item location
should update expiry_date
should reject empty update body
should delete an inventory item
should mark item as consumed
should verify item is marked as consumed
should return 404 for already consumed or non-existent item
should return items expiring within default days
should respect days parameter
should return expired items
should return alert settings
should update alert settings for email method
should reject invalid days_before_expiry
should reject invalid alert method
should return recipe suggestions for expiring items
should handle full add-track-consume workflow
 
src/App.test.tsx [queued]
src/config/passport.test.ts 28/28
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 39/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 31/31
 
Test Files 3 failed | 17 passed (242)
Tests 1 failed | 1005 passed | 38 skipped (1051)
Start at 07:51:47
Duration 52.69s
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 40/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts [queued]
src/tests/integration/inventory.integration.test.ts 31/31
 
Test Files 3 failed | 17 passed (242)
Tests 1 failed | 1006 passed | 38 skipped (1051)
Start at 07:51:47
Duration 53.27s
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 42/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts 1/38
 
Test Files 3 failed | 17 passed (242)
Tests 1 failed | 1009 passed | 38 skipped (1089)
Start at 07:51:47
Duration 53.58s
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 43/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts 8/38
 
Test Files 3 failed | 17 passed (242)
Tests 1 failed | 1017 passed | 38 skipped (1089)
Start at 07:51:47
Duration 53.71s
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 43/46
src/routes/health.routes.test.ts [queued]
src/routes/receipt.routes.test.ts 12/38
 
Test Files 3 failed | 17 passed (242)
Tests 1 failed | 1021 passed | 38 skipped (1089)
Start at 07:51:47
Duration 54.54s
src/routes/receipt.routes.test.ts (38 tests) 957ms
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 44/46
src/routes/health.routes.test.ts 0/32
src/routes/receipt.routes.test.ts 38/38
 
Test Files 3 failed | 18 passed (242)
Tests 1 failed | 1048 passed | 38 skipped (1121)
Start at 07:51:47
Duration 54.98s
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 45/46
src/routes/health.routes.test.ts 0/32
src/routes/receipt.routes.test.ts 38/38
 
Test Files 3 failed | 18 passed (242)
Tests 1 failed | 1049 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.49s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /redis > should return 500 if Redis ping fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /redis > should return 500 if Redis ping fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Connection timed out
at /app/src/routes/health.routes.test.ts:88:26
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /redis > should return 500 if Redis ping returns an unexpected response
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /redis > should return 500 if Redis ping returns an unexpected response
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Unexpected Redis ping response: OK
at /app/src/routes/health.routes.ts:432:13
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /db-schema > should return 500 if tables are missing
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /db-schema > should return 500 if tables are missing
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Database schema check failed. Missing tables: missing_table_1, missing_table_2.
at /app/src/routes/health.routes.ts:333:9
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /db-schema > should return 500 if the database check fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /db-schema > should return 500 if the database check fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB connection failed
at /app/src/routes/health.routes.test.ts:159:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /db-schema > should return 500 if the database check fails
[DEBUG] health.routes.test.ts: Verifying logger.error for DB schema check failure
 
src/pages/admin/components/ProfileManager.test.tsx (46 tests) 22832ms
should render the Sign In form when authStatus is SIGNED_OUT 1933ms
should switch to the Create an Account form and register successfully 1601ms
should switch to the Reset Password form and request a reset 579ms
should render profile tabs when authStatus is AUTHENTICATED 329ms
should handle unexpected Promise.allSettled rejection during save 432ms
should show error if geocoding is attempted with no address string 350ms
should automatically geocode address after user stops typing (using fake timers) 1629ms
should show an error when trying to link an account 827ms
should show an error when trying to link a GitHub account 1198ms
should switch between all tabs correctly 1959ms
should show an error if password is too short 585ms
should show an error if account deletion fails 1192ms
should handle toggling dark mode when profile preferences are initially null 801ms
should allow updating the user profile and address 376ms
should show an error if updating the address fails but profile succeeds 413ms
should allow updating the password 335ms
should show an error if passwords do not match 371ms
should trigger data export 428ms
should handle account deletion flow 515ms
should allow toggling dark mode 314ms
should allow changing unit system when preferences are initially null 494ms
should not call onProfileUpdate if updating unit system fails 314ms
should only call updateAddress when only address data has changed 331ms
should handle updating the user profile and address with empty strings 587ms
should show error notification when manual geocoding fails 388ms
should handle permission denied error during geocoding 513ms
should not trigger OAuth link if user profile is missing 968ms
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /db-schema > should return 500 if the database check fails with a non-Error object
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /db-schema > should return 500 if the database check fails with a non-Error object
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB connection failed
at /app/src/routes/health.routes.ts:344:17
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /storage > should return 500 if storage is not accessible or writable
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /storage > should return 500 if storage is not accessible or writable
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Storage check failed. Ensure the directory '/var/www/flyer-crawler.projectium.com/flyer-images' exists and is writable by the application.
at /app/src/routes/health.routes.ts:362:7
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /storage > should return 500 if storage check fails with a non-Error object
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /storage > should return 500 if storage check fails with a non-Error object
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Storage check failed. Ensure the directory '/var/www/flyer-crawler.projectium.com/flyer-images' exists and is writable by the application.
at /app/src/routes/health.routes.ts:362:7
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 8/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1058 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.61s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > should return 500 if getPoolStatus throws an error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 13/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1063 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.76s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > should return 500 if getPoolStatus throws an error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Pool is not initialized
at /app/src/routes/health.routes.test.ts:293:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 13/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1063 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.76s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > should return 500 if getPoolStatus throws a non-Error object
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 13/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1063 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.76s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > should return 500 if getPoolStatus throws a non-Error object
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Pool is not initialized
at /app/src/routes/health.routes.ts:401:19
at Layer.handleRequest (/app/node_modules/router/lib/layer.js:152:17)
at next (/app/node_modules/router/lib/route.js:157:13)
at /app/src/middleware/validation.middleware.ts:43:14
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 13/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1063 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.76s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /redis > should return 500 if Redis ping fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 13/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1063 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.76s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /redis > should return 500 if Redis ping fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Connection timed out
at /app/src/routes/health.routes.test.ts:334:26
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 13/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1063 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.76s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /redis > should return 500 if Redis ping fails
[DEBUG] health.routes.test.ts: Checking if logger.error was called with the correct pattern
 
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /redis > should return 500 if Redis ping returns an unexpected response
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 13/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1063 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.76s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /redis > should return 500 if Redis ping returns an unexpected response
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Unexpected Redis ping response: OK
at /app/src/routes/health.routes.ts:432:13
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 13/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1063 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.76s
stdout | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /redis > should return 500 if Redis ping fails with a non-Error object
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 13/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1063 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.76s
stderr | src/routes/health.routes.test.ts > Health Routes (/api/health) > GET /redis > should return 500 if Redis ping fails with a non-Error object
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Non-error rejection
at /app/src/routes/health.routes.ts:440:19
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/App.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
src/pages/admin/components/ProfileManager.test.tsx 46/46
src/routes/health.routes.test.ts 13/32
 
Test Files 3 failed | 19 passed (242)
Tests 1 failed | 1063 passed | 38 skipped (1121)
Start at 07:51:47
Duration 55.76s
src/routes/health.routes.test.ts (32 tests) 793ms
 
src/App.test.tsx [queued]
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1082 passed | 38 skipped (1121)
Start at 07:51:47
Duration 56.46s
 
src/App.test.tsx [queued]
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 0/15
src/routes/admin.content.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1082 passed | 38 skipped (1136)
Start at 07:51:47
Duration 56.60s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should render the initial state correctly
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > should render the initial state correctly"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should render the initial state correctly
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should render the initial state correctly
--- [TEST LOG] ---: Finished test: "FlyerUploader > should render the initial state correctly"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > should handle file upload and start polling"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 1. Setting up mocks for upload and polling.
--- [TEST LOG] ---: 2. Rendering component and preparing file.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
--- [TEST LOG] ---: 3. Firing file change event.
--- [TEST LOG] ---: 4. File change event fired. Now AWAITING UI update.
--- [TEST LOG] ---: 5a. Awaiting screen.findByText("Checking...")
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
[LOGGER.INFO] FlyerUploader Status: Checking...
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 5b. SUCCESS: UI updated to polling state.
--- [TEST LOG] ---: 6. Asserting mock calls after UI update.
--- [TEST LOG] ---: 7. Mocks verified. Advancing timers now...
--- [TEST LOG] ---: 9. Act block finished. Now checking if getJobStatus was called again.
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
 
src/App.test.tsx [queued]
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 1/15
src/routes/admin.content.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1083 passed | 38 skipped (1136)
Start at 07:51:47
Duration 58.23s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
 
src/App.test.tsx [queued]
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 1/15
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts [queued]
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1083 passed | 38 skipped (1136)
Start at 07:51:47
Duration 58.36s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
 
src/App.test.tsx [queued]
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 1/15
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts [queued]
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1083 passed | 38 skipped (1136)
Start at 07:51:47
Duration 59.17s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 10. waitFor check: getJobStatus calls = 2
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: 11. SUCCESS: Second poll confirmed.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload and start polling
--- [TEST LOG] ---: Finished test: "FlyerUploader > should handle file upload and start polling"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload via drag and drop
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > should handle file upload via drag and drop"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload via drag and drop
--- [TEST LOG] ---: 1. Setting up mocks for drag and drop.
--- [TEST LOG] ---: 2. Rendering component and preparing file for drop.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
--- [TEST LOG] ---: 3. Firing drop event.
--- [TEST LOG] ---: 4. Awaiting UI update to "Dropped...".
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload via drag and drop
[LOGGER.INFO] FlyerUploader Status: Dropped...
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload via drag and drop
--- [TEST LOG] ---: 5. Asserting upload was called.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle file upload via drag and drop
--- [TEST LOG] ---: Finished test: "FlyerUploader > should handle file upload via drag and drop"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > should poll for status, complete successfully, and redirect"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 1. Setting up mock sequence for polling.
--- [TEST LOG] ---: 2. Rendering component and uploading file.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
--- [TEST LOG] ---: 3. Fired event. Now AWAITING UI update to "Analyzing...".
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
[LOGGER.INFO] FlyerUploader Status: Analyzing...
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 4. SUCCESS: UI is showing "Analyzing...".
--- [TEST LOG] ---: 5. First poll confirmed. Now AWAITING timer advancement.
--- [TEST LOG] ---: 8a. waitFor check: Waiting for completion text and job status count.
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
 
src/App.test.tsx [queued]
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 2/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts [queued]
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1084 passed | 38 skipped (1136)
Start at 07:51:47
Duration 60.10s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
 
src/App.test.tsx [queued]
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts [queued]
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1085 passed | 38 skipped (1136)
Start at 07:51:47
Duration 61.55s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
 
src/App.test.tsx 0/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts [queued]
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1085 passed | 38 skipped (1162)
Start at 07:51:47
Duration 61.83s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/App.test.tsx > App Component > should render the main layout and header
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
 
src/App.test.tsx 0/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts 0/15
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1085 passed | 38 skipped (1177)
Start at 07:51:47
Duration 62.05s
stdout | src/App.test.tsx > App Component > should render the footer
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
 
src/App.test.tsx 0/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts 1/15
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1086 passed | 38 skipped (1177)
Start at 07:51:47
Duration 62.31s
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > should call AI service and return validated data on success
[WORKER DEBUG] FlyerAiProcessor[itaaks]: extractAndValidateData called with 1 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > should call AI service and return validated data on success
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "AI Store",
"valid_from": "2024-01-01",
"valid_to": "2024-01-07",
"store_address": "123 AI St",
"items": [
{
"item": "Test Item",
"price_display": "$1.99",
"price_in_cents": 199,
"quantity": "each",
"category_name": "Grocery"
}
]
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > should throw an error if getAllMasterItems fails
[WORKER DEBUG] FlyerAiProcessor[wzq44]: extractAndValidateData called with 1 images, extractFn=null
 
 
src/App.test.tsx 0/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts 1/15
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1086 passed | 38 skipped (1177)
Start at 07:51:47
Duration 62.31s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
 
src/App.test.tsx 0/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts 1/15
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1086 passed | 38 skipped (1177)
Start at 07:51:47
Duration 62.31s
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should pass validation and not flag for review with good quality data
[WORKER DEBUG] FlyerAiProcessor[ain34]: extractAndValidateData called with 1 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should pass validation and not flag for review with good quality data
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "Good Store",
"valid_from": "2024-01-01",
"valid_to": "2024-01-07",
"store_address": "123 Good St",
"items": [
{
"item": "Priced Item 1",
"price_in_cents": 199,
"price_display": "$1.99",
"quantity": "1",
"category_name": "A"
},
{
"item": "Priced Item 2",
"price_in_cents": 299,
"price_display": "$2.99",
"quantity": "1",
"category_name": "B"
}
]
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should throw AiDataValidationError if AI response has incorrect data structure
[WORKER DEBUG] FlyerAiProcessor[k77mvq]: extractAndValidateData called with 1 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should throw AiDataValidationError if AI response has incorrect data structure
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "Invalid Store",
"valid_from": null,
"valid_to": null,
"store_address": null,
"items": [
"n",
"o",
"t",
"-",
"a",
"n",
"-",
"a",
"r",
"r",
"a",
"y"
]
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should flag for review if store_name is missing
[WORKER DEBUG] FlyerAiProcessor[7qe8nn]: extractAndValidateData called with 1 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should flag for review if store_name is missing
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": null,
"valid_from": "2024-01-01",
"valid_to": "2024-01-07",
"store_address": null,
"items": [
{
"item": "Test Item",
"price_display": "$1.99",
"price_in_cents": 199,
"quantity": "each",
"category_name": "Grocery"
}
]
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should flag for review if items array is empty
[WORKER DEBUG] FlyerAiProcessor[05z3b]: extractAndValidateData called with 1 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should flag for review if items array is empty
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "Test Store",
"valid_from": "2024-01-01",
"valid_to": "2024-01-07",
"store_address": null,
"items": []
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should flag for review if item price quality is low
[WORKER DEBUG] FlyerAiProcessor[6914zi]: extractAndValidateData called with 1 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should flag for review if item price quality is low
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "Test Store",
"valid_from": "2024-01-01",
"valid_to": "2024-01-07",
"store_address": "123 Test St",
"items": [
{
"item": "Priced Item",
"price_in_cents": 199,
"price_display": "$1.99",
"quantity": "1",
"category_name": "A"
},
{
"item": "Unpriced Item 1",
"price_in_cents": null,
"price_display": "See store",
"quantity": "1",
"category_name": "B"
},
{
"item": "Unpriced Item 2",
"price_in_cents": null,
"price_display": "FREE",
"quantity": "1",
"category_name": "C"
}
]
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should use a custom price quality threshold from an environment variable
[WORKER DEBUG] FlyerAiProcessor[aik80k]: extractAndValidateData called with 1 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should use a custom price quality threshold from an environment variable
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "Test Store",
"valid_from": "2024-01-01",
"valid_to": "2024-01-07",
"store_address": "123 Test St",
"items": [
{
"item": "Priced Item 1",
"price_in_cents": 199,
"price_display": "$1.99",
"quantity": "1",
"category_name": "A"
},
{
"item": "Priced Item 2",
"price_in_cents": 299,
"price_display": "$2.99",
"quantity": "1",
"category_name": "B"
},
{
"item": "Priced Item 3",
"price_in_cents": 399,
"price_display": "$3.99",
"quantity": "1",
"category_name": "C"
},
{
"item": "Unpriced Item 1",
"price_in_cents": null,
"price_display": "See store",
"quantity": "1",
"category_name": "D"
}
]
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should flag for review if validity dates are missing
[WORKER DEBUG] FlyerAiProcessor[9pvovw]: extractAndValidateData called with 1 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should flag for review if validity dates are missing
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "Test Store",
"valid_from": null,
"valid_to": null,
"store_address": "123 Test St",
"items": [
{
"item": "Test Item",
"price_in_cents": 199,
"price_display": "$1.99",
"quantity": "1",
"category_name": "A"
}
]
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should combine multiple quality issues in the log
[WORKER DEBUG] FlyerAiProcessor[vvow6w]: extractAndValidateData called with 1 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Validation and Quality Checks > should combine multiple quality issues in the log
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": null,
"valid_from": null,
"valid_to": null,
"store_address": null,
"items": []
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > should pass the userProfileAddress from jobData to the AI service
[WORKER DEBUG] FlyerAiProcessor[qg4lr]: extractAndValidateData called with 1 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > should pass the userProfileAddress from jobData to the AI service
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "Test Store",
"valid_from": "2024-01-01",
"valid_to": "2024-01-07",
"store_address": "123 Test St",
"items": [
{
"item": "Test Item",
"price_in_cents": 199,
"price_display": "$1.99",
"quantity": "1",
"category_name": "A"
}
]
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Batching Logic > should process images in batches and merge the results correctly
[WORKER DEBUG] FlyerAiProcessor[8m4yo]: extractAndValidateData called with 5 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Batching Logic > should process images in batches and merge the results correctly
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "Batch 1 Store",
"valid_from": "2025-01-01",
"valid_to": "2025-01-07",
"store_address": "123 Batch St",
"items": [
{
"item": "Item A",
"price_display": "$1",
"price_in_cents": 100,
"quantity": "1",
"category_name": "Cat A",
"master_item_id": 1
},
{
"item": "Item B",
"price_display": "$2",
"price_in_cents": 200,
"quantity": "1",
"category_name": "Cat B",
"master_item_id": 2
},
{
"item": "Item C",
"price_display": "$3",
"price_in_cents": 300,
"quantity": "1",
"category_name": "Cat C",
"master_item_id": 3
}
]
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Batching Logic > should handle an empty object response from a batch without crashing
[WORKER DEBUG] FlyerAiProcessor[m9excw]: extractAndValidateData called with 5 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Batching Logic > should handle an empty object response from a batch without crashing
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "Good Store",
"valid_from": "2025-01-01",
"valid_to": "2025-01-07",
"store_address": "123 Good St",
"items": [
{
"item": "Item A",
"price_display": "$1",
"price_in_cents": 100,
"quantity": "1",
"category_name": "Cat A",
"master_item_id": 1
}
]
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Batching Logic > should fill in missing metadata from subsequent batches
[WORKER DEBUG] FlyerAiProcessor[nge3r]: extractAndValidateData called with 5 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > Batching Logic > should fill in missing metadata from subsequent batches
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "Batch 2 Store",
"valid_from": "2025-01-01",
"valid_to": "2025-01-07",
"store_address": "456 Subsequent St",
"items": [
{
"item": "Item A",
"price_display": "$1",
"price_in_cents": 100,
"quantity": "1",
"category_name": "Cat A",
"master_item_id": 1
},
{
"item": "Item C",
"price_display": "$3",
"price_in_cents": 300,
"quantity": "1",
"category_name": "Cat C",
"master_item_id": 3
}
]
}
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > should handle a single batch correctly when image count is less than BATCH_SIZE
[WORKER DEBUG] FlyerAiProcessor[xp57uo]: extractAndValidateData called with 2 images, extractFn=null
 
stderr | src/services/flyerAiProcessor.server.test.ts > FlyerAiProcessor > should handle a single batch correctly when image count is less than BATCH_SIZE
[WORKER DEBUG] FlyerAiProcessor: Merged AI Data: {
"store_name": "Single Batch Store",
"valid_from": "2025-02-01",
"valid_to": "2025-02-07",
"store_address": "789 Single St",
"items": [
{
"item": "Item X",
"price_display": "$10",
"price_in_cents": 1000,
"quantity": "1",
"category_name": "Cat X",
"master_item_id": 10
}
]
}
 
 
src/App.test.tsx 0/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts 1/15
src/tests/integration/receipt.integration.test.ts [queued]
 
Test Files 3 failed | 20 passed (242)
Tests 1 failed | 1086 passed | 38 skipped (1177)
Start at 07:51:47
Duration 62.31s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/App.test.tsx > App Component > should render the BulkImporter for an admin user
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > should render the BulkImporter for an admin user
[TEST DEBUG] Test Start: should render the BulkImporter for an admin user
[TEST DEBUG] Rendering App with /admin route
[TEST DEBUG] Waiting for admin-page-mock
 
stdout | src/App.test.tsx > App Component > should show a welcome message when no flyer is selected
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > should render the admin page on the /admin route
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > should render the admin page on the /admin route
[TEST DEBUG] Rendering App with /admin route
[TEST DEBUG] Waiting for admin-page-mock
 
stdout | src/App.test.tsx > App Component > should render the reset password page on the correct route
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > Flyer Selection from URL > should select a flyer when flyerId is present in the URL
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
src/services/flyerAiProcessor.server.test.ts (15 tests) 113ms
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/App.test.tsx > App Component > Flyer Selection from URL > should not select a flyer if the flyerId from the URL does not exist
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/App.test.tsx > App Component > Flyer Selection from URL > should select the first flyer if no flyer is selected and flyers are available
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/App.test.tsx > App Component > Modal Interactions > should open and close the ProfileManager modal
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
 
src/App.test.tsx 7/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts 15/15
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 21 passed (242)
Tests 1 failed | 1107 passed | 38 skipped (1200)
Start at 07:51:47
Duration 62.42s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/App.test.tsx > App Component > Modal Interactions > should open and close the ProfileManager modal
[TEST DEBUG] Test Start: should open and close the ProfileManager modal
 
 
src/App.test.tsx 8/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/services/flyerAiProcessor.server.test.ts 15/15
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 21 passed (242)
Tests 1 failed | 1108 passed | 38 skipped (1200)
Start at 07:51:47
Duration 62.81s
stdout | src/App.test.tsx > App Component > Modal Interactions > should open and close the ProfileManager modal
[TEST DEBUG] ProfileManager modal opened. Now closing...
 
stdout | src/App.test.tsx > App Component > Modal Interactions > should open and close the ProfileManager modal
[TEST DEBUG] ProfileManager modal closed.
 
stdout | src/App.test.tsx > App Component > Modal Interactions > should open and close the VoiceAssistant modal for authenticated users
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > Modal Interactions > should open and close the VoiceAssistant modal for authenticated users
[TEST DEBUG] Test Start: should open and close the VoiceAssistant modal
[TEST DEBUG] Rendering App
[TEST DEBUG] Clicking Open Voice Assistant
[TEST DEBUG] Waiting for voice-assistant-mock
 
stdout | src/App.test.tsx > App Component > Modal Interactions > should not render the FlyerCorrectionTool if no flyer is selected
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > Modal Interactions > should open and close the FlyerCorrectionTool modal
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > Modal Interactions > should render admin sub-routes correctly
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > Modal Interactions > should render admin sub-routes correctly
[TEST DEBUG] Test Start: should render admin sub-routes correctly
Testing admin sub-routes with renderApp wrapper to ensure ModalProvider context
[TEST DEBUG] Rendering App with /admin/corrections
[TEST DEBUG] Waiting for corrections-page-mock
 
stdout | src/App.test.tsx > App Component > Flyer Correction Tool Data Handling > should handle store name extraction from the correction tool
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=1
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 8b. waitFor interval: calls=2
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 9. SUCCESS: Completion message found.
 
stdout | src/App.test.tsx > App Component > Flyer Correction Tool Data Handling > should handle date extraction from the correction tool
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > Profile and Login Handlers > should call updateProfile when handleProfileUpdate is triggered
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > Profile and Login Handlers > should call updateProfile when handleProfileUpdate is triggered
[TEST DEBUG] Test Start: should call updateProfile when handleProfileUpdate is triggered
[TEST DEBUG] Rendering App
[TEST DEBUG] Opening Profile
 
stdout | src/App.test.tsx > App Component > Profile and Login Handlers > should call updateProfile when handleProfileUpdate is triggered
[TEST DEBUG] Clicking Update Profile
[TEST DEBUG] Checking mockUpdateProfile calls: [ [ { full_name: 'Updated' } ] ]
 
stdout | src/App.test.tsx > App Component > Profile and Login Handlers > should set an error state if login fails inside handleLoginSuccess
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
 
src/App.test.tsx 13/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 21 passed (242)
Tests 1 failed | 1113 passed | 38 skipped (1200)
Start at 07:51:47
Duration 63.42s
 
src/App.test.tsx 16/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 21 passed (242)
Tests 1 failed | 1116 passed | 38 skipped (1200)
Start at 07:51:47
Duration 63.71s
stdout | src/App.test.tsx > App Component > Profile and Login Handlers > should set an error state if login fails inside handleLoginSuccess
[TEST DEBUG] Test Start: should set an error state if login fails inside handleLoginSuccess
[TEST DEBUG] Rendering App
[TEST DEBUG] Opening Profile
 
stdout | src/App.test.tsx > App Component > Profile and Login Handlers > should set an error state if login fails inside handleLoginSuccess
[TEST DEBUG] Clicking Login
[TEST DEBUG] Checking mockLogin calls: [ [ 'token', {} ] ]
 
stdout | src/App.test.tsx > App Component > Version Display and What's New > should display the version number and commit link
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > Version Display and What's New > should open the "What's New" modal when the question mark icon is clicked
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > handleDataExtractedFromCorrection edge cases > should handle the early return when selectedFlyer is null
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > handleDataExtractedFromCorrection edge cases > should update store name in selectedFlyer when extracting store_name
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > handleDataExtractedFromCorrection edge cases > should handle dates extraction type
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
 
src/App.test.tsx 21/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 21 passed (242)
Tests 1 failed | 1121 passed | 38 skipped (1200)
Start at 07:51:47
Duration 64.15s
stdout | src/App.test.tsx > App Component > Debug logging in test environment > should trigger debug logging when NODE_ENV is test
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > handleFlyerSelect callback > should update selectedFlyer when handleFlyerSelect is called
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
stdout | src/App.test.tsx > App Component > URL-based flyer selection edge cases > should not re-select the same flyer if already selected
[TEST DEBUG] beforeEach: Clearing mocks and setting up defaults
[TEST DEBUG] beforeEach: Setup complete
 
 
src/App.test.tsx 25/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 21 passed (242)
Tests 1 failed | 1125 passed | 38 skipped (1200)
Start at 07:51:47
Duration 64.25s
src/App.test.tsx (26 tests) 2431ms
should set an error state if login fails inside handleLoginSuccess 862ms
 
src/App.test.tsx 26/26
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1126 passed | 38 skipped (1200)
Start at 07:51:47
Duration 65.08s
 
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 3/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1126 passed | 38 skipped (1200)
Start at 07:51:47
Duration 65.19s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: 11. Timers advanced. Now asserting navigation.
--- [TEST LOG] ---: 12. Callback and navigation confirmed.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should poll for status, complete successfully, and redirect
--- [TEST LOG] ---: Finished test: "FlyerUploader > should poll for status, complete successfully, and redirect"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle a failed job
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > should handle a failed job"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle a failed job
--- [TEST LOG] ---: 1. Setting up mocks for a failed job.
--- [TEST LOG] ---: 2. Rendering and uploading.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
--- [TEST LOG] ---: 3. Firing file change event.
--- [TEST LOG] ---: 3. File upload triggered.
--- [TEST LOG] ---: 4. AWAITING failure message...
 
 
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 4/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1127 passed | 38 skipped (1200)
Start at 07:51:47
Duration 65.33s
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle a failed job
[LOGGER.WARN] [useFlyerUploader] Polling stopped due to query error state.
 
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle a failed job
[LOGGER.WARN] [useFlyerUploader] Polling stopped due to query error state.
[LOGGER.ERROR] [FlyerUploader] Error encountered: Polling failed: AI model exploded { duplicateFlyerId: null }
 
 
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 4/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1127 passed | 38 skipped (1200)
Start at 07:51:47
Duration 65.33s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle a failed job
--- [TEST LOG] ---: 5. SUCCESS: Failure message found.
--- [TEST LOG] ---: 6. "Upload Another" button confirmed.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle a failed job
--- [TEST LOG] ---: Finished test: "FlyerUploader > should handle a failed job"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should clear the polling timeout when a job fails
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > should clear the polling timeout when a job fails"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should clear the polling timeout when a job fails
--- [TEST LOG] ---: 1. Setting up mocks for failed job timeout clearance.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should clear the polling timeout when a job fails
[LOGGER.INFO] FlyerUploader Status: Working...
 
 
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 4/15
src/pages/admin/components/SystemCheck.test.tsx [queued]
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1127 passed | 38 skipped (1200)
Start at 07:51:47
Duration 65.33s
 
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 5/15
src/pages/admin/components/SystemCheck.test.tsx 0/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1128 passed | 38 skipped (1232)
Start at 07:51:47
Duration 65.87s
 
src/features/flyer/ExtractedDataTable.test.tsx [queued]
src/features/flyer/FlyerUploader.test.tsx 5/15
src/pages/admin/components/SystemCheck.test.tsx 0/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1128 passed | 38 skipped (1232)
Start at 07:51:47
Duration 66.04s
 
src/features/flyer/ExtractedDataTable.test.tsx 0/22
src/features/flyer/FlyerUploader.test.tsx 5/15
src/pages/admin/components/SystemCheck.test.tsx 0/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1128 passed | 38 skipped (1254)
Start at 07:51:47
Duration 67.70s
 
src/features/flyer/ExtractedDataTable.test.tsx 4/22
src/features/flyer/FlyerUploader.test.tsx 5/15
src/pages/admin/components/SystemCheck.test.tsx 1/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1133 passed | 38 skipped (1254)
Start at 07:51:47
Duration 68.53s
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should clear the polling timeout when a job fails
[LOGGER.WARN] [useFlyerUploader] Polling stopped due to query error state.
 
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should clear the polling timeout when a job fails
[LOGGER.WARN] [useFlyerUploader] Polling stopped due to query error state.
[LOGGER.ERROR] [FlyerUploader] Error encountered: Polling failed: Fatal Error { duplicateFlyerId: null }
 
 
src/features/flyer/ExtractedDataTable.test.tsx 10/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 5/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1144 passed | 38 skipped (1254)
Start at 07:51:47
Duration 68.63s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should clear the polling timeout when a job fails
--- [TEST LOG] ---: Finished test: "FlyerUploader > should clear the polling timeout when a job fails"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should stop polling for job status when the component unmounts
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > should stop polling for job status when the component unmounts"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should stop polling for job status when the component unmounts
--- [TEST LOG] ---: 1. Setting up mocks for unmount polling stop.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should stop polling for job status when the component unmounts
[LOGGER.INFO] FlyerUploader Status: Polling...
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should stop polling for job status when the component unmounts
--- [TEST LOG] ---: 2. First poll confirmed.
--- [TEST LOG] ---: 3. Unmounting component.
--- [TEST LOG] ---: 4. Waiting for 4 seconds to check for further polling.
 
 
src/features/flyer/ExtractedDataTable.test.tsx 10/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 5/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1144 passed | 38 skipped (1254)
Start at 07:51:47
Duration 68.63s
 
src/features/flyer/ExtractedDataTable.test.tsx 10/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 6/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1145 passed | 38 skipped (1254)
Start at 07:51:47
Duration 69.07s
 
src/features/flyer/ExtractedDataTable.test.tsx 10/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 7/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts [queued]
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1146 passed | 38 skipped (1254)
Start at 07:51:47
Duration 69.24s
 
src/features/flyer/ExtractedDataTable.test.tsx 11/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 7/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 0/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1147 passed | 38 skipped (1295)
Start at 07:51:47
Duration 69.50s
stdout | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > GET / > should return 500 if service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/ExtractedDataTable.test.tsx 12/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 8/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 1/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1150 passed | 38 skipped (1295)
Start at 07:51:47
Duration 69.68s
stderr | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > GET / > should return 500 if service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/inventory.routes.test.ts:184:63
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/ExtractedDataTable.test.tsx 12/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 8/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 1/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1150 passed | 38 skipped (1295)
Start at 07:51:47
Duration 69.68s
stdout | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > POST / > should return 500 if service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/ExtractedDataTable.test.tsx 14/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 13/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1166 passed | 38 skipped (1295)
Start at 07:51:47
Duration 69.88s
stderr | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > POST / > should return 500 if service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/inventory.routes.test.ts:248:67
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/ExtractedDataTable.test.tsx 14/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 13/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1166 passed | 38 skipped (1295)
Start at 07:51:47
Duration 69.88s
stdout | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > GET /expiring/summary > should return 500 if service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/ExtractedDataTable.test.tsx 14/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 14/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1167 passed | 38 skipped (1295)
Start at 07:51:47
Duration 70.03s
stderr | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > GET /expiring/summary > should return 500 if service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/inventory.routes.test.ts:421:74
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/ExtractedDataTable.test.tsx 14/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 14/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1167 passed | 38 skipped (1295)
Start at 07:51:47
Duration 70.03s
stdout | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > GET /expired > should return 500 if service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/ExtractedDataTable.test.tsx 15/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 29/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1183 passed | 38 skipped (1295)
Start at 07:51:47
Duration 70.13s
stderr | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > GET /expired > should return 500 if service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/inventory.routes.test.ts:483:66
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/ExtractedDataTable.test.tsx 15/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 29/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1183 passed | 38 skipped (1295)
Start at 07:51:47
Duration 70.13s
stdout | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > GET /alerts > should return 500 if service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/ExtractedDataTable.test.tsx 15/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 29/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1183 passed | 38 skipped (1295)
Start at 07:51:47
Duration 70.13s
stderr | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > GET /alerts > should return 500 if service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/inventory.routes.test.ts:520:67
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/ExtractedDataTable.test.tsx 15/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 29/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1183 passed | 38 skipped (1295)
Start at 07:51:47
Duration 70.13s
stdout | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > PUT /alerts/:alertMethod > should return 500 if service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/ExtractedDataTable.test.tsx 15/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 29/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1183 passed | 38 skipped (1295)
Start at 07:51:47
Duration 70.13s
stderr | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > PUT /alerts/:alertMethod > should return 500 if service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/inventory.routes.test.ts:583:70
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/ExtractedDataTable.test.tsx 15/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 29/41
src/services/aiApiClient.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 22 passed (242)
Tests 1 failed | 1183 passed | 38 skipped (1295)
Start at 07:51:47
Duration 70.13s
stdout | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > GET /recipes/suggestions > should return 500 if service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 0/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1196 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.23s
stderr | src/routes/inventory.routes.test.ts > Inventory Routes (/api/inventory) > GET /recipes/suggestions > should return 500 if service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/inventory.routes.test.ts:657:9
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 0/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1196 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.23s
src/routes/inventory.routes.test.ts (41 tests) 691ms
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 0/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1196 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.23s
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > uploadAndProcessFlyer > should construct FormData with file and checksum and send a POST request
 
--- [TEST START] uploadAndProcessFlyer ---
[TEST ARRANGE] Created mock file: { name: 'flyer.pdf', size: 18, type: 'application/pdf' }
[apiFetch MOCK] FormData detected. Searching for file to preserve its name.
[apiFetch MOCK] Found file: 'flyer.pdf'. Setting 'X-Test-Filename' header.
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/upload-and-process.
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stderr | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > uploadAndProcessFlyer > should construct FormData with file and checksum and send a POST request
[aiApiClient] uploadAndProcessFlyer: Uploading file 'flyer.pdf' with checksum 'checksum-abc-123'
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > uploadAndProcessFlyer > should construct FormData with file and checksum and send a POST request
 
--- [MSW HANDLER] Intercepted POST to 'upload-and-process' ---
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > uploadAndProcessFlyer > should construct FormData with file and checksum and send a POST request
[MSW HANDLER] Reading 'X-Test-Filename' header. Value: 'flyer.pdf'
[MSW HANDLER DEBUG] Found file-like object for key 'flyerFile'. Original name: 'blob'. Using preserved name: 'flyer.pdf'
[MSW HANDLER] Finished processing FormData. Final object for spy: {
flyerFile: { name: 'flyer.pdf', size: 18, type: 'application/pdf' },
checksum: 'checksum-abc-123'
}
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > uploadAndProcessFlyer > should construct FormData with file and checksum and send a POST request
[TEST ASSERT] Request object received by spy: {
"endpoint": "upload-and-process",
"method": "POST",
"body": {
"flyerFile": {
"name": "flyer.pdf",
"size": 18,
"type": "application/pdf"
},
"checksum": "checksum-abc-123"
},
"headers": {}
}
[TEST DEBUG] uploadAndProcessFlyer - Body received by spy: {
flyerFile: { name: 'flyer.pdf', size: 18, type: 'application/pdf' },
checksum: 'checksum-abc-123'
}
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > uploadAndProcessFlyer error handling > should throw a structured error with JSON body on non-ok response
[apiFetch MOCK] FormData detected. Searching for file to preserve its name.
[apiFetch MOCK] Found file: 'flyer.pdf'. Setting 'X-Test-Filename' header.
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/upload-and-process.
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stderr | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > uploadAndProcessFlyer error handling > should throw a structured error with JSON body on non-ok response
[aiApiClient] uploadAndProcessFlyer: Uploading file 'flyer.pdf' with checksum 'checksum-abc-123'
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > uploadAndProcessFlyer error handling > should throw a structured error with text body on non-ok, non-JSON response
[apiFetch MOCK] FormData detected. Searching for file to preserve its name.
[apiFetch MOCK] Found file: 'flyer.pdf'. Setting 'X-Test-Filename' header.
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/upload-and-process.
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stderr | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > uploadAndProcessFlyer error handling > should throw a structured error with text body on non-ok, non-JSON response
[aiApiClient] uploadAndProcessFlyer: Uploading file 'flyer.pdf' with checksum 'checksum-abc-123'
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus > should send a GET request to the correct job status URL
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/jobs/job-id-456/status.
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stderr | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus > should send a GET request to the correct job status URL
[aiApiClient] getJobStatus: Fetching status for job 'job-id-456'
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus error handling > should throw a JobFailedError if job state is "failed"
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/jobs/job-id-789/status.
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stderr | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus error handling > should throw a JobFailedError if job state is "failed"
[aiApiClient] getJobStatus: Fetching status for job 'job-id-789'
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus error handling > should use failedReason for JobFailedError if progress message is missing
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/jobs/job-id-789/status.
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stderr | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus error handling > should use failedReason for JobFailedError if progress message is missing
[aiApiClient] getJobStatus: Fetching status for job 'job-id-789'
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus error handling > should throw a generic error if the API response is not ok
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/jobs/job-id-789/status.
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stderr | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus error handling > should throw a generic error if the API response is not ok
[aiApiClient] getJobStatus: Fetching status for job 'job-id-789'
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus error handling > should throw a specific error if a 200 OK response is not valid JSON
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/jobs/job-id-789/status.
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stderr | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus error handling > should throw a specific error if a 200 OK response is not valid JSON
[aiApiClient] getJobStatus: Fetching status for job 'job-id-789'
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus error handling > should throw a generic error with status text if the non-ok API response is not valid JSON
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/jobs/job-id-789/status.
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stderr | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getJobStatus error handling > should throw a generic error with status text if the non-ok API response is not valid JSON
[aiApiClient] getJobStatus: Fetching status for job 'job-id-789'
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > isImageAFlyer > should construct FormData and send a POST request
 
--- [TEST START] isImageAFlyer ---
[apiFetch MOCK] FormData detected. Searching for file to preserve its name.
[apiFetch MOCK] Found file: 'flyer.jpg'. Setting 'X-Test-Filename' header.
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/check-flyer.
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > isImageAFlyer > should construct FormData and send a POST request
 
--- [MSW HANDLER] Intercepted POST to 'check-flyer' ---
 
 
src/features/flyer/ExtractedDataTable.test.tsx 16/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 10/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 1/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1197 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.55s
stdout | src/features/flyer/ExtractedDataTable.test.tsx > ExtractedDataTable > Data Edge Cases > should correctly format unit price for metric system
--- DEBUG: Metric System Test Case ---
DOM Structure: <tr
class="group hover:bg-gray-50 dark:hover:bg-gray-800/50"
>
<td
class="px-6 py-4 whitespace-normal"
>
<div
class="flex justify-between items-center mb-2"
>
<div
class="text-sm font-semibold text-gray-900 dark:text-white"
>
Boneless Chicken
</div>
<div
class="flex items-center space-x-2 shrink-0 ml-4"
>
<button
class="text-gray-400 hover:text-brand-primary disabled:text-gray-300 disabled:cursor-not-allowed dark:text-gray-500 dark:hover:text-brand-light transition-colors"
title="Add Chicken Breast to list"
>
<svg
class="w-5 h-5"
fill="none"
stroke="currentColor"
stroke-width="1.5"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M12 9v6m3-3H9m12 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</button>
<button
class="text-xs bg-gray-100 hover:bg-gray-200 dark:bg-gray-700 dark:hover:bg-gray-600 text-brand-primary dark:text-brand-light font-semibold py-1 px-2.5 rounded-md transition-colors duration-200"
title="Add 'Chicken Breast' to your watchlist"
>
+ Watch
</button>
</div>
</div>
<div
class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-x-6 gap-y-1 text-xs text-gray-600 dark:text-gray-400"
>
<div
class="flex items-baseline space-x-2"
>
<span
class="font-medium text-gray-500 w-16 shrink-0"
>
Price:
</span>
<span>
$8.00/kg
</span>
</div>
<div
class="flex items-baseline space-x-2"
>
<span
class="font-medium text-gray-500 w-16 shrink-0"
>
Deal:
</span>
<div
class="flex items-baseline"
>
<span>
per kg
</span>
</div>
</div>
<div
class="flex items-baseline space-x-2"
>
<span
class="font-medium text-gray-500 w-16 shrink-0"
>
Unit Price:
</span>
<div
class="flex items-baseline"
>
<span
class="font-semibold text-gray-700 dark:text-gray-300"
>
$0.080
</span>
<span
class="ml-1 text-xs text-gray-500 dark:text-gray-400"
>
/kg
</span>
</div>
</div>
<div
class="flex items-baseline space-x-2"
>
<span
class="font-medium text-gray-500 w-16 shrink-0"
>
Category:
</span>
<span
class="italic"
>
Meat
</span>
<span
class="ml-4 italic text-gray-400"
>
(Canonical:
Chicken Breast
)
</span>
</div>
</div>
</td>
</tr>
Row Text Content: Boneless Chicken+ WatchPrice:$8.00/kgDeal:per kgUnit Price:$0.080/kgCategory:Meat(Canonical: Chicken Breast)
Found 2 elements containing "$":
[0] Tag: <span>, Text: "$8.00/kg"
[1] Tag: <span>, Text: "$0.080"
Match Check: Strict='$8.00' found? false
Match Check: Lax='$8.00' found? true
--- DEBUG End ---
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > isImageAFlyer > should construct FormData and send a POST request
[MSW HANDLER] Reading 'X-Test-Filename' header. Value: 'flyer.jpg'
[MSW HANDLER DEBUG] Found file-like object for key 'image'. Original name: 'blob'. Using preserved name: 'flyer.jpg'
[MSW HANDLER] Finished processing FormData. Final object for spy: { image: { name: 'flyer.jpg', size: 19, type: 'image/jpeg' } }
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > isImageAFlyer > should construct FormData and send a POST request
[TEST ASSERT] Request object received by spy: {
"endpoint": "check-flyer",
"method": "POST",
"body": {
"image": {
"name": "flyer.jpg",
"size": 19,
"type": "image/jpeg"
}
},
"headers": {}
}
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > extractAddressFromImage > should construct FormData and send a POST request
 
--- [TEST START] extractAddressFromImage ---
[apiFetch MOCK] FormData detected. Searching for file to preserve its name.
[apiFetch MOCK] Found file: 'flyer.jpg'. Setting 'X-Test-Filename' header.
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/extract-address.
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > extractAddressFromImage > should construct FormData and send a POST request
 
--- [MSW HANDLER] Intercepted POST to 'extract-address' ---
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > extractAddressFromImage > should construct FormData and send a POST request
[MSW HANDLER] Reading 'X-Test-Filename' header. Value: 'flyer.jpg'
[MSW HANDLER DEBUG] Found file-like object for key 'image'. Original name: 'blob'. Using preserved name: 'flyer.jpg'
[MSW HANDLER] Finished processing FormData. Final object for spy: { image: { name: 'flyer.jpg', size: 19, type: 'image/jpeg' } }
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > extractAddressFromImage > should construct FormData and send a POST request
[TEST ASSERT] Request object received by spy: {
"endpoint": "extract-address",
"method": "POST",
"body": {
"image": {
"name": "flyer.jpg",
"size": 19,
"type": "image/jpeg"
}
},
"headers": {}
}
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > extractLogoFromImage > should construct FormData and send a POST request
 
--- [TEST START] extractLogoFromImage ---
[apiFetch MOCK] FormData detected. Searching for file to preserve its name.
[apiFetch MOCK] Found file: 'logo.jpg'. Setting 'X-Test-Filename' header.
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/extract-logo.
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > extractLogoFromImage > should construct FormData and send a POST request
 
--- [MSW HANDLER] Intercepted POST to 'extract-logo' ---
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > extractLogoFromImage > should construct FormData and send a POST request
[MSW HANDLER] Reading 'X-Test-Filename' header. Value: 'logo.jpg'
[MSW HANDLER DEBUG] Found file-like object for key 'images'. Original name: 'blob'. Using preserved name: 'logo.jpg'
[MSW HANDLER] Finished processing FormData. Final object for spy: { images: { name: 'logo.jpg', size: 19, type: 'image/jpeg' } }
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > extractLogoFromImage > should construct FormData and send a POST request
[TEST ASSERT] Request object received by spy: {
"endpoint": "extract-logo",
"method": "POST",
"body": {
"images": {
"name": "logo.jpg",
"size": 19,
"type": "image/jpeg"
}
},
"headers": {}
}
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getQuickInsights > should send items as JSON in the body
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/quick-insights.
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getQuickInsights > should send items as JSON in the body
 
--- [MSW HANDLER] Intercepted POST to 'quick-insights' ---
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getDeepDiveAnalysis > should send items as JSON in the body
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/deep-dive.
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > getDeepDiveAnalysis > should send items as JSON in the body
 
--- [MSW HANDLER] Intercepted POST to 'deep-dive' ---
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > searchWeb > should send query as JSON in the body
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/search-web.
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > searchWeb > should send query as JSON in the body
 
--- [MSW HANDLER] Intercepted POST to 'search-web' ---
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > generateImageFromText > should send prompt as JSON in the body
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/generate-image.
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > generateImageFromText > should send prompt as JSON in the body
 
--- [MSW HANDLER] Intercepted POST to 'generate-image' ---
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > generateSpeechFromText > should send text as JSON in the body
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/generate-speech.
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > generateSpeechFromText > should send text as JSON in the body
 
--- [MSW HANDLER] Intercepted POST to 'generate-speech' ---
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > planTripWithMaps > should send items, store, and location as JSON in the body
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/plan-trip.
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > planTripWithMaps > should send items, store, and location as JSON in the body
 
--- [MSW HANDLER] Intercepted POST to 'plan-trip' ---
 
 
src/features/flyer/ExtractedDataTable.test.tsx 19/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 11/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 8/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 23 passed (242)
Tests 1 failed | 1208 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.69s
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > planTripWithMaps > should send items, store, and location as JSON in the body
[TEST DEBUG] planTripWithMaps - Body received by spy: {
items: [
{
flyer_item_id: 1,
flyer_id: 1,
item: 'bread',
price_display: '$1.99',
price_in_cents: 199,
unit_price: null,
quantity: '1 loaf',
view_count: 0,
click_count: 0,
created_at: '2026-01-19T07:52:58.128Z',
updated_at: '2026-01-19T07:52:58.128Z',
category_name: 'Bakery'
}
],
store: {
store_id: 1,
name: 'Test Store',
logo_url: null,
created_by: null,
created_at: '2026-01-19T07:52:58.128Z',
updated_at: '2026-01-19T07:52:58.128Z'
},
userLocation: {
latitude: 45,
longitude: -75,
accuracy: 0,
altitude: null,
altitudeAccuracy: null,
heading: null,
speed: null
}
}
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > rescanImageArea > should construct FormData with image, cropArea, and extractionType
 
--- [TEST START] rescanImageArea ---
[apiFetch MOCK] FormData detected. Searching for file to preserve its name.
[apiFetch MOCK] Found file: 'flyer-page.jpg'. Setting 'X-Test-Filename' header.
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/rescan-area.
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > rescanImageArea > should construct FormData with image, cropArea, and extractionType
 
--- [MSW HANDLER] Intercepted POST to 'rescan-area' ---
 
src/features/flyer/ExtractedDataTable.test.tsx (22 tests) 4392ms
should render the table with items 934ms
should sort watched items to the top 681ms
should sort items alphabetically within watched and unwatched groups 401ms
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > rescanImageArea > should construct FormData with image, cropArea, and extractionType
[MSW HANDLER] Reading 'X-Test-Filename' header. Value: 'flyer-page.jpg'
[MSW HANDLER DEBUG] Found file-like object for key 'image'. Original name: 'blob'. Using preserved name: 'flyer-page.jpg'
[MSW HANDLER] Finished processing FormData. Final object for spy: {
image: { name: 'flyer-page.jpg', size: 19, type: 'image/jpeg' },
cropArea: '{"x":10,"y":20,"width":100,"height":50}',
extractionType: 'item_details'
}
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > rescanImageArea > should construct FormData with image, cropArea, and extractionType
[TEST ASSERT] Request object received by spy: {
"endpoint": "rescan-area",
"method": "POST",
"body": {
"image": {
"name": "flyer-page.jpg",
"size": 19,
"type": "image/jpeg"
},
"cropArea": "{\"x\":10,\"y\":20,\"width\":100,\"height\":50}",
"extractionType": "item_details"
},
"headers": {}
}
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > compareWatchedItemPrices > should send items as JSON in the body
[apiFetch MOCK] Executing fetch for URL: http://localhost/api/ai/compare-prices.
 
stdout | src/services/aiApiClient.test.ts > AI API Client (Network Mocking with MSW) > compareWatchedItemPrices > should send items as JSON in the body
 
--- [MSW HANDLER] Intercepted POST to 'compare-prices' ---
 
 
src/features/flyer/ExtractedDataTable.test.tsx 22/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 12/32
src/routes/admin.content.routes.test.ts [queued]
src/routes/inventory.routes.test.ts 41/41
src/services/aiApiClient.test.ts 18/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 24 passed (242)
Tests 1 failed | 1222 passed | 38 skipped (1316)
Start at 07:51:47
Duration 70.82s
src/services/aiApiClient.test.ts (21 tests) 488ms
 
src/features/flyer/ExtractedDataTable.test.tsx 22/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 12/32
src/routes/admin.content.routes.test.ts 0/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1225 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.27s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Corrections Routes > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/ExtractedDataTable.test.tsx 22/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 12/32
src/routes/admin.content.routes.test.ts 1/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1226 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.48s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Corrections Routes > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.content.routes.test.ts:205:9
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/ExtractedDataTable.test.tsx 22/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 12/32
src/routes/admin.content.routes.test.ts 1/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1226 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.48s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Corrections Routes > POST /corrections/:id/approve should return 500 on DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/ExtractedDataTable.test.tsx 22/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 12/32
src/routes/admin.content.routes.test.ts 1/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1226 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.48s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Corrections Routes > POST /corrections/:id/approve should return 500 on DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.content.routes.test.ts:226:73
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/ExtractedDataTable.test.tsx 22/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 12/32
src/routes/admin.content.routes.test.ts 1/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1226 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.48s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Corrections Routes > POST /corrections/:id/reject should return 500 on DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/ExtractedDataTable.test.tsx 22/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 13/32
src/routes/admin.content.routes.test.ts 6/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1232 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.58s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Corrections Routes > POST /corrections/:id/reject should return 500 on DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.content.routes.test.ts:241:72
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/ExtractedDataTable.test.tsx 22/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 13/32
src/routes/admin.content.routes.test.ts 6/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1232 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.58s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Corrections Routes > PUT /corrections/:id should return 500 on a generic DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/ExtractedDataTable.test.tsx 22/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 13/32
src/routes/admin.content.routes.test.ts 6/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1232 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.58s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Corrections Routes > PUT /corrections/:id should return 500 on a generic DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Generic DB Error
at /app/src/routes/admin.content.routes.test.ts:283:9
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/ExtractedDataTable.test.tsx 22/22
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 13/32
src/routes/admin.content.routes.test.ts 6/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1232 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.58s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Flyer Review Routes > GET /review/flyers should return 500 on DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 11/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1238 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.87s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Flyer Review Routes > GET /review/flyers should return 500 on DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.content.routes.test.ts:309:74
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 11/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1238 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.87s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Stats Routes > GET /stats should return 500 on DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 11/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1238 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.87s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Stats Routes > GET /stats should return 500 on DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.content.routes.test.ts:319:75
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 11/36
src/services/aiApiClient.test.ts 21/21
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1238 passed | 38 skipped (1352)
Start at 07:51:47
Duration 71.87s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Brand Routes > GET /brands should return 500 on DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Brand Routes > GET /brands should return 500 on DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.content.routes.test.ts:336:68
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Brand Routes > POST /brands/:id/logo should upload a logo and update the brand
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Brand Routes > POST /brands/:id/logo should return 500 on DB error
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Brand Routes > POST /brands/:id/logo should return 500 on DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Brand Routes > POST /brands/:id/logo should return 500 on DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.content.routes.test.ts:360:71
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Brand Routes > should clean up the uploaded file if updating the brand logo fails
[MULTER DEBUG] Flyer storage destination: /var/www/flyer-crawler.projectium.com/flyer-images
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Brand Routes > should clean up the uploaded file if updating the brand logo fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Brand Routes > should clean up the uploaded file if updating the brand logo fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/admin.content.routes.test.ts:377:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Recipe and Comment Routes > DELETE /recipes/:recipeId should return 500 on DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Recipe and Comment Routes > DELETE /recipes/:recipeId should return 500 on DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.content.routes.test.ts:431:69
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Recipe and Comment Routes > PUT /recipes/:id/status should return 500 on DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Recipe and Comment Routes > PUT /recipes/:id/status should return 500 on DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.content.routes.test.ts:460:74
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Recipe and Comment Routes > PUT /comments/:id/status should return 500 on DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Recipe and Comment Routes > PUT /comments/:id/status should return 500 on DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.content.routes.test.ts:495:9
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Unmatched Items Route > GET /unmatched-items should return 500 on DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Unmatched Items Route > GET /unmatched-items should return 500 on DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.content.routes.test.ts:520:78
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stdout | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Flyer Routes > DELETE /flyers/:flyerId should return 500 on a generic DB error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin) > Flyer Routes > DELETE /flyers/:flyerId should return 500 on a generic DB error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Generic DB Error
at /app/src/routes/admin.content.routes.test.ts:551:67
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
stderr | src/routes/admin.content.routes.test.ts > Admin Content Management Routes (/api/admin)
Error during admin content test file cleanup: TypeError: __vi_import_4__.default.readdir is not a function
at /app/src/routes/admin.content.routes.test.ts:176:33
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at runHook (file:///app/node_modules/@vitest/runner/dist/index.js:1514:51)
at callSuiteHook (file:///app/node_modules/@vitest/runner/dist/index.js:1520:25)
at file:///app/node_modules/@vitest/runner/dist/index.js:1826:36
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runSuite (file:///app/node_modules/@vitest/runner/dist/index.js:1826:10)
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 14/32
src/routes/admin.content.routes.test.ts 16/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 0/23
 
Test Files 3 failed | 25 passed (242)
Tests 1 failed | 1243 passed | 38 skipped (1352)
Start at 07:51:47
Duration 72.53s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should stop polling for job status when the component unmounts
--- [TEST LOG] ---: 5. Asserting no new polls occurred.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should stop polling for job status when the component unmounts
--- [TEST LOG] ---: Finished test: "FlyerUploader > should stop polling for job status when the component unmounts"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle a duplicate flyer error (409)
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > should handle a duplicate flyer error (409)"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle a duplicate flyer error (409)
--- [TEST LOG] ---: 1. Setting up mock for 409 duplicate error.
--- [TEST LOG] ---: 2. Rendering and uploading.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
--- [TEST LOG] ---: 3. Firing file change event.
--- [TEST LOG] ---: 3. File upload triggered.
--- [TEST LOG] ---: 4. AWAITING duplicate flyer message...
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 15/32
src/routes/admin.content.routes.test.ts 36/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 23/23
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1264 passed | 61 skipped (1352)
Start at 07:51:47
Duration 72.83s
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle a duplicate flyer error (409)
[LOGGER.ERROR] [FlyerUploader] Error encountered: This flyer has already been processed. { duplicateFlyerId: 99 }
 
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 15/32
src/routes/admin.content.routes.test.ts 36/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 23/23
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1264 passed | 61 skipped (1352)
Start at 07:51:47
Duration 72.83s
src/routes/admin.content.routes.test.ts (36 tests) 1030ms
src/tests/integration/receipt.integration.test.ts (23 tests | 23 skipped) 10017ms
should upload a receipt image successfully
should upload receipt without optional fields
should reject request without file
should reject unauthenticated requests
should return paginated list of receipts
should support status filter
should support pagination
should only return receipts for the authenticated user
should return receipt with items
should return 404 for non-existent receipt
should not allow accessing another user's receipt
should delete a receipt
should queue a failed receipt for reprocessing
should return 404 for non-existent receipt
should return all receipt items
should update item status
should reject invalid status
should return unadded items
should confirm items and add to inventory
should skip items with include: false
should reject invalid location
should return processing logs
should handle full upload-process-confirm workflow
 
src/features/flyer/FlyerUploader.test.tsx 6/15
src/pages/admin/components/SystemCheck.test.tsx 15/32
src/routes/admin.content.routes.test.ts 36/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 23/23
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1264 passed | 61 skipped (1352)
Start at 07:51:47
Duration 72.83s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle a duplicate flyer error (409)
--- [TEST LOG] ---: 5. SUCCESS: Duplicate message found.
--- [TEST LOG] ---: 6. Duplicate link confirmed.
 
 
src/features/flyer/FlyerUploader.test.tsx 7/15
src/pages/admin/components/SystemCheck.test.tsx 16/32
src/routes/admin.content.routes.test.ts 36/36
src/tests/integration/admin.integration.test.ts [queued]
src/tests/integration/receipt.integration.test.ts 23/23
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1266 passed | 61 skipped (1352)
Start at 07:51:47
Duration 73.13s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should handle a duplicate flyer error (409)
--- [TEST LOG] ---: Finished test: "FlyerUploader > should handle a duplicate flyer error (409)"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should allow the user to stop watching progress
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > should allow the user to stop watching progress"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should allow the user to stop watching progress
--- [TEST LOG] ---: 1. Setting up mocks for infinite polling.
--- [TEST LOG] ---: 2. Rendering and uploading.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
--- [TEST LOG] ---: 3. Firing file change event.
--- [TEST LOG] ---: 3. File upload triggered.
--- [TEST LOG] ---: 4. AWAITING polling UI...
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should allow the user to stop watching progress
[LOGGER.INFO] FlyerUploader Status: Analyzing...
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should allow the user to stop watching progress
--- [TEST LOG] ---: 5. SUCCESS: Polling UI is visible.
--- [TEST LOG] ---: 6. Clicking "Stop Watching Progress" button.
--- [TEST LOG] ---: 7. Click event fired.
--- [TEST LOG] ---: 8. AWAITING UI reset to idle state...
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should allow the user to stop watching progress
--- [TEST LOG] ---: 9. SUCCESS: UI has reset and message removed.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > should allow the user to stop watching progress
--- [TEST LOG] ---: Finished test: "FlyerUploader > should allow the user to stop watching progress"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle checksum generation failure
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > Error Handling and Edge Cases > should handle checksum generation failure"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle checksum generation failure
--- [TEST LOG] ---: 1. Setting up mock for checksum failure.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
--- [TEST LOG] ---: 2. Firing file change event.
--- [TEST LOG] ---: 3. Awaiting error message.
 
 
src/features/flyer/FlyerUploader.test.tsx 8/15
src/pages/admin/components/SystemCheck.test.tsx 17/32
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1268 passed | 61 skipped (1352)
Start at 07:51:47
Duration 73.60s
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle checksum generation failure
[LOGGER.ERROR] [FlyerUploader] Error encountered: Checksum generation failed { duplicateFlyerId: null }
 
 
src/features/flyer/FlyerUploader.test.tsx 8/15
src/pages/admin/components/SystemCheck.test.tsx 17/32
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1268 passed | 61 skipped (1352)
Start at 07:51:47
Duration 73.60s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle checksum generation failure
--- [TEST LOG] ---: 4. Assertions passed.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle checksum generation failure
--- [TEST LOG] ---: Finished test: "FlyerUploader > Error Handling and Edge Cases > should handle checksum generation failure"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during upload
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during upload"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during upload
--- [TEST LOG] ---: 1. Setting up mock for generic upload error.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
--- [TEST LOG] ---: 2. Firing file change event.
--- [TEST LOG] ---: 3. Awaiting error message.
 
 
src/features/flyer/FlyerUploader.test.tsx 8/15
src/pages/admin/components/SystemCheck.test.tsx 17/32
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1268 passed | 61 skipped (1352)
Start at 07:51:47
Duration 73.60s
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during upload
[LOGGER.ERROR] [FlyerUploader] Error encountered: Network Error During Upload { duplicateFlyerId: null }
 
 
src/features/flyer/FlyerUploader.test.tsx 8/15
src/pages/admin/components/SystemCheck.test.tsx 17/32
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1268 passed | 61 skipped (1352)
Start at 07:51:47
Duration 73.60s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during upload
--- [TEST LOG] ---: 4. Assertions passed.
 
 
src/features/flyer/FlyerUploader.test.tsx 8/15
src/pages/admin/components/SystemCheck.test.tsx 17/32
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1268 passed | 61 skipped (1352)
Start at 07:51:47
Duration 73.60s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during upload
--- [TEST LOG] ---: Finished test: "FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during upload"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during polling
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during polling"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during polling
--- [TEST LOG] ---: 1. Setting up mock for polling error.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
--- [TEST LOG] ---: 2. Firing file change event.
--- [TEST LOG] ---: 3. Awaiting error message.
 
 
src/features/flyer/FlyerUploader.test.tsx 11/15
src/pages/admin/components/SystemCheck.test.tsx 18/32
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1272 passed | 61 skipped (1352)
Start at 07:51:47
Duration 73.70s
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during polling
[LOGGER.WARN] [useFlyerUploader] Polling stopped due to query error state.
 
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during polling
[LOGGER.WARN] [useFlyerUploader] Polling stopped due to query error state.
[LOGGER.ERROR] [FlyerUploader] Error encountered: Polling failed: Polling Network Error { duplicateFlyerId: null }
 
 
src/features/flyer/FlyerUploader.test.tsx 11/15
src/pages/admin/components/SystemCheck.test.tsx 18/32
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1272 passed | 61 skipped (1352)
Start at 07:51:47
Duration 73.70s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during polling
--- [TEST LOG] ---: 4. Assertions passed.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during polling
--- [TEST LOG] ---: Finished test: "FlyerUploader > Error Handling and Edge Cases > should handle a generic network error during polling"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a completed job with a missing flyerId
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > Error Handling and Edge Cases > should handle a completed job with a missing flyerId"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a completed job with a missing flyerId
--- [TEST LOG] ---: 1. Setting up mock for malformed completion payload.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
--- [TEST LOG] ---: 2. Firing file change event.
--- [TEST LOG] ---: 3. Awaiting error message.
 
 
src/features/flyer/FlyerUploader.test.tsx 11/15
src/pages/admin/components/SystemCheck.test.tsx 18/32
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1272 passed | 61 skipped (1352)
Start at 07:51:47
Duration 73.70s
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a completed job with a missing flyerId
[LOGGER.ERROR] [FlyerUploader] Error encountered: Job completed but did not return a flyer ID. { duplicateFlyerId: null }
 
 
src/features/flyer/FlyerUploader.test.tsx 12/15
src/pages/admin/components/SystemCheck.test.tsx 19/32
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1274 passed | 61 skipped (1352)
Start at 07:51:47
Duration 74.09s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a completed job with a missing flyerId
--- [TEST LOG] ---: 4. Assertions passed.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a completed job with a missing flyerId
--- [TEST LOG] ---: Finished test: "FlyerUploader > Error Handling and Edge Cases > should handle a completed job with a missing flyerId"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a non-JSON response during polling
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > Error Handling and Edge Cases > should handle a non-JSON response during polling"
--- [TEST LOG] ---: Mocks reset.
 
 
src/features/flyer/FlyerUploader.test.tsx 12/15
src/pages/admin/components/SystemCheck.test.tsx 19/32
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 26 passed (242)
Tests 1 failed | 1274 passed | 61 skipped (1352)
Start at 07:51:47
Duration 74.09s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a non-JSON response during polling
--- [TEST LOG] ---: 1. Setting up mock for non-JSON response.
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
--- [TEST LOG] ---: 2. Firing file change event.
--- [TEST LOG] ---: 3. Awaiting error message.
 
 
src/features/flyer/FlyerUploader.test.tsx 15/15
src/pages/admin/components/SystemCheck.test.tsx 19/32
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 27 passed (242)
Tests 1 failed | 1277 passed | 61 skipped (1352)
Start at 07:51:47
Duration 74.23s
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a non-JSON response during polling
[LOGGER.WARN] [useFlyerUploader] Polling stopped due to query error state.
 
stderr | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a non-JSON response during polling
[LOGGER.WARN] [useFlyerUploader] Polling stopped due to query error state.
[LOGGER.ERROR] [FlyerUploader] Error encountered: Polling failed: Failed to parse JSON response from server. Body: <html>502 Bad Gateway</html> { duplicateFlyerId: null }
 
 
src/features/flyer/FlyerUploader.test.tsx 15/15
src/pages/admin/components/SystemCheck.test.tsx 19/32
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 27 passed (242)
Tests 1 failed | 1277 passed | 61 skipped (1352)
Start at 07:51:47
Duration 74.23s
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a non-JSON response during polling
--- [TEST LOG] ---: 4. Assertions passed.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should handle a non-JSON response during polling
--- [TEST LOG] ---: Finished test: "FlyerUploader > Error Handling and Edge Cases > should handle a non-JSON response during polling"
 
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should do nothing if the file input is cancelled
 
--- [TEST LOG] ---: Starting test: "FlyerUploader > Error Handling and Edge Cases > should do nothing if the file input is cancelled"
--- [TEST LOG] ---: Mocks reset.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should do nothing if the file input is cancelled
--- [TEST LOG] ---: Rendering component inside MemoryRouter.
 
stdout | src/features/flyer/FlyerUploader.test.tsx > FlyerUploader > Error Handling and Edge Cases > should do nothing if the file input is cancelled
--- [TEST LOG] ---: Finished test: "FlyerUploader > Error Handling and Edge Cases > should do nothing if the file input is cancelled"
 
 
src/features/flyer/FlyerUploader.test.tsx (15 tests) 17232ms
should handle file upload and start polling 3166ms
should poll for status, complete successfully, and redirect 5073ms
should clear the polling timeout when a job fails 3048ms
should stop polling for job status when the component unmounts 4063ms
should handle a duplicate flyer error (409) 841ms
 
src/features/flyer/FlyerUploader.test.tsx 15/15
src/pages/admin/components/SystemCheck.test.tsx 19/32
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 27 passed (242)
Tests 1 failed | 1277 passed | 61 skipped (1352)
Start at 07:51:47
Duration 74.23s
 
src/pages/admin/components/SystemCheck.test.tsx 21/32
src/services/authService.test.ts [queued]
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 27 passed (242)
Tests 1 failed | 1279 passed | 61 skipped (1352)
Start at 07:51:47
Duration 74.34s
 
src/pages/admin/components/SystemCheck.test.tsx 22/32
src/services/authService.test.ts [queued]
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts [queued]
 
Test Files 4 failed | 27 passed (242)
Tests 1 failed | 1280 passed | 61 skipped (1352)
Start at 07:51:47
Duration 74.97s
 
src/pages/admin/components/SystemCheck.test.tsx 22/32
src/services/authService.test.ts [queued]
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
 
Test Files 4 failed | 27 passed (242)
Tests 1 failed | 1280 passed | 61 skipped (1384)
Start at 07:51:47
Duration 75.08s
 
src/pages/admin/components/SystemCheck.test.tsx 24/32
src/services/authService.test.ts [queued]
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts [queued]
 
Test Files 4 failed | 27 passed (242)
Tests 1 failed | 1282 passed | 61 skipped (1384)
Start at 07:51:47
Duration 75.39s
 
src/pages/admin/components/SystemCheck.test.tsx 25/32
src/services/authService.test.ts [queued]
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts [queued]
 
Test Files 4 failed | 27 passed (242)
Tests 1 failed | 1283 passed | 61 skipped (1384)
Start at 07:51:47
Duration 75.72s
 
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/pages/admin/components/SystemCheck.test.tsx 26/32
src/services/authService.test.ts [queued]
src/services/db/recipe.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts [queued]
 
Test Files 4 failed | 27 passed (242)
Tests 1 failed | 1284 passed | 61 skipped (1384)
Start at 07:51:47
Duration 75.83s
 
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/pages/admin/components/SystemCheck.test.tsx 27/32
src/services/authService.test.ts [queued]
src/services/db/recipe.db.test.ts [queued]
src/services/db/upc.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts [queued]
 
Test Files 4 failed | 27 passed (242)
Tests 1 failed | 1285 passed | 61 skipped (1384)
Start at 07:51:47
Duration 76.05s
 
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/pages/admin/components/SystemCheck.test.tsx 32/32
src/services/authService.test.ts [queued]
src/services/db/recipe.db.test.ts [queued]
src/services/db/upc.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts [queued]
 
Test Files 4 failed | 27 passed (242)
Tests 1 failed | 1290 passed | 61 skipped (1384)
Start at 07:51:47
Duration 76.93s
src/pages/admin/components/SystemCheck.test.tsx (32 tests) 10628ms
should render initial idle state and then run checks automatically on mount 1500ms
should show backend connection as failed if pingBackend fails 385ms
should skip schema and seed checks if DB pool check fails 302ms
should show seeded user check as failed if loginUser fails 311ms
should display a loading spinner and disable button while checks are running 700ms
should re-run checks when the "Re-run Checks" button is clicked 713ms
should call triggerFailingJob and show a success toast 476ms
should show a loading state while triggering the job 809ms
should show an error toast if triggering the job fails 352ms
should show an error toast if the API returns a non-OK response 309ms
should call clearGeocodeCache and show a success toast 375ms
should not call clearGeocodeCache if user cancels confirmation 339ms
should show an error toast if the API returns a non-OK response 398ms
 
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/pages/admin/components/SystemCheck.test.tsx 32/32
src/services/authService.test.ts [queued]
src/services/db/recipe.db.test.ts 0/42
src/services/db/upc.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts [queued]
 
Test Files 4 failed | 28 passed (242)
Tests 1 failed | 1290 passed | 61 skipped (1426)
Start at 07:51:47
Duration 77.50s
 
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/pages/admin/components/SystemCheck.test.tsx 32/32
src/services/authService.test.ts 0/27
src/services/db/recipe.db.test.ts 1/42
src/services/db/upc.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts [queued]
 
Test Files 4 failed | 28 passed (242)
Tests 1 failed | 1291 passed | 61 skipped (1453)
Start at 07:51:47
Duration 77.60s
src/services/db/recipe.db.test.ts (42 tests) 178ms
 
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/services/authService.test.ts 0/27
src/services/db/recipe.db.test.ts 42/42
src/services/db/upc.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
 
Test Files 4 failed | 29 passed (242)
Tests 1 failed | 1332 passed | 61 skipped (1473)
Start at 07:51:47
Duration 78.54s
stdout | src/services/authService.test.ts > AuthService > registerAndLoginUser > should register user and return tokens
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
stdout | src/services/authService.test.ts > AuthService > generateAuthTokens > should generate access and refresh tokens
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
stdout | src/services/authService.test.ts > AuthService > resetPassword > should process password reset for existing user
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
stdout | src/services/authService.test.ts > AuthService > resetPassword > should log error if sending email fails but still return token
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/services/authService.test.ts 5/27
src/services/db/upc.db.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
 
Test Files 4 failed | 29 passed (242)
Tests 1 failed | 1337 passed | 61 skipped (1473)
Start at 07:51:47
Duration 79.01s
stdout | src/services/authService.test.ts > AuthService > refreshAccessToken > should return new access token if user found
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
src/services/authService.test.ts (27 tests) 1223ms
should successfully register a new user 942ms
 
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/services/authService.test.ts 27/27
src/services/db/upc.db.test.ts 1/34
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
 
Test Files 4 failed | 30 passed (242)
Tests 1 failed | 1360 passed | 61 skipped (1507)
Start at 07:51:47
Duration 79.11s
 
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/services/authService.test.ts 27/27
src/services/db/upc.db.test.ts 14/34
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
 
Test Files 4 failed | 30 passed (242)
Tests 1 failed | 1373 passed | 61 skipped (1507)
Start at 07:51:47
Duration 79.21s
src/services/db/upc.db.test.ts (34 tests) 200ms
 
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/services/db/upc.db.test.ts 34/34
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts [queued]
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1393 passed | 61 skipped (1507)
Start at 07:51:47
Duration 79.82s
 
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/services/db/upc.db.test.ts 34/34
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts [queued]
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1393 passed | 61 skipped (1507)
Start at 07:51:47
Duration 80.06s
 
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts [queued]
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1393 passed | 61 skipped (1507)
Start at 07:51:47
Duration 80.37s
 
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 0/24
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts [queued]
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1393 passed | 61 skipped (1531)
Start at 07:51:47
Duration 80.49s
 
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 3/24
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts [queued]
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1396 passed | 61 skipped (1531)
Start at 07:51:47
Duration 81.14s
 
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 6/24
src/routes/upc.routes.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts [queued]
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1399 passed | 61 skipped (1531)
Start at 07:51:47
Duration 81.54s
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 8/24
src/routes/upc.routes.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts [queued]
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1401 passed | 61 skipped (1531)
Start at 07:51:47
Duration 81.95s
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 9/24
src/routes/upc.routes.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts [queued]
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1402 passed | 61 skipped (1531)
Start at 07:51:47
Duration 82.44s
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 10/24
src/routes/upc.routes.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts [queued]
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1403 passed | 61 skipped (1531)
Start at 07:51:47
Duration 82.56s
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 10/24
src/routes/upc.routes.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1403 passed | 61 skipped (1543)
Start at 07:51:47
Duration 82.83s
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 12/24
src/routes/upc.routes.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1405 passed | 61 skipped (1543)
Start at 07:51:47
Duration 83.20s
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 13/24
src/routes/upc.routes.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1406 passed | 61 skipped (1543)
Start at 07:51:47
Duration 83.49s
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 16/24
src/routes/upc.routes.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1409 passed | 61 skipped (1543)
Start at 07:51:47
Duration 84.10s
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 17/24
src/routes/upc.routes.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1410 passed | 61 skipped (1543)
Start at 07:51:47
Duration 84.24s
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx [queued]
src/pages/admin/components/CorrectionRow.test.tsx 18/24
src/routes/upc.routes.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1411 passed | 61 skipped (1543)
Start at 07:51:47
Duration 84.80s
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 0/13
src/pages/admin/components/CorrectionRow.test.tsx 19/24
src/routes/upc.routes.test.ts [queued]
src/tests/integration/admin.integration.test.ts 0/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 4 failed | 31 passed (242)
Tests 1 failed | 1412 passed | 61 skipped (1556)
Start at 07:51:47
Duration 85.19s
src/tests/integration/admin.integration.test.ts (32 tests | 32 skipped) 10013ms
should allow an admin to fetch application stats
should forbid a regular user from fetching application stats
should allow an admin to fetch daily stats
should forbid a regular user from fetching daily stats
should allow an admin to fetch suggested corrections
should forbid a regular user from fetching suggested corrections
should allow an admin to fetch all brands
should forbid a regular user from fetching all brands
should allow an admin to approve a correction
should allow an admin to reject a correction
should allow an admin to update a correction
should allow an admin to update a recipe status
should allow an admin to delete another user's account
should prevent an admin from deleting their own account
should return 404 if the user to be deleted is not found
should return queue status for all queues
should forbid regular users from viewing queue status
should enqueue an analytics report job
should forbid regular users from triggering analytics report
should enqueue a weekly analytics job
should forbid regular users from triggering weekly analytics
should enqueue a daily deal check job
should forbid regular users from triggering daily deal check
should clear the application cache
should forbid regular users from clearing cache
should return validation error for invalid queue name
should return 404 for non-existent job
should forbid regular users from retrying jobs
should return all users for admin
should forbid regular users from listing all users
should return pending review flyers for admin
should forbid regular users from viewing pending flyers
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 0/13
src/pages/admin/components/CorrectionRow.test.tsx 21/24
src/routes/upc.routes.test.ts 0/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 31 passed (242)
Tests 1 failed | 1414 passed | 93 skipped (1583)
Start at 07:51:47
Duration 85.38s
stdout | src/routes/upc.routes.test.ts > UPC Routes (/api/upc) > POST /scan > should return 500 if the scan service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 6/13
src/pages/admin/components/CorrectionRow.test.tsx 21/24
src/routes/upc.routes.test.ts 4/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 31 passed (242)
Tests 1 failed | 1424 passed | 93 skipped (1583)
Start at 07:51:47
Duration 85.48s
stderr | src/routes/upc.routes.test.ts > UPC Routes (/api/upc) > POST /scan > should return 500 if the scan service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Scan service error
at /app/src/routes/upc.routes.test.ts:193:55
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 6/13
src/pages/admin/components/CorrectionRow.test.tsx 21/24
src/routes/upc.routes.test.ts 4/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 31 passed (242)
Tests 1 failed | 1424 passed | 93 skipped (1583)
Start at 07:51:47
Duration 85.48s
src/hooks/useActiveDeals.test.tsx (13 tests) 388ms
stdout | src/routes/upc.routes.test.ts > UPC Routes (/api/upc) > GET /lookup > should return 500 if the lookup service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 13/13
src/pages/admin/components/CorrectionRow.test.tsx 21/24
src/routes/upc.routes.test.ts 9/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 32 passed (242)
Tests 1 failed | 1436 passed | 93 skipped (1583)
Start at 07:51:47
Duration 85.59s
stderr | src/routes/upc.routes.test.ts > UPC Routes (/api/upc) > GET /lookup > should return 500 if the lookup service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Lookup error
at /app/src/routes/upc.routes.test.ts:280:57
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 13/13
src/pages/admin/components/CorrectionRow.test.tsx 21/24
src/routes/upc.routes.test.ts 9/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 32 passed (242)
Tests 1 failed | 1436 passed | 93 skipped (1583)
Start at 07:51:47
Duration 85.59s
stdout | src/routes/upc.routes.test.ts > UPC Routes (/api/upc) > GET /history > should return 500 if the history service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 13/13
src/pages/admin/components/CorrectionRow.test.tsx 22/24
src/routes/upc.routes.test.ts 16/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 32 passed (242)
Tests 1 failed | 1444 passed | 93 skipped (1583)
Start at 07:51:47
Duration 85.79s
stderr | src/routes/upc.routes.test.ts > UPC Routes (/api/upc) > GET /history > should return 500 if the history service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: History error
at /app/src/routes/upc.routes.test.ts:377:62
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 13/13
src/pages/admin/components/CorrectionRow.test.tsx 22/24
src/routes/upc.routes.test.ts 16/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 32 passed (242)
Tests 1 failed | 1444 passed | 93 skipped (1583)
Start at 07:51:47
Duration 85.79s
stdout | src/routes/upc.routes.test.ts > UPC Routes (/api/upc) > GET /stats > should return 500 if the stats service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 13/13
src/pages/admin/components/CorrectionRow.test.tsx 22/24
src/routes/upc.routes.test.ts 16/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 32 passed (242)
Tests 1 failed | 1444 passed | 93 skipped (1583)
Start at 07:51:47
Duration 85.79s
stderr | src/routes/upc.routes.test.ts > UPC Routes (/api/upc) > GET /stats > should return 500 if the stats service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Stats error
at /app/src/routes/upc.routes.test.ts:454:60
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 13/13
src/pages/admin/components/CorrectionRow.test.tsx 22/24
src/routes/upc.routes.test.ts 16/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 32 passed (242)
Tests 1 failed | 1444 passed | 93 skipped (1583)
Start at 07:51:47
Duration 85.79s
stdout | src/routes/upc.routes.test.ts > UPC Routes (/api/upc) > POST /link > should return 500 if the link service fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 13/13
src/pages/admin/components/CorrectionRow.test.tsx 22/24
src/routes/upc.routes.test.ts 23/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 32 passed (242)
Tests 1 failed | 1451 passed | 93 skipped (1583)
Start at 07:51:47
Duration 86.01s
stderr | src/routes/upc.routes.test.ts > UPC Routes (/api/upc) > POST /link > should return 500 if the link service fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Link error
at /app/src/routes/upc.routes.test.ts:519:64
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 13/13
src/pages/admin/components/CorrectionRow.test.tsx 22/24
src/routes/upc.routes.test.ts 23/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 32 passed (242)
Tests 1 failed | 1451 passed | 93 skipped (1583)
Start at 07:51:47
Duration 86.01s
src/routes/upc.routes.test.ts (27 tests) 779ms
 
src/features/flyer/FlyerList.test.tsx [queued]
src/hooks/useActiveDeals.test.tsx 13/13
src/pages/admin/components/CorrectionRow.test.tsx 24/24
src/routes/upc.routes.test.ts 27/27
src/tests/integration/admin.integration.test.ts 32/32
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 33 passed (242)
Tests 1 failed | 1457 passed | 93 skipped (1583)
Start at 07:51:47
Duration 86.11s
src/pages/admin/components/CorrectionRow.test.tsx (24 tests) 5498ms
should render correction data correctly 375ms
should call approveCorrection when approval is confirmed 842ms
should display an error message if an action fails 461ms
should display a generic error if saving an edit fails with a non-Error object 330ms
should save an edited value for INCORRECT_ITEM_LINK 344ms
should render a select for INCORRECT_ITEM_LINK 372ms
should render a select for ITEM_IS_MISCATEGORIZED 343ms
 
src/features/flyer/FlyerList.test.tsx 0/25
src/hooks/useActiveDeals.test.tsx 13/13
src/pages/admin/components/CorrectionRow.test.tsx 24/24
src/routes/upc.routes.test.ts 27/27
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 34 passed (242)
Tests 1 failed | 1457 passed | 93 skipped (1608)
Start at 07:51:47
Duration 86.25s
 
src/features/flyer/FlyerList.test.tsx 0/25
src/pages/admin/components/CorrectionRow.test.tsx 24/24
src/routes/upc.routes.test.ts 27/27
src/tests/e2e/inventory-journey.e2e.test.ts [queued]
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 34 passed (242)
Tests 1 failed | 1457 passed | 93 skipped (1608)
Start at 07:51:47
Duration 86.46s
 
src/features/flyer/FlyerList.test.tsx 0/25
src/tests/e2e/inventory-journey.e2e.test.ts [queued]
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 34 passed (242)
Tests 1 failed | 1457 passed | 93 skipped (1608)
Start at 07:51:47
Duration 87.17s
 
src/features/flyer/FlyerList.test.tsx 3/25
src/tests/e2e/inventory-journey.e2e.test.ts [queued]
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 34 passed (242)
Tests 1 failed | 1460 passed | 93 skipped (1608)
Start at 07:51:47
Duration 87.94s
 
src/features/flyer/FlyerList.test.tsx 7/25
src/tests/e2e/inventory-journey.e2e.test.ts [queued]
src/tests/integration/upc.integration.test.ts 0/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 5 failed | 34 passed (242)
Tests 1 failed | 1464 passed | 93 skipped (1608)
Start at 07:51:47
Duration 88.37s
src/tests/integration/upc.integration.test.ts (20 tests | 20 skipped) 10027ms
should record a manual UPC scan successfully
should record scan with product lookup result
should reject invalid UPC code format
should reject invalid scan_source
should reject unauthenticated requests
should return null for unknown UPC code
should return product for known UPC code
should reject missing upc_code parameter
should return paginated scan history
should support pagination parameters
should filter by scan_source
should only return scans for the authenticated user
should return a specific scan by ID
should return 404 for non-existent scan
should not allow accessing another user's scan
should return user scan statistics
should allow admin to link UPC to product
should reject non-admin users
should reject invalid product_id
should handle full scan-lookup-history workflow
 
src/features/flyer/FlyerList.test.tsx 16/25
src/tests/e2e/inventory-journey.e2e.test.ts [queued]
src/tests/integration/upc.integration.test.ts 20/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 6 failed | 34 passed (242)
Tests 1 failed | 1473 passed | 113 skipped (1608)
Start at 07:51:47
Duration 88.68s
 
src/features/flyer/FlyerList.test.tsx 18/25
src/tests/e2e/inventory-journey.e2e.test.ts [queued]
src/tests/integration/upc.integration.test.ts 20/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 6 failed | 34 passed (242)
Tests 1 failed | 1475 passed | 113 skipped (1608)
Start at 07:51:47
Duration 89.33s
src/features/flyer/FlyerList.test.tsx (25 tests) 2959ms
should render the heading 837ms
 
src/features/flyer/FlyerList.test.tsx 25/25
src/tests/e2e/inventory-journey.e2e.test.ts [queued]
src/tests/integration/upc.integration.test.ts 20/20
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 6 failed | 35 passed (242)
Tests 1 failed | 1482 passed | 113 skipped (1608)
Start at 07:51:47
Duration 89.90s
 
src/services/userService.test.ts [queued]
src/tests/e2e/inventory-journey.e2e.test.ts [queued]
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 6 failed | 35 passed (242)
Tests 1 failed | 1482 passed | 113 skipped (1608)
Start at 07:51:47
Duration 90.37s
 
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/services/userService.test.ts [queued]
src/tests/e2e/inventory-journey.e2e.test.ts 0/1
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 6 failed | 35 passed (242)
Tests 1 failed | 1482 passed | 113 skipped (1609)
Start at 07:51:47
Duration 91.08s
 
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/services/userService.test.ts [queued]
src/tests/e2e/inventory-journey.e2e.test.ts 0/1
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 6 failed | 35 passed (242)
Tests 1 failed | 1482 passed | 113 skipped (1609)
Start at 07:51:47
Duration 92.17s
src/tests/e2e/inventory-journey.e2e.test.ts (1 test | 1 failed) 243ms
× should complete inventory journey: Register -> Add Items -> Track Expiry -> Consume -> Configure Alerts 234ms
 
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/services/userService.test.ts [queued]
src/tests/integration/user.integration.test.ts 0/12
 
Test Files 7 failed | 35 passed (242)
Tests 2 failed | 1482 passed | 113 skipped (1609)
Start at 07:51:47
Duration 92.38s
 
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/services/userService.test.ts [queued]
src/tests/integration/user.integration.test.ts 1/12
 
Test Files 7 failed | 35 passed (242)
Tests 2 failed | 1482 passed | 114 skipped (1609)
Start at 07:51:47
Duration 93.03s
 
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/services/userService.test.ts [queued]
src/tests/integration/user.integration.test.ts 1/12
 
Test Files 7 failed | 35 passed (242)
Tests 2 failed | 1482 passed | 114 skipped (1609)
Start at 07:51:47
Duration 93.39s
src/tests/integration/user.integration.test.ts (12 tests | 12 skipped) 10013ms
should fetch the authenticated user profile via GET /api/users/profile
should update the user profile via PUT /api/users/profile
should allow updating the profile with an empty string for avatar_url
should update user preferences via PUT /api/users/profile/preferences
should reject registration with a weak password
should allow a user to delete their own account and then fail to log in
should allow a user to reset their password and log in with the new one
should allow a user to add and remove a watched item
should allow a user to manage a shopping list
should allow a user to upload an avatar image and update their profile
should reject avatar upload for an invalid file type
should reject avatar upload for a file that is too large
 
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/services/userService.test.ts [queued]
src/utils/zodUtils.test.ts [queued]
 
Test Files 8 failed | 35 passed (242)
Tests 2 failed | 1482 passed | 125 skipped (1609)
Start at 07:51:47
Duration 93.70s
 
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/services/userService.test.ts [queued]
src/utils/zodUtils.test.ts [queued]
 
Test Files 8 failed | 35 passed (242)
Tests 2 failed | 1482 passed | 125 skipped (1609)
Start at 07:51:47
Duration 94.39s
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/services/userService.test.ts [queued]
src/utils/zodUtils.test.ts [queued]
 
Test Files 8 failed | 35 passed (242)
Tests 2 failed | 1482 passed | 125 skipped (1609)
Start at 07:51:47
Duration 94.70s
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/services/userService.test.ts [queued]
src/utils/zodUtils.test.ts [queued]
 
Test Files 8 failed | 35 passed (242)
Tests 2 failed | 1482 passed | 125 skipped (1609)
Start at 07:51:47
Duration 95.80s
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/services/userService.test.ts 0/19
src/utils/zodUtils.test.ts [queued]
 
Test Files 8 failed | 35 passed (242)
Tests 2 failed | 1482 passed | 125 skipped (1628)
Start at 07:51:47
Duration 95.95s
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/services/userService.test.ts 1/19
src/utils/zodUtils.test.ts [queued]
 
Test Files 8 failed | 35 passed (242)
Tests 2 failed | 1483 passed | 125 skipped (1628)
Start at 07:51:47
Duration 96.10s
src/services/userService.test.ts (19 tests) 166ms
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/hooks/useAiAnalysis.test.ts [queued]
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/routes/recipe.routes.test.ts [queued]
src/utils/zodUtils.test.ts [queued]
 
Test Files 8 failed | 36 passed (242)
Tests 2 failed | 1501 passed | 125 skipped (1628)
Start at 07:51:47
Duration 96.31s
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > should initialize with correct default states
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > should initialize with correct default states
TEST: should initialize with correct default states
Asserting initial state...
Initial state assertions passed.
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should call the correct service method for QUICK_INSIGHTS and update state on success
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should call the correct service method for QUICK_INSIGHTS and update state on success
TEST: should handle QUICK_INSIGHTS success
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should call the correct service method for QUICK_INSIGHTS and update state on success
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'QUICK_INSIGHTS' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_TEXT {
payload: { analysisType: 'QUICK_INSIGHTS', data: 'Quick insights text' }
}
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should call the correct service method for DEEP_DIVE
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should call the correct service method for DEEP_DIVE
TEST: should call execute for DEEP_DIVE
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should call the correct service method for DEEP_DIVE
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'DEEP_DIVE' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_TEXT { payload: { analysisType: 'DEEP_DIVE', data: 'Deep dive text' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should handle grounded responses for WEB_SEARCH
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should handle grounded responses for WEB_SEARCH
TEST: should handle grounded responses for WEB_SEARCH
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should handle grounded responses for WEB_SEARCH
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'WEB_SEARCH' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_GROUNDED {
payload: {
analysisType: 'WEB_SEARCH',
data: { text: 'Web search text', sources: [Array] }
}
}
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should handle PLAN_TRIP and its specific arguments
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should handle PLAN_TRIP and its specific arguments
TEST: should handle PLAN_TRIP
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should handle PLAN_TRIP and its specific arguments
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'PLAN_TRIP' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_GROUNDED {
payload: {
analysisType: 'PLAN_TRIP',
data: { text: 'Trip plan text', sources: [Array] }
}
}
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should handle COMPARE_PRICES and its specific arguments
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should handle COMPARE_PRICES and its specific arguments
TEST: should handle COMPARE_PRICES
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should handle COMPARE_PRICES and its specific arguments
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'COMPARE_PRICES' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_GROUNDED {
payload: {
analysisType: 'COMPARE_PRICES',
data: { text: 'Price comparison text', sources: [Array] }
}
}
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should set error if PLAN_TRIP is called without a store
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should set error if PLAN_TRIP is called without a store
TEST: should set error if PLAN_TRIP is called without a store
[LOG ERROR] runAnalysis failed for type PLAN_TRIP {
error: Error: Store information is not available for trip planning.
at Object.runAnalysis (/app/src/hooks/useAiAnalysis.ts:127:21)
at /app/src/hooks/useAiAnalysis.test.ts:187:30
at /app/node_modules/@testing-library/react/dist/act-compat.js:47:24
at process.env.NODE_ENV.exports.act (/app/node_modules/react/cjs/react.development.js:814:22)
at Proxy.<anonymous> (/app/node_modules/@testing-library/react/dist/act-compat.js:46:25)
at /app/src/hooks/useAiAnalysis.test.ts:186:13
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
}
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should set error if PLAN_TRIP is called without a store
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'PLAN_TRIP' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_ERROR {
payload: { error: 'Store information is not available for trip planning.' }
}
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should set the error state if a service call fails
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should set the error state if a service call fails
TEST: should set error state on failure
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should set the error state if a service call fails
[LOG ERROR] runAnalysis failed for type QUICK_INSIGHTS {
error: Error: API is down
at /app/src/hooks/useAiAnalysis.test.ts:196:24
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
}
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should set the error state if a service call fails
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'QUICK_INSIGHTS' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_ERROR { payload: { error: 'API is down' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should clear previous error when starting a new analysis
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should clear previous error when starting a new analysis
TEST: should clear previous error when starting a new analysis
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should clear previous error when starting a new analysis
[LOG ERROR] runAnalysis failed for type QUICK_INSIGHTS {
error: Error: First failure
at /app/src/hooks/useAiAnalysis.test.ts:211:24
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
}
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should clear previous error when starting a new analysis
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'QUICK_INSIGHTS' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_ERROR { payload: { error: 'First failure' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > runAnalysis > should clear previous error when starting a new analysis
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'QUICK_INSIGHTS' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_TEXT { payload: { analysisType: 'QUICK_INSIGHTS', data: 'Success' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > generateImage > should not call the service if there is no DEEP_DIVE result
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > generateImage > should not call the service if there is no DEEP_DIVE result
TEST: should not run generateImage if DEEP_DIVE results are missing
[LOG WARN] generateImage called but no meal plan text available.
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > generateImage > should call the service and update state on successful image generation
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > generateImage > should call the service and update state on successful image generation
TEST: should generate image on success
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > generateImage > should call the service and update state on successful image generation
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'DEEP_DIVE' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_TEXT { payload: { analysisType: 'DEEP_DIVE', data: 'A great meal plan' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > generateImage > should call the service and update state on successful image generation
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'GENERATE_IMAGE' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_IMAGE { payload: { data: 'base64string' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > generateImage > should set an error if image generation fails
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > generateImage > should set an error if image generation fails
TEST: should handle image generation failure
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > generateImage > should set an error if image generation fails
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'DEEP_DIVE' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_TEXT { payload: { analysisType: 'DEEP_DIVE', data: 'A great meal plan' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > generateImage > should set an error if image generation fails
[LOG ERROR] generateImage failed {
error: Error: Image model failed
at /app/src/hooks/useAiAnalysis.test.ts:272:24
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
}
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > generateImage > should set an error if image generation fails
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'GENERATE_IMAGE' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_ERROR { payload: { error: 'Image model failed' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > State Management and Logging > should preserve existing results when running a new analysis
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > State Management and Logging > should preserve existing results when running a new analysis
TEST: should preserve existing results
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > State Management and Logging > should preserve existing results when running a new analysis
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'QUICK_INSIGHTS' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_TEXT { payload: { analysisType: 'QUICK_INSIGHTS', data: 'Insight 1' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > State Management and Logging > should preserve existing results when running a new analysis
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'DEEP_DIVE' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_TEXT { payload: { analysisType: 'DEEP_DIVE', data: 'Insight 2' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > State Management and Logging > should log reducer actions
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > State Management and Logging > should log reducer actions
TEST: should log reducer actions
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > State Management and Logging > should log reducer actions
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'QUICK_INSIGHTS' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_TEXT { payload: { analysisType: 'QUICK_INSIGHTS', data: 'Insight' } }
 
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/hooks/useAiAnalysis.test.ts 1/18
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/routes/recipe.routes.test.ts [queued]
src/utils/zodUtils.test.ts [queued]
 
Test Files 8 failed | 36 passed (242)
Tests 2 failed | 1502 passed | 125 skipped (1646)
Start at 07:51:47
Duration 96.61s
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > State Management and Logging > should set loading state but not call service for unhandled analysis types in runAnalysis
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > State Management and Logging > should set loading state but not call service for unhandled analysis types in runAnalysis
TEST: unhandled analysis type
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > State Management and Logging > should set loading state but not call service for unhandled analysis types in runAnalysis
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'GENERATE_IMAGE' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > Helper Functions > should clear error when clearError is called
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > Helper Functions > should clear error when clearError is called
[LOG ERROR] runAnalysis failed for type QUICK_INSIGHTS {
error: Error: Some error
at /app/src/hooks/useAiAnalysis.test.ts:347:24
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
}
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > Helper Functions > should clear error when clearError is called
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'QUICK_INSIGHTS' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_ERROR { payload: { error: 'Some error' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > Helper Functions > should clear error when clearError is called
[LOG INFO] [aiAnalysisReducer] Dispatched action: CLEAR_ERROR { payload: {} }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > Helper Functions > should reset state when resetAnalysis is called
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > Helper Functions > should reset state when resetAnalysis is called
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_START { payload: { analysisType: 'QUICK_INSIGHTS' } }
[LOG INFO] [aiAnalysisReducer] Dispatched action: FETCH_SUCCESS_TEXT { payload: { analysisType: 'QUICK_INSIGHTS', data: 'Insight' } }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > Helper Functions > should reset state when resetAnalysis is called
[LOG INFO] [aiAnalysisReducer] Dispatched action: RESET_STATE { payload: {} }
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > aiAnalysisReducer > should return current state for unknown action
 
 
 
--- TEST CASE START ---
 
stdout | src/hooks/useAiAnalysis.test.ts > useAiAnalysis Hook > aiAnalysisReducer > should return current state for unknown action
[LOG INFO] [aiAnalysisReducer] Dispatched action: UNKNOWN_ACTION { payload: {} }
 
src/hooks/useAiAnalysis.test.ts (18 tests) 497ms
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/hooks/useAiAnalysis.test.ts 18/18
src/pages/admin/components/AuthView.test.tsx [queued]
src/routes/gamification.routes.test.ts [queued]
src/routes/recipe.routes.test.ts [queued]
src/utils/zodUtils.test.ts 1/46
 
Test Files 8 failed | 37 passed (242)
Tests 2 failed | 1520 passed | 125 skipped (1692)
Start at 07:51:47
Duration 97.15s
src/utils/zodUtils.test.ts (46 tests) 138ms
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/hooks/useAiAnalysis.test.ts 18/18
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts [queued]
src/routes/recipe.routes.test.ts [queued]
src/utils/zodUtils.test.ts 46/46
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1565 passed | 125 skipped (1713)
Start at 07:51:47
Duration 97.88s
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/hooks/useAiAnalysis.test.ts 18/18
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts [queued]
src/routes/recipe.routes.test.ts [queued]
src/utils/zodUtils.test.ts 46/46
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1565 passed | 125 skipped (1713)
Start at 07:51:47
Duration 97.99s
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts [queued]
src/routes/recipe.routes.test.ts [queued]
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1565 passed | 125 skipped (1713)
Start at 07:51:47
Duration 98.96s
stdout | src/routes/gamification.routes.test.ts > Gamification Routes (/api/achievements) > GET / > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts 1/20
src/routes/recipe.routes.test.ts [queued]
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1566 passed | 125 skipped (1733)
Start at 07:51:47
Duration 100.00s
stderr | src/routes/gamification.routes.test.ts > Gamification Routes (/api/achievements) > GET / > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Connection Failed
at /app/src/routes/gamification.routes.test.ts:106:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts 1/20
src/routes/recipe.routes.test.ts [queued]
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1566 passed | 125 skipped (1733)
Start at 07:51:47
Duration 100.00s
stdout | src/routes/gamification.routes.test.ts > Gamification Routes (/api/achievements) > GET /me > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts 7/20
src/routes/recipe.routes.test.ts [queued]
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1572 passed | 125 skipped (1733)
Start at 07:51:47
Duration 100.23s
stderr | src/routes/gamification.routes.test.ts > Gamification Routes (/api/achievements) > GET /me > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/gamification.routes.test.ts:166:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts 7/20
src/routes/recipe.routes.test.ts [queued]
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1572 passed | 125 skipped (1733)
Start at 07:51:47
Duration 100.23s
stdout | src/routes/gamification.routes.test.ts > Gamification Routes (/api/achievements) > POST /award > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts 7/20
src/routes/recipe.routes.test.ts [queued]
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1572 passed | 125 skipped (1733)
Start at 07:51:47
Duration 100.23s
stderr | src/routes/gamification.routes.test.ts > Gamification Routes (/api/achievements) > POST /award > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/gamification.routes.test.ts:225:73
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts 7/20
src/routes/recipe.routes.test.ts [queued]
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1572 passed | 125 skipped (1733)
Start at 07:51:47
Duration 100.23s
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts 11/20
src/routes/recipe.routes.test.ts [queued]
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1576 passed | 125 skipped (1733)
Start at 07:51:47
Duration 100.50s
stdout | src/routes/gamification.routes.test.ts > Gamification Routes (/api/achievements) > GET /leaderboard > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts 14/20
src/routes/recipe.routes.test.ts [queued]
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1579 passed | 125 skipped (1733)
Start at 07:51:47
Duration 100.76s
stderr | src/routes/gamification.routes.test.ts > Gamification Routes (/api/achievements) > GET /leaderboard > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/gamification.routes.test.ts:324:71
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts 14/20
src/routes/recipe.routes.test.ts [queued]
 
Test Files 8 failed | 38 passed (242)
Tests 2 failed | 1579 passed | 125 skipped (1733)
Start at 07:51:47
Duration 100.76s
src/routes/gamification.routes.test.ts (20 tests) 984ms
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 0/21
src/routes/gamification.routes.test.ts 20/20
src/routes/recipe.routes.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1585 passed | 125 skipped (1733)
Start at 07:51:47
Duration 101.64s
stderr | src/pages/admin/components/AuthView.test.tsx > AuthView > Initial Render and Login > should render the Sign In form by default
React does not recognize the `showStrength` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `showstrength` instead. If you accidentally passed it from a parent component, remove it from the DOM element.
 
 
src/components/FlyerCorrectionTool.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 1/21
src/routes/recipe.routes.test.ts [queued]
src/services/flyerDataTransformer.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1586 passed | 125 skipped (1733)
Start at 07:51:47
Duration 101.74s
 
src/components/FlyerCorrectionTool.test.tsx 0/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 1/21
src/routes/recipe.routes.test.ts [queued]
src/services/flyerDataTransformer.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1586 passed | 125 skipped (1746)
Start at 07:51:47
Duration 101.85s
 
src/components/FlyerCorrectionTool.test.tsx 0/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 2/21
src/routes/recipe.routes.test.ts [queued]
src/services/flyerDataTransformer.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1587 passed | 125 skipped (1746)
Start at 07:51:47
Duration 102.46s
 
src/components/FlyerCorrectionTool.test.tsx 0/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 3/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts [queued]
src/services/flyerDataTransformer.test.ts [queued]
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1588 passed | 125 skipped (1746)
Start at 07:51:47
Duration 102.59s
 
src/components/FlyerCorrectionTool.test.tsx 0/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 4/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts [queued]
src/services/flyerDataTransformer.test.ts [queued]
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1589 passed | 125 skipped (1746)
Start at 07:51:47
Duration 103.77s
 
src/components/FlyerCorrectionTool.test.tsx 3/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 6/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts [queued]
src/services/flyerDataTransformer.test.ts [queued]
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1594 passed | 125 skipped (1746)
Start at 07:51:47
Duration 103.92s
 
src/components/FlyerCorrectionTool.test.tsx 3/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 7/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts [queued]
src/services/flyerDataTransformer.test.ts [queued]
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1595 passed | 125 skipped (1746)
Start at 07:51:47
Duration 104.08s
 
src/components/FlyerCorrectionTool.test.tsx 4/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 7/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 0/27
src/services/flyerDataTransformer.test.ts [queued]
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1596 passed | 125 skipped (1773)
Start at 07:51:47
Duration 104.81s
stdout | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > GET /by-sale-percentage > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 15/27
src/services/flyerDataTransformer.test.ts 0/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1613 passed | 125 skipped (1783)
Start at 07:51:47
Duration 104.91s
stderr | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > GET /by-sale-percentage > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/recipe.routes.test.ts:87:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 15/27
src/services/flyerDataTransformer.test.ts 0/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1613 passed | 125 skipped (1783)
Start at 07:51:47
Duration 104.91s
stdout | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > GET /by-sale-ingredients > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 15/27
src/services/flyerDataTransformer.test.ts 0/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1613 passed | 125 skipped (1783)
Start at 07:51:47
Duration 104.91s
stderr | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > GET /by-sale-ingredients > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/recipe.routes.test.ts:122:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 15/27
src/services/flyerDataTransformer.test.ts 0/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1613 passed | 125 skipped (1783)
Start at 07:51:47
Duration 104.91s
stdout | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > GET /by-ingredient-and-tag > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 15/27
src/services/flyerDataTransformer.test.ts 0/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1613 passed | 125 skipped (1783)
Start at 07:51:47
Duration 104.91s
stderr | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > GET /by-ingredient-and-tag > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/recipe.routes.test.ts:156:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 15/27
src/services/flyerDataTransformer.test.ts 0/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1613 passed | 125 skipped (1783)
Start at 07:51:47
Duration 104.91s
stdout | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > GET /:recipeId/comments > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 15/27
src/services/flyerDataTransformer.test.ts 0/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1613 passed | 125 skipped (1783)
Start at 07:51:47
Duration 104.91s
stderr | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > GET /:recipeId/comments > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/recipe.routes.test.ts:197:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 15/27
src/services/flyerDataTransformer.test.ts 0/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1613 passed | 125 skipped (1783)
Start at 07:51:47
Duration 104.91s
stdout | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > GET /:recipeId > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 15/27
src/services/flyerDataTransformer.test.ts 0/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1613 passed | 125 skipped (1783)
Start at 07:51:47
Duration 104.91s
stderr | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > GET /:recipeId > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/recipe.routes.test.ts:240:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 15/27
src/services/flyerDataTransformer.test.ts 0/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1613 passed | 125 skipped (1783)
Start at 07:51:47
Duration 104.91s
stderr | src/services/flyerDataTransformer.test.ts > FlyerDataTransformer > should transform AI data into database-ready format with a user ID
[DEBUG] FlyerDataTransformer.transform called with baseUrl: https://example.com
[DEBUG] FlyerDataTransformer._buildUrls inputs: {
imageFileName: 'flyer-page-1.jpg',
iconFileName: 'icon-flyer-page-1.webp',
baseUrl: 'https://example.com'
}
[DEBUG] FlyerDataTransformer._buildUrls finalBaseUrl resolved to: https://example.com
[DEBUG] FlyerDataTransformer._buildUrls constructed: {
imageUrl: 'https://example.com/flyer-images/flyer-page-1.jpg',
iconUrl: 'https://example.com/flyer-images/icons/icon-flyer-page-1.webp'
}
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 17/27
src/services/flyerDataTransformer.test.ts 3/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1618 passed | 125 skipped (1783)
Start at 07:51:47
Duration 105.10s
stdout | src/components/FlyerCorrectionTool.test.tsx > FlyerCorrectionTool > should call rescanImageArea with correct parameters and show success
 
--- [TEST LOG] ---: Starting test: "should call rescanImageArea..."
--- [TEST LOG] ---: 1. Setting up controllable promise for rescanImageArea.
--- [TEST LOG] ---: Awaiting image fetch inside component...
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 17/27
src/services/flyerDataTransformer.test.ts 3/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1618 passed | 125 skipped (1783)
Start at 07:51:47
Duration 105.10s
stderr | src/services/flyerDataTransformer.test.ts > FlyerDataTransformer > should handle missing optional data gracefully
[DEBUG] FlyerDataTransformer.transform called with baseUrl: http://another.host
[DEBUG] FlyerDataTransformer._buildUrls inputs: {
imageFileName: 'another.png',
iconFileName: 'icon-another.webp',
baseUrl: 'http://another.host'
}
[DEBUG] FlyerDataTransformer._buildUrls finalBaseUrl resolved to: http://another.host
[DEBUG] FlyerDataTransformer._buildUrls constructed: {
imageUrl: 'http://another.host/flyer-images/another.png',
iconUrl: 'http://another.host/flyer-images/icons/icon-another.webp'
}
 
stderr | src/services/flyerDataTransformer.test.ts > FlyerDataTransformer > should correctly normalize item fields with null, undefined, or empty values
[DEBUG] FlyerDataTransformer.transform called with baseUrl: http://normalize.host
[DEBUG] FlyerDataTransformer._buildUrls inputs: {
imageFileName: 'flyer-page-1.jpg',
iconFileName: 'icon-flyer-page-1.webp',
baseUrl: 'http://normalize.host'
}
[DEBUG] FlyerDataTransformer._buildUrls finalBaseUrl resolved to: http://normalize.host
[DEBUG] FlyerDataTransformer._buildUrls constructed: {
imageUrl: 'http://normalize.host/flyer-images/flyer-page-1.jpg',
iconUrl: 'http://normalize.host/flyer-images/icons/icon-flyer-page-1.webp'
}
 
stderr | src/services/flyerDataTransformer.test.ts > FlyerDataTransformer > should use fallback baseUrl from getBaseUrl if none is provided
[DEBUG] FlyerDataTransformer.transform called with baseUrl:
[DEBUG] FlyerDataTransformer._buildUrls inputs: {
imageFileName: 'flyer-page-1.jpg',
iconFileName: 'icon-flyer-page-1.webp',
baseUrl: ''
}
[DEBUG] FlyerDataTransformer._buildUrls finalBaseUrl resolved to: http://fallback-url.com
[DEBUG] FlyerDataTransformer._buildUrls constructed: {
imageUrl: 'http://fallback-url.com/flyer-images/flyer-page-1.jpg',
iconUrl: 'http://fallback-url.com/flyer-images/icons/icon-flyer-page-1.webp'
}
 
stderr | src/services/flyerDataTransformer.test.ts > FlyerDataTransformer > _normalizeItem price parsing > should use price_in_cents from AI if it is valid, ignoring price_display
[DEBUG] FlyerDataTransformer.transform called with baseUrl: http://test.host
[DEBUG] FlyerDataTransformer._buildUrls inputs: {
imageFileName: 'flyer-page-1.jpg',
iconFileName: 'icon-flyer-page-1.webp',
baseUrl: 'http://test.host'
}
[DEBUG] FlyerDataTransformer._buildUrls finalBaseUrl resolved to: http://test.host
[DEBUG] FlyerDataTransformer._buildUrls constructed: {
imageUrl: 'http://test.host/flyer-images/flyer-page-1.jpg',
iconUrl: 'http://test.host/flyer-images/icons/icon-flyer-page-1.webp'
}
 
stderr | src/services/flyerDataTransformer.test.ts > FlyerDataTransformer > _normalizeItem price parsing > should use parsePriceToCents as a fallback if AI price_in_cents is null
[DEBUG] FlyerDataTransformer.transform called with baseUrl: http://test.host
[DEBUG] FlyerDataTransformer._buildUrls inputs: {
imageFileName: 'flyer-page-1.jpg',
iconFileName: 'icon-flyer-page-1.webp',
baseUrl: 'http://test.host'
}
[DEBUG] FlyerDataTransformer._buildUrls finalBaseUrl resolved to: http://test.host
[DEBUG] FlyerDataTransformer._buildUrls constructed: {
imageUrl: 'http://test.host/flyer-images/flyer-page-1.jpg',
iconUrl: 'http://test.host/flyer-images/icons/icon-flyer-page-1.webp'
}
 
stderr | src/services/flyerDataTransformer.test.ts > FlyerDataTransformer > _normalizeItem price parsing > should result in null if both AI price and display price are unparsable
[DEBUG] FlyerDataTransformer.transform called with baseUrl: http://test.host
[DEBUG] FlyerDataTransformer._buildUrls inputs: {
imageFileName: 'flyer-page-1.jpg',
iconFileName: 'icon-flyer-page-1.webp',
baseUrl: 'http://test.host'
}
[DEBUG] FlyerDataTransformer._buildUrls finalBaseUrl resolved to: http://test.host
[DEBUG] FlyerDataTransformer._buildUrls constructed: {
imageUrl: 'http://test.host/flyer-images/flyer-page-1.jpg',
iconUrl: 'http://test.host/flyer-images/icons/icon-flyer-page-1.webp'
}
 
stderr | src/services/flyerDataTransformer.test.ts > FlyerDataTransformer > should handle non-string values for string fields gracefully by converting them
[DEBUG] FlyerDataTransformer.transform called with baseUrl: http://robust.host
[DEBUG] FlyerDataTransformer._buildUrls inputs: {
imageFileName: 'flyer-page-1.jpg',
iconFileName: 'icon-flyer-page-1.webp',
baseUrl: 'http://robust.host'
}
[DEBUG] FlyerDataTransformer._buildUrls finalBaseUrl resolved to: http://robust.host
[DEBUG] FlyerDataTransformer._buildUrls constructed: {
imageUrl: 'http://robust.host/flyer-images/flyer-page-1.jpg',
iconUrl: 'http://robust.host/flyer-images/icons/icon-flyer-page-1.webp'
}
 
stderr | src/services/flyerDataTransformer.test.ts > FlyerDataTransformer > needsReview flag handling > should set status to "processed" when needsReview is false
[DEBUG] FlyerDataTransformer.transform called with baseUrl: http://test.host
[DEBUG] FlyerDataTransformer._buildUrls inputs: {
imageFileName: 'flyer-page-1.jpg',
iconFileName: 'icon-flyer-page-1.webp',
baseUrl: 'http://test.host'
}
[DEBUG] FlyerDataTransformer._buildUrls finalBaseUrl resolved to: http://test.host
[DEBUG] FlyerDataTransformer._buildUrls constructed: {
imageUrl: 'http://test.host/flyer-images/flyer-page-1.jpg',
iconUrl: 'http://test.host/flyer-images/icons/icon-flyer-page-1.webp'
}
 
stderr | src/services/flyerDataTransformer.test.ts > FlyerDataTransformer > needsReview flag handling > should set status to "needs_review" when needsReview is true
[DEBUG] FlyerDataTransformer.transform called with baseUrl: http://test.host
[DEBUG] FlyerDataTransformer._buildUrls inputs: {
imageFileName: 'flyer-page-1.jpg',
iconFileName: 'icon-flyer-page-1.webp',
baseUrl: 'http://test.host'
}
[DEBUG] FlyerDataTransformer._buildUrls finalBaseUrl resolved to: http://test.host
[DEBUG] FlyerDataTransformer._buildUrls constructed: {
imageUrl: 'http://test.host/flyer-images/flyer-page-1.jpg',
iconUrl: 'http://test.host/flyer-images/icons/icon-flyer-page-1.webp'
}
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 8/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 17/27
src/services/flyerDataTransformer.test.ts 3/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 39 passed (242)
Tests 2 failed | 1618 passed | 125 skipped (1783)
Start at 07:51:47
Duration 105.10s
src/services/flyerDataTransformer.test.ts (10 tests) 169ms
stdout | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > POST /suggest > should return 500 on service error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 9/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 24/27
src/services/flyerDataTransformer.test.ts 10/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 40 passed (242)
Tests 2 failed | 1633 passed | 125 skipped (1783)
Start at 07:51:47
Duration 105.20s
stderr | src/routes/recipe.routes.test.ts > Recipe Routes (/api/recipes) > POST /suggest > should return 500 on service error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: AI Error
at /app/src/routes/recipe.routes.test.ts:310:21
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/FlyerCorrectionTool.test.tsx 5/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 9/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 24/27
src/services/flyerDataTransformer.test.ts 10/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 40 passed (242)
Tests 2 failed | 1633 passed | 125 skipped (1783)
Start at 07:51:47
Duration 105.20s
stdout | src/components/FlyerCorrectionTool.test.tsx > FlyerCorrectionTool > should call rescanImageArea with correct parameters and show success
--- [TEST LOG] ---: Image fetch complete.
--- [TEST LOG] ---: Mocking image dimensions.
--- [TEST LOG] ---: Simulating user drawing a rectangle...
--- [TEST LOG] ---: Rectangle drawn.
--- [TEST LOG] ---: 2. Clicking "Extract Store Name" button.
--- [TEST LOG] ---: 3. Awaiting "Processing..." loading state.
 
stdout | src/components/FlyerCorrectionTool.test.tsx > FlyerCorrectionTool > should call rescanImageArea with correct parameters and show success
--- [TEST LOG] ---: 3a. SUCCESS: Found "Processing..." text.
--- [TEST LOG] ---: 4. Awaiting API call verification...
--- [TEST LOG] ---: 4a. waitFor check: Checking rescanImageArea call...
 
stdout | src/components/FlyerCorrectionTool.test.tsx > FlyerCorrectionTool > should call rescanImageArea with correct parameters and show success
--- [TEST LOG] ---: 4b. SUCCESS: API call verified.
--- [TEST LOG] ---: 5. Manually resolving the API promise inside act()...
--- [TEST LOG] ---: 5a. Calling resolveRescanPromise...
 
stdout | src/components/FlyerCorrectionTool.test.tsx > FlyerCorrectionTool > should call rescanImageArea with correct parameters and show success
--- [TEST LOG] ---: 5b. Promise resolved and act() block finished.
--- [TEST LOG] ---: 6. Awaiting final state assertions...
--- [TEST LOG] ---: 6a. waitFor check: Verifying notifications and callbacks...
 
stdout | src/components/FlyerCorrectionTool.test.tsx > FlyerCorrectionTool > should call rescanImageArea with correct parameters and show success
--- [TEST LOG] ---: 6b. SUCCESS: Final state verified.
 
 
src/components/FlyerCorrectionTool.test.tsx 6/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 9/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 24/27
src/services/flyerDataTransformer.test.ts 10/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 40 passed (242)
Tests 2 failed | 1634 passed | 125 skipped (1783)
Start at 07:51:47
Duration 105.70s
 
src/components/FlyerCorrectionTool.test.tsx 7/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 9/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 26/27
src/services/flyerDataTransformer.test.ts 10/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 40 passed (242)
Tests 2 failed | 1637 passed | 125 skipped (1783)
Start at 07:51:47
Duration 105.80s
src/routes/recipe.routes.test.ts (27 tests) 1461ms
should block requests after exceeding the limit when the opt-in header is sent 387ms
stdout | src/components/FlyerCorrectionTool.test.tsx > FlyerCorrectionTool > should show an error if rescan is attempted before image is loaded
TEST: Starting "should show an error if rescan is attempted before image is loaded"
TEST: fetch called, returning pending promise to simulate loading
TEST: fetch called, returning pending promise to simulate loading
TEST: fetch called, returning pending promise to simulate loading
TEST: Drawing selection to enable button
TEST: Button is enabled, clicking now...
TEST: Checking for error notification
 
 
src/components/FlyerCorrectionTool.test.tsx 8/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 9/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 27/27
src/services/flyerDataTransformer.test.ts 10/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 41 passed (242)
Tests 2 failed | 1639 passed | 125 skipped (1783)
Start at 07:51:47
Duration 105.90s
stdout | src/components/FlyerCorrectionTool.test.tsx > FlyerCorrectionTool > should handle non-standard API errors during rescan
TEST: Starting "should handle non-standard API errors during rescan"
 
 
src/components/FlyerCorrectionTool.test.tsx 9/13
src/features/shopping/ShoppingList.test.tsx [queued]
src/pages/admin/components/AuthView.test.tsx 9/21
src/routes/flyer.routes.test.ts [queued]
src/routes/recipe.routes.test.ts 27/27
src/services/flyerDataTransformer.test.ts 10/10
src/tests/integration/auth.integration.test.ts [queued]
 
Test Files 8 failed | 41 passed (242)
Tests 2 failed | 1640 passed | 125 skipped (1783)
Start at 07:51:47
Duration 106.02s
 
src/components/FlyerCorrectionTool.test.tsx 9/13
src/features/shopping/ShoppingList.test.tsx 0/23
src/pages/admin/components/AuthView.test.tsx 10/21
src/routes/flyer.routes.test.ts [queued]
src/tests/integration/auth.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 41 passed (242)
Tests 2 failed | 1641 passed | 125 skipped (1806)
Start at 07:51:47
Duration 107.34s
stdout | src/components/FlyerCorrectionTool.test.tsx > FlyerCorrectionTool > should handle non-standard API errors during rescan
TEST: Clicking button to trigger API error
 
stdout | src/components/FlyerCorrectionTool.test.tsx > FlyerCorrectionTool > should handle API failure response (ok: false) correctly
TEST: Starting "should handle API failure response (ok: false) correctly"
 
stdout | src/components/FlyerCorrectionTool.test.tsx > FlyerCorrectionTool > should redraw the canvas when the image loads
TEST: Starting "should redraw the canvas when the image loads"
 
 
src/components/FlyerCorrectionTool.test.tsx 13/13
src/features/shopping/ShoppingList.test.tsx 0/23
src/pages/admin/components/AuthView.test.tsx 12/21
src/routes/flyer.routes.test.ts [queued]
src/tests/integration/auth.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 41 passed (242)
Tests 2 failed | 1647 passed | 125 skipped (1806)
Start at 07:51:47
Duration 107.44s
src/components/FlyerCorrectionTool.test.tsx (13 tests) 5540ms
should render correctly when isOpen is true 1306ms
should enable extraction buttons after a selection is made 676ms
should stop drawing when the mouse leaves the canvas 389ms
should call rescanImageArea with correct parameters and show success 652ms
should show an error if rescan is attempted before image is loaded 424ms
should handle non-standard API errors during rescan 523ms
should handle API failure response (ok: false) correctly 435ms
should call rescanImageArea with "dates" type when Extract Sale Dates is clicked 434ms
 
src/components/FlyerCorrectionTool.test.tsx 13/13
src/features/shopping/ShoppingList.test.tsx 0/23
src/pages/admin/components/AuthView.test.tsx 13/21
src/routes/flyer.routes.test.ts [queued]
src/tests/integration/auth.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 42 passed (242)
Tests 2 failed | 1648 passed | 125 skipped (1806)
Start at 07:51:47
Duration 108.11s
 
src/components/FlyerCorrectionTool.test.tsx 13/13
src/features/shopping/ShoppingList.test.tsx 0/23
src/pages/admin/components/AuthView.test.tsx 13/21
src/routes/flyer.routes.test.ts [queued]
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 42 passed (242)
Tests 2 failed | 1648 passed | 125 skipped (1829)
Start at 07:51:47
Duration 108.31s
 
src/features/shopping/ShoppingList.test.tsx 1/23
src/pages/admin/components/AuthView.test.tsx 13/21
src/routes/flyer.routes.test.ts 0/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 42 passed (242)
Tests 2 failed | 1649 passed | 125 skipped (1860)
Start at 07:51:47
Duration 108.60s
 
src/features/shopping/ShoppingList.test.tsx 1/23
src/pages/admin/components/AuthView.test.tsx 13/21
src/routes/flyer.routes.test.ts 0/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 42 passed (242)
Tests 2 failed | 1649 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.05s
stdout | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > GET / > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
stderr | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > GET / > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/flyer.routes.test.ts:76:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
stdout | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > GET /:id > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
stderr | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > GET /:id > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/flyer.routes.test.ts:130:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
stdout | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > GET /:id/items > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
stderr | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > GET /:id/items > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/flyer.routes.test.ts:162:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
stdout | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > POST /items/batch-fetch > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
stderr | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > POST /items/batch-fetch > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/flyer.routes.test.ts:205:72
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
stdout | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > POST /items/batch-count > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
stderr | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > POST /items/batch-count > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/flyer.routes.test.ts:244:74
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
stdout | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > POST /items/:itemId/track > should return 500 if the tracking function throws synchronously
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
stderr | src/routes/flyer.routes.test.ts > Flyer Routes (/api/flyers) > POST /items/:itemId/track > should return 500 if the tracking function throws synchronously
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Sync error in tracking
at /app/src/routes/flyer.routes.test.ts:314:25
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
src/routes/flyer.routes.test.ts (31 tests) 1152ms
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 15/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1685 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.26s
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 17/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1687 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.68s
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 17/21
src/routes/flyer.routes.test.ts 31/31
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1687 passed | 125 skipped (1860)
Start at 07:51:47
Duration 110.98s
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 17/21
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1687 passed | 125 skipped (1860)
Start at 07:51:47
Duration 111.18s
 
src/features/shopping/ShoppingList.test.tsx 4/23
src/pages/admin/components/AuthView.test.tsx 17/21
src/services/barcodeService.server.test.ts [queued]
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1687 passed | 125 skipped (1860)
Start at 07:51:47
Duration 111.96s
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 5/23
src/pages/admin/components/AuthView.test.tsx 17/21
src/services/barcodeService.server.test.ts [queued]
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1688 passed | 125 skipped (1860)
Start at 07:51:47
Duration 112.09s
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 7/23
src/pages/admin/components/AuthView.test.tsx 19/21
src/services/barcodeService.server.test.ts [queued]
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts [queued]
 
Test Files 8 failed | 43 passed (242)
Tests 2 failed | 1692 passed | 125 skipped (1860)
Start at 07:51:47
Duration 113.34s
src/pages/admin/components/AuthView.test.tsx (21 tests) 15117ms
should render the Sign In form by default 3336ms
should call loginUser and onLoginSuccess on successful login 555ms
should switch to the registration form 920ms
should call registerUser on successful registration 403ms
should allow registration without providing a full name 446ms
should display an error on failed registration 482ms
should display an error on non-OK registration response 588ms
should switch to the reset password form 903ms
should call requestPasswordReset and show success message 676ms
should display an error on failed password reset request 586ms
should display an error on non-OK password reset response 699ms
should switch back to sign in from forgot password 1126ms
should set window.location.href for Google OAuth 515ms
should set window.location.href for GitHub OAuth 704ms
should show loading state during login submission 1445ms
should show loading state during password reset submission 329ms
should show loading state during registration submission 793ms
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 9/23
src/pages/admin/components/AuthView.test.tsx 21/21
src/services/barcodeService.server.test.ts [queued]
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 44 passed (242)
Tests 2 failed | 1696 passed | 125 skipped (1862)
Start at 07:51:47
Duration 113.51s
stderr | src/features/shopping/ShoppingList.test.tsx > ShoppingListComponent (in shopping feature) > should call generateSpeechFromText when "Read aloud" is clicked
[vitest] The vi.fn() mock did not use 'function' or 'class' in its implementation, see https://vitest.dev/api/vi#vi-spyon for examples.
 
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 10/23
src/pages/admin/components/AuthView.test.tsx 21/21
src/services/barcodeService.server.test.ts [queued]
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 44 passed (242)
Tests 2 failed | 1697 passed | 125 skipped (1862)
Start at 07:51:47
Duration 114.19s
Not implemented: Window's alert() method
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 13/23
src/services/barcodeService.server.test.ts 0/35
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 44 passed (242)
Tests 2 failed | 1700 passed | 125 skipped (1897)
Start at 07:51:47
Duration 114.47s
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 13/23
src/services/barcodeService.server.test.ts 1/35
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 44 passed (242)
Tests 2 failed | 1701 passed | 125 skipped (1897)
Start at 07:51:47
Duration 115.00s
src/services/barcodeService.server.test.ts (35 tests) 242ms
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 14/23
src/services/barcodeService.server.test.ts 35/35
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts [queued]
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 45 passed (242)
Tests 2 failed | 1736 passed | 125 skipped (1897)
Start at 07:51:47
Duration 115.25s
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 15/23
src/services/barcodeService.server.test.ts 35/35
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 45 passed (242)
Tests 2 failed | 1737 passed | 125 skipped (1909)
Start at 07:51:47
Duration 115.83s
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 16/23
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 45 passed (242)
Tests 2 failed | 1738 passed | 125 skipped (1909)
Start at 07:51:47
Duration 116.18s
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 16/23
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 45 passed (242)
Tests 2 failed | 1738 passed | 125 skipped (1909)
Start at 07:51:47
Duration 116.28s
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 17/23
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 45 passed (242)
Tests 2 failed | 1739 passed | 125 skipped (1909)
Start at 07:51:47
Duration 117.11s
Not implemented: Window's alert() method
stderr | src/features/shopping/ShoppingList.test.tsx > ShoppingListComponent (in shopping feature) > Loading States and Disabled States > should show a loading spinner while reading the list aloud
[vitest] The vi.fn() mock did not use 'function' or 'class' in its implementation, see https://vitest.dev/api/vi#vi-spyon for examples.
 
 
src/features/charts/PriceHistoryChart.test.tsx [queued]
src/features/shopping/ShoppingList.test.tsx 18/23
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 45 passed (242)
Tests 2 failed | 1740 passed | 125 skipped (1909)
Start at 07:51:47
Duration 117.21s
 
src/features/charts/PriceHistoryChart.test.tsx 0/13
src/features/shopping/ShoppingList.test.tsx 18/23
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 45 passed (242)
Tests 2 failed | 1740 passed | 125 skipped (1922)
Start at 07:51:47
Duration 117.42s
 
src/features/charts/PriceHistoryChart.test.tsx 1/13
src/features/shopping/ShoppingList.test.tsx 18/23
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 45 passed (242)
Tests 2 failed | 1741 passed | 125 skipped (1922)
Start at 07:51:47
Duration 117.92s
 
src/features/charts/PriceHistoryChart.test.tsx 2/13
src/features/shopping/ShoppingList.test.tsx 20/23
src/tests/integration/auth.integration.test.ts 0/23
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 45 passed (242)
Tests 2 failed | 1744 passed | 125 skipped (1922)
Start at 07:51:47
Duration 118.03s
 
src/features/charts/PriceHistoryChart.test.tsx 3/13
src/features/shopping/ShoppingList.test.tsx 20/23
src/tests/integration/auth.integration.test.ts 1/23
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 8 failed | 45 passed (242)
Tests 2 failed | 1745 passed | 126 skipped (1922)
Start at 07:51:47
Duration 118.23s
src/tests/integration/auth.integration.test.ts (23 tests | 23 skipped) 10026ms
should successfully log in a registered user
should fail to log in with an incorrect password
should fail to log in with a non-existent email
should allow registration with an empty string for avatar_url and save it as null
should successfully refresh an access token using a refresh token cookie
should fail to refresh an access token with an invalid refresh token cookie
should successfully log out and clear the refresh token cookie
should block requests to /forgot-password after exceeding the limit
should reject empty Bearer token
should reject token without dots (invalid JWT structure)
should reject token with only 2 parts (missing signature)
should reject token with invalid signature
should accept lowercase "bearer" scheme (case-insensitive)
should reject Basic auth scheme
should reject missing Authorization header
should return same error for wrong password and non-existent user
should return same response for forgot-password on existing and non-existing email
should return validation error for missing login fields
should reject reset with invalid token
should reject duplicate email registration
should reject invalid email format
should reject weak password
should return error when refresh token cookie is missing
 
src/features/charts/PriceHistoryChart.test.tsx 4/13
src/features/shopping/ShoppingList.test.tsx 21/23
src/services/db/budget.db.test.ts [queued]
src/tests/integration/auth.integration.test.ts 23/23
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 9 failed | 45 passed (242)
Tests 2 failed | 1747 passed | 148 skipped (1922)
Start at 07:51:47
Duration 118.36s
src/features/shopping/ShoppingList.test.tsx (23 tests) 12198ms
should render correctly when authenticated with an active list 2234ms
should call onSelectList when changing the list in the dropdown 301ms
should call onCreateList when creating a new list 1364ms
should not call onCreateList if prompt is cancelled 1112ms
should call onDeleteList when deleting a list after confirmation 661ms
should not call onDeleteList if deletion is not confirmed 418ms
should call onAddItem when adding a custom item 679ms
should call onUpdateItem when toggling an item checkbox 372ms
should disable the "Add" button for custom items when input is empty or whitespace 940ms
should show a loading spinner while adding a custom item 974ms
should show a loading spinner while creating a new list 924ms
should not call onCreateList if the prompt returns an empty or whitespace string 708ms
should render an item gracefully if it has no custom name or master item name 352ms
src/features/charts/PriceHistoryChart.test.tsx (13 tests) 1264ms
should render a placeholder when there are no watched items 333ms
 
src/features/charts/PriceHistoryChart.test.tsx 13/13
src/features/shopping/ShoppingList.test.tsx 23/23
src/services/db/budget.db.test.ts [queued]
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 9 failed | 47 passed (242)
Tests 2 failed | 1758 passed | 148 skipped (1922)
Start at 07:51:47
Duration 119.28s
 
src/features/charts/PriceHistoryChart.test.tsx 13/13
src/layouts/MainLayout.test.tsx [queued]
src/services/db/budget.db.test.ts [queued]
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 9 failed | 47 passed (242)
Tests 2 failed | 1758 passed | 148 skipped (1922)
Start at 07:51:47
Duration 119.79s
 
src/layouts/MainLayout.test.tsx [queued]
src/services/db/budget.db.test.ts [queued]
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 9 failed | 47 passed (242)
Tests 2 failed | 1758 passed | 148 skipped (1922)
Start at 07:51:47
Duration 120.55s
 
src/layouts/MainLayout.test.tsx [queued]
src/services/db/budget.db.test.ts [queued]
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 9 failed | 47 passed (242)
Tests 2 failed | 1758 passed | 148 skipped (1922)
Start at 07:51:47
Duration 121.64s
 
src/layouts/MainLayout.test.tsx [queued]
src/services/db/budget.db.test.ts [queued]
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 9 failed | 47 passed (242)
Tests 2 failed | 1758 passed | 148 skipped (1922)
Start at 07:51:47
Duration 123.09s
 
src/features/voice-assistant/VoiceAssistant.test.tsx [queued]
src/hooks/useShoppingLists.test.tsx [queued]
src/layouts/MainLayout.test.tsx [queued]
src/services/db/budget.db.test.ts 0/17
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
 
Test Files 9 failed | 47 passed (242)
Tests 2 failed | 1758 passed | 148 skipped (1939)
Start at 07:51:47
Duration 123.19s
src/services/db/budget.db.test.ts (17 tests) 113ms
 
src/features/voice-assistant/VoiceAssistant.test.tsx [queued]
src/hooks/useShoppingLists.test.tsx [queued]
src/layouts/MainLayout.test.tsx [queued]
src/services/db/budget.db.test.ts 17/17
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 0/2
src/utils/pdfConverter.test.ts [queued]
 
Test Files 9 failed | 48 passed (242)
Tests 2 failed | 1775 passed | 148 skipped (1939)
Start at 07:51:47
Duration 124.34s
src/tests/integration/gamification.integration.test.ts (2 tests | 2 skipped) 10199ms
should award the "First Upload" achievement after a user successfully uploads and processes their first flyer
should process a legacy upload and save fully qualified URLs to the database
 
src/features/voice-assistant/VoiceAssistant.test.tsx [queued]
src/hooks/useShoppingLists.test.tsx [queued]
src/layouts/MainLayout.test.tsx [queued]
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 2/2
src/utils/pdfConverter.test.ts [queued]
 
Test Files 10 failed | 48 passed (242)
Tests 2 failed | 1775 passed | 150 skipped (1939)
Start at 07:51:47
Duration 125.15s
 
src/features/voice-assistant/VoiceAssistant.test.tsx [queued]
src/hooks/useShoppingLists.test.tsx [queued]
src/layouts/MainLayout.test.tsx [queued]
src/tests/integration/data-integrity.integration.test.ts 0/12
src/tests/integration/gamification.integration.test.ts 2/2
src/utils/pdfConverter.test.ts [queued]
 
Test Files 10 failed | 48 passed (242)
Tests 2 failed | 1775 passed | 150 skipped (1939)
Start at 07:51:47
Duration 125.25s
 
src/features/voice-assistant/VoiceAssistant.test.tsx [queued]
src/hooks/useShoppingLists.test.tsx [queued]
src/layouts/MainLayout.test.tsx [queued]
src/tests/integration/data-integrity.integration.test.ts 1/12
src/utils/pdfConverter.test.ts [queued]
 
Test Files 10 failed | 48 passed (242)
Tests 2 failed | 1775 passed | 151 skipped (1939)
Start at 07:51:47
Duration 126.26s
src/tests/integration/data-integrity.integration.test.ts (12 tests | 12 skipped) 10026ms
should cascade delete shopping lists when user is deleted
should cascade delete budgets when user is deleted
should cascade delete shopping list items when list is deleted
should prevent admin from deleting their own account via admin route
should return error when adding item with invalid shopping list ID
should enforce FK constraints at database level
should return CONFLICT for duplicate email registration
should reject budget with invalid period via API
should reject budget with negative amount via API
should enforce CHECK constraints at database level
should require budget name via API
should rollback partial inserts on constraint violation
 
src/features/voice-assistant/VoiceAssistant.test.tsx [queued]
src/hooks/useShoppingLists.test.tsx [queued]
src/layouts/MainLayout.test.tsx [queued]
src/tests/integration/data-integrity.integration.test.ts 12/12
src/utils/pdfConverter.test.ts [queued]
 
Test Files 11 failed | 48 passed (242)
Tests 2 failed | 1775 passed | 162 skipped (1939)
Start at 07:51:47
Duration 127.43s
 
src/features/voice-assistant/VoiceAssistant.test.tsx 0/14
src/hooks/useShoppingLists.test.tsx [queued]
src/layouts/MainLayout.test.tsx [queued]
src/utils/pdfConverter.test.ts [queued]
 
Test Files 11 failed | 48 passed (242)
Tests 2 failed | 1775 passed | 162 skipped (1953)
Start at 07:51:47
Duration 127.53s
 
src/features/voice-assistant/VoiceAssistant.test.tsx 0/14
src/hooks/useShoppingLists.test.tsx [queued]
src/layouts/MainLayout.test.tsx [queued]
src/services/db/notification.db.test.ts [queued]
src/tests/integration/recipe.integration.test.ts [queued]
src/utils/pdfConverter.test.ts [queued]
 
Test Files 11 failed | 48 passed (242)
Tests 2 failed | 1775 passed | 162 skipped (1953)
Start at 07:51:47
Duration 128.88s
 
src/features/voice-assistant/VoiceAssistant.test.tsx 0/14
src/hooks/useShoppingLists.test.tsx 0/21
src/layouts/MainLayout.test.tsx [queued]
src/services/db/notification.db.test.ts [queued]
src/tests/integration/recipe.integration.test.ts [queued]
src/utils/pdfConverter.test.ts 0/11
 
Test Files 11 failed | 48 passed (242)
Tests 2 failed | 1775 passed | 162 skipped (1985)
Start at 07:51:47
Duration 129.27s
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/features/voice-assistant/VoiceAssistant.test.tsx 1/14
src/hooks/useShoppingLists.test.tsx 13/21
src/layouts/MainLayout.test.tsx [queued]
src/services/db/notification.db.test.ts [queued]
src/tests/integration/recipe.integration.test.ts [queued]
src/utils/pdfConverter.test.ts 0/11
 
Test Files 11 failed | 48 passed (242)
Tests 2 failed | 1789 passed | 162 skipped (1985)
Start at 07:51:47
Duration 129.42s
src/hooks/useShoppingLists.test.tsx (21 tests) 406ms
src/utils/pdfConverter.test.ts (11 tests) 100ms
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/features/voice-assistant/VoiceAssistant.test.tsx 3/14
src/hooks/useShoppingLists.test.tsx 21/21
src/layouts/MainLayout.test.tsx [queued]
src/services/db/notification.db.test.ts [queued]
src/tests/integration/recipe.integration.test.ts [queued]
src/utils/pdfConverter.test.ts 11/11
 
Test Files 11 failed | 50 passed (242)
Tests 2 failed | 1810 passed | 162 skipped (1985)
Start at 07:51:47
Duration 129.87s
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/features/voice-assistant/VoiceAssistant.test.tsx 6/14
src/hooks/useShoppingLists.test.tsx 21/21
src/layouts/MainLayout.test.tsx [queued]
src/services/db/notification.db.test.ts [queued]
src/tests/integration/recipe.integration.test.ts [queued]
src/utils/pdfConverter.test.ts 11/11
 
Test Files 11 failed | 50 passed (242)
Tests 2 failed | 1813 passed | 162 skipped (1985)
Start at 07:51:47
Duration 130.17s
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/features/voice-assistant/VoiceAssistant.test.tsx 8/14
src/hooks/useShoppingLists.test.tsx 21/21
src/layouts/MainLayout.test.tsx [queued]
src/services/db/notification.db.test.ts [queued]
src/tests/integration/recipe.integration.test.ts [queued]
src/utils/pdfConverter.test.ts 11/11
 
Test Files 11 failed | 50 passed (242)
Tests 2 failed | 1815 passed | 162 skipped (1985)
Start at 07:51:47
Duration 130.29s
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/features/voice-assistant/VoiceAssistant.test.tsx 9/14
src/layouts/MainLayout.test.tsx 0/16
src/services/db/notification.db.test.ts 0/22
src/tests/integration/edge-cases.integration.test.ts [queued]
src/tests/integration/recipe.integration.test.ts [queued]
 
Test Files 11 failed | 50 passed (242)
Tests 2 failed | 1816 passed | 162 skipped (2023)
Start at 07:51:47
Duration 130.81s
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/features/voice-assistant/VoiceAssistant.test.tsx 10/14
src/layouts/MainLayout.test.tsx 1/16
src/services/db/notification.db.test.ts 0/22
src/tests/integration/edge-cases.integration.test.ts [queued]
src/tests/integration/recipe.integration.test.ts [queued]
 
Test Files 11 failed | 50 passed (242)
Tests 2 failed | 1818 passed | 162 skipped (2023)
Start at 07:51:47
Duration 131.23s
src/layouts/MainLayout.test.tsx (16 tests) 508ms
src/services/db/notification.db.test.ts (22 tests) 88ms
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/features/voice-assistant/VoiceAssistant.test.tsx 14/14
src/layouts/MainLayout.test.tsx 16/16
src/services/db/notification.db.test.ts 22/22
src/tests/integration/edge-cases.integration.test.ts [queued]
src/tests/integration/recipe.integration.test.ts [queued]
 
Test Files 11 failed | 52 passed (242)
Tests 2 failed | 1859 passed | 162 skipped (2023)
Start at 07:51:47
Duration 131.49s
src/features/voice-assistant/VoiceAssistant.test.tsx (14 tests) 3449ms
should render correctly when isOpen is true 1088ms
should call handleClose when mic is clicked while listening 342ms
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/features/voice-assistant/VoiceAssistant.test.tsx 14/14
src/layouts/MainLayout.test.tsx 16/16
src/services/db/notification.db.test.ts 22/22
src/tests/integration/edge-cases.integration.test.ts [queued]
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 11 failed | 53 passed (242)
Tests 2 failed | 1859 passed | 162 skipped (2036)
Start at 07:51:47
Duration 132.15s
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/receipt-journey.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts [queued]
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 11 failed | 53 passed (242)
Tests 2 failed | 1859 passed | 162 skipped (2036)
Start at 07:51:47
Duration 132.48s
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/receipt-journey.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts [queued]
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 11 failed | 53 passed (242)
Tests 2 failed | 1859 passed | 162 skipped (2036)
Start at 07:51:47
Duration 133.78s
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/hooks/useAuth.test.tsx [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/receipt-journey.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts [queued]
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 11 failed | 53 passed (242)
Tests 2 failed | 1859 passed | 162 skipped (2036)
Start at 07:51:47
Duration 134.49s
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/hooks/useAuth.test.tsx [queued]
src/middleware/errorHandler.test.ts [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/receipt-journey.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts [queued]
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 11 failed | 53 passed (242)
Tests 2 failed | 1859 passed | 162 skipped (2036)
Start at 07:51:47
Duration 134.66s
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/hooks/useAuth.test.tsx [queued]
src/middleware/errorHandler.test.ts [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/receipt-journey.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 11 failed | 53 passed (242)
Tests 2 failed | 1859 passed | 162 skipped (2054)
Start at 07:51:47
Duration 136.33s
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/hooks/useAuth.test.tsx [queued]
src/middleware/errorHandler.test.ts [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/receipt-journey.e2e.test.ts 1/1
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 11 failed | 53 passed (242)
Tests 3 failed | 1859 passed | 162 skipped (2055)
Start at 07:51:47
Duration 136.80s
src/tests/e2e/receipt-journey.e2e.test.ts (1 test | 1 failed) 357ms
× should complete receipt journey: Register -> Upload -> View -> Manage Items -> Add to Inventory 342ms
 
src/features/flyer/AnalysisPanel.test.tsx [queued]
src/hooks/useAuth.test.tsx [queued]
src/middleware/errorHandler.test.ts [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/receipt-journey.e2e.test.ts 1/1
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 12 failed | 53 passed (242)
Tests 3 failed | 1859 passed | 162 skipped (2055)
Start at 07:51:47
Duration 137.40s
stdout | src/features/flyer/AnalysisPanel.test.tsx
DEBUG: Setting up AiAnalysisService mock
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx [queued]
src/middleware/errorHandler.test.ts [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/receipt-journey.e2e.test.ts 1/1
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 12 failed | 53 passed (242)
Tests 3 failed | 1859 passed | 162 skipped (2068)
Start at 07:51:47
Duration 137.77s
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should render tabs and an initial "Generate" button
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx [queued]
src/middleware/errorHandler.test.ts [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/auth.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 12 failed | 53 passed (242)
Tests 3 failed | 1859 passed | 162 skipped (2068)
Start at 07:51:47
Duration 137.88s
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx [queued]
src/middleware/errorHandler.test.ts [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/auth.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 12 failed | 53 passed (242)
Tests 3 failed | 1859 passed | 162 skipped (2068)
Start at 07:51:47
Duration 138.43s
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx [queued]
src/middleware/errorHandler.test.ts [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/auth.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 12 failed | 53 passed (242)
Tests 3 failed | 1859 passed | 162 skipped (2068)
Start at 07:51:47
Duration 139.35s
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx [queued]
src/middleware/errorHandler.test.ts [queued]
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/auth.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 12 failed | 53 passed (242)
Tests 3 failed | 1859 passed | 162 skipped (2068)
Start at 07:51:47
Duration 140.43s
stdout | src/middleware/errorHandler.test.ts > errorHandler Middleware > should return a generic 500 error for a standard Error object
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
stdout | src/middleware/errorHandler.test.ts > errorHandler Middleware > should return a generic 500 error for a standard Error object
[DEBUG] errorHandler.test.ts: Received 500 error response with ID: mocked_random_id
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 0/12
src/middleware/errorHandler.test.ts 1/12
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/auth.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 12 failed | 53 passed (242)
Tests 3 failed | 1860 passed | 162 skipped (2092)
Start at 07:51:47
Duration 140.84s
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 1/12
src/middleware/errorHandler.test.ts 2/12
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/auth.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 12 failed | 53 passed (242)
Tests 3 failed | 1862 passed | 162 skipped (2092)
Start at 07:51:47
Duration 140.94s
stdout | src/middleware/errorHandler.test.ts > errorHandler Middleware > should handle a DatabaseError with a 500 status and a generic message
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
stdout | src/middleware/errorHandler.test.ts > errorHandler Middleware > when NODE_ENV is "production" > should return a generic message with an error ID for a 500 error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 3/12
src/middleware/errorHandler.test.ts 9/12
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/auth.e2e.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 12 failed | 53 passed (242)
Tests 3 failed | 1871 passed | 162 skipped (2092)
Start at 07:51:47
Duration 141.15s
src/middleware/errorHandler.test.ts (12 tests) 618ms
stdout | src/hooks/useAuth.test.tsx > useAuth Hook and AuthProvider > login function > sets token, fetches profile, and updates state on successful login
[TEST-DEBUG] Waiting for initial auth check to complete...
 
stdout | src/hooks/useAuth.test.tsx > useAuth Hook and AuthProvider > login function > sets token, fetches profile, and updates state on successful login
[TEST-DEBUG] Initial auth check complete. Current status: SIGNED_OUT
[TEST-DEBUG] Calling login function...
 
stdout | src/hooks/useAuth.test.tsx > useAuth Hook and AuthProvider > login function > sets token, fetches profile, and updates state on successful login
[TEST-DEBUG] Login function promise resolved.
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 5/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts [queued]
src/tests/e2e/auth.e2e.test.ts 0/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 12 failed | 54 passed (242)
Tests 3 failed | 1876 passed | 162 skipped (2104)
Start at 07:51:47
Duration 141.25s
stdout | src/hooks/useAuth.test.tsx > useAuth Hook and AuthProvider > login function > sets token, fetches profile, and updates state on successful login
[TEST-DEBUG] State immediately after login `act` call: {
userProfile: {
role: 'user',
points: 100,
full_name: 'Test User',
avatar_url: null,
preferences: {},
address_id: null,
created_by: null,
address: null,
created_at: '2026-01-19T07:54:07.918Z',
updated_at: '2026-01-19T07:54:07.918Z',
user: {
user_id: 'user-abc-123',
email: 'test@example.com',
created_at: '2026-01-19T07:54:07.918Z',
updated_at: '2026-01-19T07:54:07.918Z'
}
},
authStatus: 'AUTHENTICATED',
isLoading: false,
login: [AsyncFunction (anonymous)],
logout: [Function (anonymous)],
updateProfile: [Function (anonymous)]
}
[TEST-DEBUG] Checking authStatus in waitFor... Current status: AUTHENTICATED
 
stdout | src/hooks/useAuth.test.tsx > useAuth Hook and AuthProvider > login function > sets token, fetches profile, and updates state on successful login
[TEST-DEBUG] Final state after successful login: {
userProfile: {
role: 'user',
points: 100,
full_name: 'Test User',
avatar_url: null,
preferences: {},
address_id: null,
created_by: null,
address: null,
created_at: '2026-01-19T07:54:07.918Z',
updated_at: '2026-01-19T07:54:07.918Z',
user: {
user_id: 'user-abc-123',
email: 'test@example.com',
created_at: '2026-01-19T07:54:07.918Z',
updated_at: '2026-01-19T07:54:07.918Z'
}
},
authStatus: 'AUTHENTICATED',
isLoading: false,
login: [AsyncFunction (anonymous)],
logout: [Function (anonymous)],
updateProfile: [Function (anonymous)]
}
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 7/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 0/18
src/tests/e2e/auth.e2e.test.ts 0/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 12 failed | 54 passed (242)
Tests 3 failed | 1878 passed | 162 skipped (2122)
Start at 07:51:47
Duration 141.35s
stderr | src/tests/e2e/auth.e2e.test.ts > Authentication E2E Flow
[FATAL] Setup failed. DB might be down. TypeError: Failed to parse URL from /api/auth/register
at node:internal/deps/undici/undici:14900:13
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at createAndLoginUser (/app/src/tests/utils/testHelpers.ts:76:5)
at /app/src/tests/e2e/auth.e2e.test.ts:21:31 {
[cause]: TypeError: Invalid URL
at new URL (node:internal/url:806:29)
at new Request (node:internal/deps/undici/undici:9776:25)
at fetch (node:internal/deps/undici/undici:10505:25)
at fetch (node:internal/deps/undici/undici:14898:10)
at fetch (node:internal/bootstrap/web/exposed-window-or-worker:72:12)
at publicPost (/app/src/services/apiClient.ts:186:10)
at Module.registerUser (/app/src/services/apiClient.ts:829:10)
at createAndLoginUser (/app/src/tests/utils/testHelpers.ts:76:21)
at /app/src/tests/e2e/auth.e2e.test.ts:21:37
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20 {
code: 'ERR_INVALID_URL',
input: '/api/auth/register'
}
}
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 9/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 1/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 54 passed (242)
Tests 3 failed | 1881 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.45s
src/tests/e2e/auth.e2e.test.ts (12 tests | 12 skipped) 227ms
should successfully register a new user
should fail to register a user with a weak password
should fail to register a user with a duplicate email
should successfully log in a registered user
should fail to log in with an incorrect password
should fail to log in with a non-existent email
should be able to access a protected route after logging in
should allow an authenticated user to update their profile
should allow a user to reset their password and log in with the new one
should return a generic success message for a non-existent email to prevent enumeration
should allow an authenticated user to refresh their access token and use it
should fail to refresh with an invalid or missing token
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 9/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 1/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 54 passed (242)
Tests 3 failed | 1881 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.45s
stdout | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /trigger/daily-deal-check > should return 500 if triggering the job fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 2/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1885 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.69s
stderr | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /trigger/daily-deal-check > should return 500 if triggering the job fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Job runner failed
at Object.<anonymous> (/app/src/routes/admin.jobs.routes.test.ts:129:15)
at Object.Mock [as runDailyDealCheck] (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at /app/src/routes/admin.routes.ts:977:28
at Layer.handleRequest (/app/node_modules/router/lib/layer.js:152:17)
at next (/app/node_modules/router/lib/route.js:157:13)
at /app/src/middleware/validation.middleware.ts:43:14
at processTicksAndRejections (node:internal/process/task_queues:95:5)
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 2/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1885 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.69s
src/hooks/useAuth.test.tsx (12 tests) 1035ms
stdout | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /trigger/failing-job > should return 500 if enqueuing the job fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 2/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1885 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.69s
stderr | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /trigger/failing-job > should return 500 if enqueuing the job fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Queue is down
at /app/src/routes/admin.jobs.routes.test.ts:150:55
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 2/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1885 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.69s
stdout | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /trigger/analytics-report > should return 500 if enqueuing the analytics job fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 2/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1885 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.69s
stderr | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /trigger/analytics-report > should return 500 if enqueuing the analytics job fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Queue error
at /app/src/routes/admin.jobs.routes.test.ts:174:9
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 2/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1885 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.69s
stdout | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /trigger/weekly-analytics > should return 500 if enqueuing the weekly analytics job fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 10/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1893 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.79s
stderr | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /trigger/weekly-analytics > should return 500 if enqueuing the weekly analytics job fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Queue error
at /app/src/routes/admin.jobs.routes.test.ts:196:9
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 10/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1893 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.79s
stdout | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /flyers/:flyerId/cleanup > should return 500 if enqueuing the cleanup job fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 10/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1893 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.79s
stderr | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /flyers/:flyerId/cleanup > should return 500 if enqueuing the cleanup job fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Queue is down
at /app/src/routes/admin.jobs.routes.test.ts:218:53
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 10/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1893 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.79s
stdout | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /jobs/:queueName/:jobId/retry > should return 500 if job.retry() throws an error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 13/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1896 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.89s
stderr | src/routes/admin.jobs.routes.test.ts > Admin Job Trigger Routes (/api/admin/trigger) > POST /jobs/:queueName/:jobId/retry > should return 500 if job.retry() throws an error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Cannot retry job
at /app/src/routes/admin.jobs.routes.test.ts:305:69
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/middleware/errorHandler.test.ts 12/12
src/routes/admin.jobs.routes.test.ts 13/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 0/13
 
Test Files 13 failed | 55 passed (242)
Tests 3 failed | 1896 passed | 174 skipped (2122)
Start at 07:51:47
Duration 141.89s
src/routes/admin.jobs.routes.test.ts (18 tests) 591ms
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/hooks/useAuth.test.tsx 12/12
src/routes/admin.jobs.routes.test.ts 18/18
src/tests/e2e/auth.e2e.test.ts 12/12
src/tests/integration/budget.integration.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 1/13
 
Test Files 13 failed | 56 passed (242)
Tests 3 failed | 1901 passed | 175 skipped (2122)
Start at 07:51:47
Duration 142.23s
src/tests/integration/recipe.integration.test.ts (13 tests | 13 skipped) 10049ms
should fetch a single public recipe by its ID
should return 404 for a non-existent recipe ID
should allow an authenticated user to create a new recipe
should allow an authenticated user to update their own recipe
should prevent a user from updating another user's recipe
should allow an authenticated user to delete their own recipe
should prevent a user from deleting another user's recipe
should allow an authenticated user to post a comment on a recipe
should allow an authenticated user to fork a recipe
should allow forking seed recipes (null user_id)
should return comments for a recipe
should return empty array for recipe with no comments
should return a recipe suggestion based on ingredients
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should render tabs and an initial "Generate" button
DEBUG: Starting render for initial state test
DEBUG: AiAnalysisService constructor mocked call
DEBUG: Render finished in 404ms
DEBUG: Asserting tab existence
DEBUG: Initial state test complete
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should render tabs and an initial "Generate" button
DEBUG: afterEach - cleaning up
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should switch tabs and update the generate button text
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
 
src/features/flyer/AnalysisPanel.test.tsx 0/13
src/tests/integration/budget.integration.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
src/tests/integration/recipe.integration.test.ts 13/13
 
Test Files 14 failed | 56 passed (242)
Tests 3 failed | 1901 passed | 187 skipped (2122)
Start at 07:51:47
Duration 143.70s
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should switch tabs and update the generate button text
DEBUG: AiAnalysisService constructor mocked call
 
 
src/features/flyer/AnalysisPanel.test.tsx 1/13
src/tests/integration/budget.integration.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
 
Test Files 14 failed | 56 passed (242)
Tests 3 failed | 1902 passed | 187 skipped (2122)
Start at 07:51:47
Duration 144.15s
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should switch tabs and update the generate button text
DEBUG: afterEach - cleaning up
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should call getQuickInsights and display the result
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should call getQuickInsights and display the result
DEBUG: AiAnalysisService constructor mocked call
 
 
src/features/flyer/AnalysisPanel.test.tsx 2/13
src/tests/integration/budget.integration.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
 
Test Files 14 failed | 56 passed (242)
Tests 3 failed | 1903 passed | 187 skipped (2122)
Start at 07:51:47
Duration 144.37s
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should call getQuickInsights and display the result
DEBUG: afterEach - cleaning up
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display results with sources, and handle sources without a URI
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
 
src/features/flyer/AnalysisPanel.test.tsx 2/13
src/tests/integration/budget.integration.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
 
Test Files 14 failed | 56 passed (242)
Tests 3 failed | 1903 passed | 187 skipped (2122)
Start at 07:51:47
Duration 144.67s
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display results with sources, and handle sources without a URI
DEBUG: AiAnalysisService constructor mocked call
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display results with sources, and handle sources without a URI
DEBUG: afterEach - cleaning up
 
 
src/features/flyer/AnalysisPanel.test.tsx 3/13
src/tests/integration/budget.integration.test.ts [queued]
src/tests/integration/edge-cases.integration.test.ts 0/18
 
Test Files 14 failed | 56 passed (242)
Tests 3 failed | 1904 passed | 187 skipped (2122)
Start at 07:51:47
Duration 145.08s
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show a loading spinner when fetching initial items
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show a loading spinner when fetching initial items
DEBUG: AiAnalysisService constructor mocked call
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show a loading spinner when fetching initial items
DEBUG: afterEach - cleaning up
 
 
src/features/flyer/AnalysisPanel.test.tsx 4/13
src/tests/integration/budget.integration.test.ts 0/20
src/tests/integration/edge-cases.integration.test.ts 0/18
 
Test Files 14 failed | 56 passed (242)
Tests 3 failed | 1905 passed | 187 skipped (2142)
Start at 07:51:47
Duration 145.18s
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show an error if fetching items fails
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show an error if fetching items fails
DEBUG: AiAnalysisService constructor mocked call
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show an error if fetching items fails
DEBUG: afterEach - cleaning up
 
src/tests/integration/edge-cases.integration.test.ts (18 tests | 18 skipped) 10023ms
should reject missing checksum
should reject invalid checksum format (non-hex)
should reject short checksum (not 64 characters)
should require flyerFile field
should accept unicode characters and emojis
should store XSS payloads as-is (frontend must escape)
should reject null bytes in JSON
should return 404 (not 403) for accessing another user's shopping list
should return 404 when trying to update another user's shopping list
should return 404 when trying to delete another user's shopping list
should safely handle SQL injection in query params
should safely handle SQL injection in search params
should return 404 for non-existent resources with clear message
should return validation error for malformed JSON body
should return validation error for missing required fields
should return validation error for invalid data types
should handle concurrent writes without data loss
should handle concurrent reads without errors
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show a loading spinner during analysis
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
 
src/features/flyer/AnalysisPanel.test.tsx 4/13
src/services/db/errors.db.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 15 failed | 56 passed (242)
Tests 3 failed | 1905 passed | 205 skipped (2142)
Start at 07:51:47
Duration 145.38s
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show a loading spinner during analysis
DEBUG: AiAnalysisService constructor mocked call
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show a loading spinner during analysis
DEBUG: afterEach - cleaning up
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display an error message if analysis fails
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
 
src/features/flyer/AnalysisPanel.test.tsx 6/13
src/services/db/errors.db.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 15 failed | 56 passed (242)
Tests 3 failed | 1907 passed | 205 skipped (2142)
Start at 07:51:47
Duration 146.10s
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display an error message if analysis fails
DEBUG: AiAnalysisService constructor mocked call
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display an error message if analysis fails
DEBUG: afterEach - cleaning up
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should handle the image generation flow
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
 
src/config/env.test.ts [queued]
src/features/flyer/AnalysisPanel.test.tsx 7/13
src/services/db/errors.db.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 15 failed | 56 passed (242)
Tests 3 failed | 1908 passed | 205 skipped (2142)
Start at 07:51:47
Duration 146.20s
 
src/config/env.test.ts [queued]
src/features/flyer/AnalysisPanel.test.tsx 7/13
src/services/db/errors.db.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
src/utils/apiResponse.test.ts [queued]
 
Test Files 15 failed | 56 passed (242)
Tests 3 failed | 1908 passed | 205 skipped (2142)
Start at 07:51:47
Duration 147.50s
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should handle the image generation flow
DEBUG: AiAnalysisService constructor mocked call
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should handle the image generation flow
DEBUG: afterEach - cleaning up
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should not show sources for non-search analysis types
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should not show sources for non-search analysis types
DEBUG: AiAnalysisService constructor mocked call
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should not show sources for non-search analysis types
DEBUG: afterEach - cleaning up
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display sources for Plan Trip analysis type
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display sources for Plan Trip analysis type
DEBUG: AiAnalysisService constructor mocked call
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display sources for Plan Trip analysis type
DEBUG: afterEach - cleaning up
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display sources for Compare Prices analysis type
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display sources for Compare Prices analysis type
DEBUG: AiAnalysisService constructor mocked call
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should display sources for Compare Prices analysis type
DEBUG: afterEach - cleaning up
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show a loading spinner when loading watched items
DEBUG: beforeEach setup start
DEBUG: beforeEach setup complete
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show a loading spinner when loading watched items
DEBUG: AiAnalysisService constructor mocked call
 
stdout | src/features/flyer/AnalysisPanel.test.tsx > AnalysisPanel > should show a loading spinner when loading watched items
DEBUG: afterEach - cleaning up
 
 
src/config/env.test.ts [queued]
src/features/flyer/AnalysisPanel.test.tsx 12/13
src/routes/store.routes.test.ts [queued]
src/services/db/errors.db.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
src/utils/apiResponse.test.ts [queued]
 
Test Files 15 failed | 56 passed (242)
Tests 3 failed | 1913 passed | 205 skipped (2142)
Start at 07:51:47
Duration 148.29s
src/features/flyer/AnalysisPanel.test.tsx (13 tests) 9917ms
should render tabs and an initial "Generate" button 4844ms
should switch tabs and update the generate button text 1548ms
should display results with sources, and handle sources without a URI 645ms
should handle the image generation flow 915ms
should display sources for Plan Trip analysis type 541ms
should display sources for Compare Prices analysis type 514ms
 
src/config/env.test.ts [queued]
src/features/flyer/AnalysisPanel.test.tsx 13/13
src/routes/store.routes.test.ts [queued]
src/services/db/errors.db.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
src/utils/apiResponse.test.ts [queued]
 
Test Files 15 failed | 57 passed (242)
Tests 3 failed | 1914 passed | 205 skipped (2142)
Start at 07:51:47
Duration 148.48s
 
src/config/env.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/errors.db.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
src/utils/apiResponse.test.ts [queued]
 
Test Files 15 failed | 57 passed (242)
Tests 3 failed | 1914 passed | 205 skipped (2142)
Start at 07:51:47
Duration 150.01s
 
src/config/env.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/errors.db.test.ts 0/31
src/services/queueService.server.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
src/utils/apiResponse.test.ts 1/33
 
Test Files 15 failed | 57 passed (242)
Tests 3 failed | 1915 passed | 205 skipped (2206)
Start at 07:51:47
Duration 150.13s
src/services/db/errors.db.test.ts (31 tests) 134ms
 
src/config/env.test.ts 0/36
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts [queued]
src/tests/e2e/budget-journey.e2e.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
src/utils/apiResponse.test.ts 10/33
 
Test Files 15 failed | 58 passed (242)
Tests 3 failed | 1955 passed | 205 skipped (2242)
Start at 07:51:47
Duration 150.27s
src/utils/apiResponse.test.ts (33 tests) 231ms
 
src/config/env.test.ts 0/36
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts [queued]
src/tests/e2e/budget-journey.e2e.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 15 failed | 59 passed (242)
Tests 3 failed | 1978 passed | 205 skipped (2242)
Start at 07:51:47
Duration 152.07s
 
src/config/env.test.ts 16/36
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts [queued]
src/tests/e2e/budget-journey.e2e.test.ts [queued]
src/tests/e2e/deals-journey.e2e.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 15 failed | 59 passed (242)
Tests 3 failed | 1994 passed | 205 skipped (2242)
Start at 07:51:47
Duration 152.23s
 
src/config/env.test.ts 26/36
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts [queued]
src/tests/e2e/budget-journey.e2e.test.ts [queued]
src/tests/e2e/deals-journey.e2e.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 15 failed | 59 passed (242)
Tests 3 failed | 2004 passed | 205 skipped (2242)
Start at 07:51:47
Duration 152.82s
src/config/env.test.ts (36 tests) 2422ms
should parse valid configuration with all required fields 1194ms
 
src/config/env.test.ts 36/36
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts [queued]
src/tests/e2e/budget-journey.e2e.test.ts [queued]
src/tests/e2e/deals-journey.e2e.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 15 failed | 60 passed (242)
Tests 3 failed | 2014 passed | 205 skipped (2242)
Start at 07:51:47
Duration 153.08s
 
src/config/env.test.ts 36/36
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts 0/9
src/tests/e2e/budget-journey.e2e.test.ts [queued]
src/tests/e2e/deals-journey.e2e.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 15 failed | 60 passed (242)
Tests 3 failed | 2014 passed | 205 skipped (2251)
Start at 07:51:47
Duration 153.50s
 
src/pages/VoiceLabPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts 0/9
src/tests/e2e/budget-journey.e2e.test.ts [queued]
src/tests/e2e/deals-journey.e2e.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 15 failed | 60 passed (242)
Tests 3 failed | 2014 passed | 205 skipped (2251)
Start at 07:51:47
Duration 153.75s
 
src/pages/VoiceLabPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts 0/9
src/tests/e2e/budget-journey.e2e.test.ts [queued]
src/tests/e2e/deals-journey.e2e.test.ts [queued]
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 15 failed | 60 passed (242)
Tests 3 failed | 2014 passed | 205 skipped (2251)
Start at 07:51:47
Duration 154.27s
 
src/pages/VoiceLabPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts 0/9
src/tests/e2e/budget-journey.e2e.test.ts 1/1
src/tests/e2e/deals-journey.e2e.test.ts 0/1
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 15 failed | 60 passed (242)
Tests 4 failed | 2014 passed | 205 skipped (2253)
Start at 07:51:47
Duration 154.70s
src/tests/e2e/budget-journey.e2e.test.ts (1 test | 1 failed) 158ms
× should complete budget journey: Register -> Create Budget -> Track Spending -> Update -> Delete 152ms
src/tests/e2e/deals-journey.e2e.test.ts (1 test | 1 failed) 164ms
× should complete deals journey: Register -> Watch Items -> View Prices -> Check Deals 155ms
 
src/features/shopping/WatchedItemsList.test.tsx [queued]
src/pages/VoiceLabPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts 0/9
src/tests/e2e/deals-journey.e2e.test.ts 1/1
src/tests/integration/budget.integration.test.ts 0/20
 
Test Files 17 failed | 60 passed (242)
Tests 5 failed | 2014 passed | 205 skipped (2253)
Start at 07:51:47
Duration 155.09s
src/tests/integration/budget.integration.test.ts (20 tests | 20 skipped) 10010ms
should fetch budgets for the authenticated user
should return 401 if user is not authenticated
should allow an authenticated user to create a new budget
should return 400 for invalid budget data
should return 401 if user is not authenticated
should reject period="yearly" (only weekly/monthly allowed)
should reject negative amount_cents
should reject invalid date format
should require name field
should allow an authenticated user to update their own budget
should return 404 when updating a non-existent budget
should return 400 when no update fields are provided
should return 401 if user is not authenticated
should allow an authenticated user to delete their own budget
should return 404 when deleting a non-existent budget
should return 401 if user is not authenticated
should return spending analysis for the authenticated user
should return 400 for invalid date format
should return 400 when required query params are missing
should return 401 if user is not authenticated
 
src/features/shopping/WatchedItemsList.test.tsx [queued]
src/pages/VoiceLabPage.test.tsx 0/10
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts 0/9
src/tests/e2e/deals-journey.e2e.test.ts 1/1
src/tests/integration/budget.integration.test.ts 20/20
 
Test Files 18 failed | 60 passed (242)
Tests 5 failed | 2014 passed | 225 skipped (2263)
Start at 07:51:47
Duration 155.33s
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > should render the initial state correctly
[TEST DEBUG] beforeEach: Cleaning mocks and setting up Audio mock
 
 
src/features/shopping/WatchedItemsList.test.tsx [queued]
src/pages/VoiceLabPage.test.tsx 0/10
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts 0/9
src/tests/integration/budget.integration.test.ts 20/20
 
Test Files 18 failed | 60 passed (242)
Tests 5 failed | 2014 passed | 225 skipped (2263)
Start at 07:51:47
Duration 156.20s
stderr | src/routes/store.routes.test.ts
[vitest] The vi.fn() mock did not use 'function' or 'class' in its implementation, see https://vitest.dev/api/vi#vi-spyon for examples.
 
 
src/features/shopping/WatchedItemsList.test.tsx [queued]
src/pages/VoiceLabPage.test.tsx 0/10
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts 0/9
src/tests/integration/budget.integration.test.ts 20/20
 
Test Files 18 failed | 60 passed (242)
Tests 5 failed | 2014 passed | 225 skipped (2263)
Start at 07:51:47
Duration 156.20s
 
src/features/shopping/WatchedItemsList.test.tsx [queued]
src/pages/VoiceLabPage.test.tsx 0/10
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts 1/9
 
Test Files 18 failed | 60 passed (242)
Tests 5 failed | 2015 passed | 225 skipped (2263)
Start at 07:51:47
Duration 156.73s
stdout | src/services/queueService.server.test.ts > Worker Service Lifecycle > gracefulShutdown > should close all workers, queues, the redis connection, and exit the process
[DEBUG] queueService.server.test.ts: Restoring process.exit spy
 
stdout | src/services/queueService.server.test.ts > Worker Service Lifecycle > gracefulShutdown > should log an error if a worker fails to close
[DEBUG] queueService.server.test.ts: Restoring process.exit spy
 
stdout | src/services/queueService.server.test.ts > Worker Service Lifecycle > gracefulShutdown > should log an error if Redis connection fails to close
[DEBUG] queueService.server.test.ts: Restoring process.exit spy
 
stdout | src/services/queueService.server.test.ts > Worker Service Lifecycle > gracefulShutdown > should timeout if shutdown takes too long
[DEBUG] queueService.server.test.ts: Restoring process.exit spy
 
 
src/features/shopping/WatchedItemsList.test.tsx [queued]
src/pages/VoiceLabPage.test.tsx 0/10
src/routes/store.routes.test.ts [queued]
src/services/queueService.server.test.ts 4/9
 
Test Files 18 failed | 60 passed (242)
Tests 5 failed | 2018 passed | 225 skipped (2263)
Start at 07:51:47
Duration 156.99s
src/services/queueService.server.test.ts (9 tests) 3405ms
should log a success message when Redis connects 3094ms
 
src/features/shopping/WatchedItemsList.test.tsx [queued]
src/pages/VoiceLabPage.test.tsx 0/10
src/routes/store.routes.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 61 passed (242)
Tests 5 failed | 2023 passed | 225 skipped (2263)
Start at 07:51:47
Duration 157.12s
 
src/features/shopping/WatchedItemsList.test.tsx 0/16
src/pages/VoiceLabPage.test.tsx 0/10
src/routes/store.routes.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 61 passed (242)
Tests 5 failed | 2023 passed | 225 skipped (2279)
Start at 07:51:47
Duration 157.99s
 
src/components/ErrorBoundary.test.tsx [queued]
src/features/shopping/WatchedItemsList.test.tsx 0/16
src/pages/VoiceLabPage.test.tsx 0/10
src/routes/store.routes.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 61 passed (242)
Tests 5 failed | 2023 passed | 225 skipped (2279)
Start at 07:51:47
Duration 158.19s
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > should render the initial state correctly
[TEST DEBUG] Test: render initial state
[TEST DEBUG] Test: render initial state passed
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > should render the initial state correctly
[TEST DEBUG] afterEach: unstubbing globals
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should call generateSpeechFromText and play audio on success
[TEST DEBUG] beforeEach: Cleaning mocks and setting up Audio mock
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should call generateSpeechFromText and play audio on success
[TEST DEBUG] Test: generateSpeechFromText success flow
[TEST DEBUG] Clicking generate button
[TEST DEBUG] Waiting for generateSpeechFromText call
[TEST DEBUG] Mock response.json() called
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should call generateSpeechFromText and play audio on success
[TEST DEBUG] Audio constructor called with URL: data:audio/mpeg;base64,mock-audio-data
[TEST DEBUG] mockAudioPlay executed
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should call generateSpeechFromText and play audio on success
[TEST DEBUG] Waiting for Audio constructor call
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should call generateSpeechFromText and play audio on success
[TEST DEBUG] Waiting for mockAudioPlay call
 
 
src/components/ErrorBoundary.test.tsx [queued]
src/features/shopping/WatchedItemsList.test.tsx 0/16
src/pages/VoiceLabPage.test.tsx 1/10
src/routes/store.routes.test.ts [queued]
src/services/cacheService.server.test.ts [queued]
src/services/workers.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 61 passed (242)
Tests 5 failed | 2024 passed | 225 skipped (2279)
Start at 07:51:47
Duration 159.01s
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should call generateSpeechFromText and play audio on success
[TEST DEBUG] Waiting for UI update (button enabled, replay visible)
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should call generateSpeechFromText and play audio on success
[TEST DEBUG] Test: generateSpeechFromText success flow passed
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should call generateSpeechFromText and play audio on success
[TEST DEBUG] afterEach: unstubbing globals
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should show an error notification if text is empty
[TEST DEBUG] beforeEach: Cleaning mocks and setting up Audio mock
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should show an error notification if text is empty
[TEST DEBUG] Test: empty text validation
[TEST DEBUG] Clicking generate button with empty text
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should show an error notification if text is empty
[TEST DEBUG] Test: empty text validation passed
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should show an error notification if text is empty
[TEST DEBUG] afterEach: unstubbing globals
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should show an error notification if API call fails
[TEST DEBUG] beforeEach: Cleaning mocks and setting up Audio mock
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should show an error notification if API call fails
[TEST DEBUG] Test: API failure
[TEST DEBUG] Clicking generate button (expecting failure)
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should show an error notification if API call fails
[TEST DEBUG] afterEach: unstubbing globals
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should show an error if API returns no audio data
[TEST DEBUG] beforeEach: Cleaning mocks and setting up Audio mock
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should show an error if API returns no audio data
[TEST DEBUG] Test: No audio data returned
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should show an error if API returns no audio data
[TEST DEBUG] Test: No audio data returned passed
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should show an error if API returns no audio data
[TEST DEBUG] afterEach: unstubbing globals
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should handle non-Error objects in catch block
[TEST DEBUG] beforeEach: Cleaning mocks and setting up Audio mock
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should handle non-Error objects in catch block
[TEST DEBUG] Test: Non-error object rejection
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should handle non-Error objects in catch block
[TEST DEBUG] afterEach: unstubbing globals
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should allow replaying the generated audio
[TEST DEBUG] beforeEach: Cleaning mocks and setting up Audio mock
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should allow replaying the generated audio
[TEST DEBUG] Test: Replay functionality
[TEST DEBUG] Clicking generate button for replay test
[TEST DEBUG] Waiting for replay button to appear
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should allow replaying the generated audio
[TEST DEBUG] Audio constructor called with URL: data:audio/mpeg;base64,mock-audio-data
[TEST DEBUG] mockAudioPlay executed
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should allow replaying the generated audio
[TEST DEBUG] Replay button found
[TEST DEBUG] Verifying initial play count: 1
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should allow replaying the generated audio
[TEST DEBUG] Clicking replay button
[TEST DEBUG] mockAudioPlay executed
[TEST DEBUG] Verifying play count reaches 2. Current calls: 2
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should allow replaying the generated audio
[TEST DEBUG] Test: Replay functionality passed
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Text-to-Speech Generation > should allow replaying the generated audio
[TEST DEBUG] afterEach: unstubbing globals
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Real-time Voice Session > should call startVoiceSession and show an error notification
[TEST DEBUG] beforeEach: Cleaning mocks and setting up Audio mock
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Real-time Voice Session > should call startVoiceSession and show an error notification
[TEST DEBUG] Test: Real-time voice session error
[TEST DEBUG] mocked startVoiceSession called
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Real-time Voice Session > should call startVoiceSession and show an error notification
[TEST DEBUG] afterEach: unstubbing globals
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Real-time Voice Session > should handle unknown errors in startVoiceSession
[TEST DEBUG] beforeEach: Cleaning mocks and setting up Audio mock
 
 
src/components/ErrorBoundary.test.tsx [queued]
src/features/shopping/WatchedItemsList.test.tsx 0/16
src/pages/VoiceLabPage.test.tsx 2/10
src/routes/store.routes.test.ts [queued]
src/services/cacheService.server.test.ts [queued]
src/services/workers.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 61 passed (242)
Tests 5 failed | 2025 passed | 225 skipped (2279)
Start at 07:51:47
Duration 159.48s
 
src/components/ErrorBoundary.test.tsx [queued]
src/features/shopping/WatchedItemsList.test.tsx 2/16
src/pages/VoiceLabPage.test.tsx 8/10
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/cacheService.server.test.ts [queued]
src/services/workers.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 61 passed (242)
Tests 5 failed | 2033 passed | 225 skipped (2279)
Start at 07:51:47
Duration 160.74s
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Real-time Voice Session > should handle unknown errors in startVoiceSession
[TEST DEBUG] afterEach: unstubbing globals
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Real-time Voice Session > should handle successful startVoiceSession and log messages
[TEST DEBUG] beforeEach: Cleaning mocks and setting up Audio mock
 
stdout | src/pages/VoiceLabPage.test.tsx > VoiceLabPage > Real-time Voice Session > should handle successful startVoiceSession and log messages
[TEST DEBUG] afterEach: unstubbing globals
 
 
src/components/ErrorBoundary.test.tsx [queued]
src/features/shopping/WatchedItemsList.test.tsx 2/16
src/pages/VoiceLabPage.test.tsx 9/10
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/cacheService.server.test.ts [queued]
src/services/workers.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 61 passed (242)
Tests 5 failed | 2034 passed | 225 skipped (2279)
Start at 07:51:47
Duration 161.41s
src/pages/VoiceLabPage.test.tsx (10 tests) 4987ms
should render the initial state correctly 2300ms
should call generateSpeechFromText and play audio on success 741ms
should show an error notification if text is empty 387ms
 
src/components/ErrorBoundary.test.tsx [queued]
src/features/shopping/WatchedItemsList.test.tsx 3/16
src/pages/VoiceLabPage.test.tsx 10/10
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/cacheService.server.test.ts [queued]
src/services/workers.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 62 passed (242)
Tests 5 failed | 2036 passed | 225 skipped (2279)
Start at 07:51:47
Duration 161.51s
 
src/components/ErrorBoundary.test.tsx 0/22
src/features/shopping/WatchedItemsList.test.tsx 3/16
src/pages/VoiceLabPage.test.tsx 10/10
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/cacheService.server.test.ts [queued]
src/services/workers.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 62 passed (242)
Tests 5 failed | 2036 passed | 225 skipped (2301)
Start at 07:51:47
Duration 161.94s
 
src/components/ErrorBoundary.test.tsx 0/22
src/features/shopping/WatchedItemsList.test.tsx 4/16
src/pages/VoiceLabPage.test.tsx 10/10
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/cacheService.server.test.ts 0/29
src/services/workers.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 62 passed (242)
Tests 5 failed | 2037 passed | 225 skipped (2330)
Start at 07:51:47
Duration 162.19s
 
src/components/ErrorBoundary.test.tsx 3/22
src/features/shopping/WatchedItemsList.test.tsx 4/16
src/pages/VoiceLabPage.test.tsx 10/10
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/cacheService.server.test.ts 1/29
src/services/workers.server.test.ts 0/15
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 62 passed (242)
Tests 5 failed | 2041 passed | 225 skipped (2345)
Start at 07:51:47
Duration 162.43s
src/services/cacheService.server.test.ts (29 tests) 84ms
 
src/components/ErrorBoundary.test.tsx 6/22
src/features/shopping/WatchedItemsList.test.tsx 5/16
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/cacheService.server.test.ts 29/29
src/services/workers.server.test.ts 0/15
src/tests/integration/public.routes.integration.test.ts [queued]
 
Test Files 18 failed | 63 passed (242)
Tests 5 failed | 2073 passed | 225 skipped (2345)
Start at 07:51:47
Duration 162.81s
 
src/components/ErrorBoundary.test.tsx 7/22
src/features/shopping/WatchedItemsList.test.tsx 5/16
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/cacheService.server.test.ts 29/29
src/services/workers.server.test.ts 0/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 63 passed (242)
Tests 5 failed | 2074 passed | 225 skipped (2362)
Start at 07:51:47
Duration 163.06s
 
src/components/ErrorBoundary.test.tsx 12/22
src/features/shopping/WatchedItemsList.test.tsx 6/16
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/cacheService.server.test.ts 29/29
src/services/workers.server.test.ts 0/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 63 passed (242)
Tests 5 failed | 2080 passed | 225 skipped (2362)
Start at 07:51:47
Duration 163.27s
 
src/components/ErrorBoundary.test.tsx 13/22
src/features/shopping/WatchedItemsList.test.tsx 7/16
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 0/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 63 passed (242)
Tests 5 failed | 2082 passed | 225 skipped (2362)
Start at 07:51:47
Duration 163.37s
 
src/components/ErrorBoundary.test.tsx 14/22
src/features/shopping/WatchedItemsList.test.tsx 8/16
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 0/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 63 passed (242)
Tests 5 failed | 2084 passed | 225 skipped (2362)
Start at 07:51:47
Duration 163.57s
 
src/components/ErrorBoundary.test.tsx 16/22
src/features/shopping/WatchedItemsList.test.tsx 8/16
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 1/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 63 passed (242)
Tests 5 failed | 2087 passed | 225 skipped (2362)
Start at 07:51:47
Duration 163.67s
 
src/components/ErrorBoundary.test.tsx 18/22
src/features/shopping/WatchedItemsList.test.tsx 8/16
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 3/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 63 passed (242)
Tests 5 failed | 2091 passed | 225 skipped (2362)
Start at 07:51:47
Duration 164.04s
src/components/ErrorBoundary.test.tsx (22 tests) 2078ms
should render reload button in default fallback 667ms
should show report feedback button when Sentry is configured and eventId exists 338ms
 
src/components/ErrorBoundary.test.tsx 22/22
src/features/shopping/WatchedItemsList.test.tsx 8/16
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 7/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 64 passed (242)
Tests 5 failed | 2099 passed | 225 skipped (2362)
Start at 07:51:47
Duration 164.14s
 
src/components/ErrorBoundary.test.tsx 22/22
src/features/shopping/WatchedItemsList.test.tsx 8/16
src/routes/budget.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 8/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 64 passed (242)
Tests 5 failed | 2100 passed | 225 skipped (2362)
Start at 07:51:47
Duration 164.25s
stdout | src/routes/budget.routes.test.ts > Budget Routes (/api/budgets) > GET / > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/ErrorBoundary.test.tsx 22/22
src/features/shopping/WatchedItemsList.test.tsx 10/16
src/routes/budget.routes.test.ts 0/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 10/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 64 passed (242)
Tests 5 failed | 2104 passed | 225 skipped (2382)
Start at 07:51:47
Duration 164.35s
stderr | src/routes/budget.routes.test.ts > Budget Routes (/api/budgets) > GET / > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/budget.routes.test.ts:95:68
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/ErrorBoundary.test.tsx 22/22
src/features/shopping/WatchedItemsList.test.tsx 10/16
src/routes/budget.routes.test.ts 0/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 10/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 64 passed (242)
Tests 5 failed | 2104 passed | 225 skipped (2382)
Start at 07:51:47
Duration 164.35s
stdout | src/routes/budget.routes.test.ts > Budget Routes (/api/budgets) > POST / > should return 500 if a generic database error occurs
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/ErrorBoundary.test.tsx 22/22
src/features/shopping/WatchedItemsList.test.tsx 10/16
src/routes/budget.routes.test.ts 3/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 12/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 64 passed (242)
Tests 5 failed | 2109 passed | 225 skipped (2382)
Start at 07:51:47
Duration 164.45s
stderr | src/routes/budget.routes.test.ts > Budget Routes (/api/budgets) > POST / > should return 500 if a generic database error occurs
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/budget.routes.test.ts:146:63
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/ErrorBoundary.test.tsx 22/22
src/features/shopping/WatchedItemsList.test.tsx 10/16
src/routes/budget.routes.test.ts 3/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 12/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 64 passed (242)
Tests 5 failed | 2109 passed | 225 skipped (2382)
Start at 07:51:47
Duration 164.45s
stdout | src/routes/budget.routes.test.ts > Budget Routes (/api/budgets) > PUT /:id > should return 500 if a generic database error occurs
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/ErrorBoundary.test.tsx 22/22
src/features/shopping/WatchedItemsList.test.tsx 10/16
src/routes/budget.routes.test.ts 7/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 13/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 64 passed (242)
Tests 5 failed | 2114 passed | 225 skipped (2382)
Start at 07:51:47
Duration 164.65s
stderr | src/routes/budget.routes.test.ts > Budget Routes (/api/budgets) > PUT /:id > should return 500 if a generic database error occurs
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/budget.routes.test.ts:204:63
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/ErrorBoundary.test.tsx 22/22
src/features/shopping/WatchedItemsList.test.tsx 10/16
src/routes/budget.routes.test.ts 7/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 13/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 64 passed (242)
Tests 5 failed | 2114 passed | 225 skipped (2382)
Start at 07:51:47
Duration 164.65s
src/services/workers.server.test.ts (15 tests) 2453ms
should call flyerProcessingService.processJob with the job data 1277ms
stdout | src/routes/budget.routes.test.ts > Budget Routes (/api/budgets) > DELETE /:id > should return 500 if a generic database error occurs
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/shopping/WatchedItemsList.test.tsx 10/16
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/budget.routes.test.ts 12/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 15/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 65 passed (242)
Tests 5 failed | 2121 passed | 225 skipped (2382)
Start at 07:51:47
Duration 164.76s
stderr | src/routes/budget.routes.test.ts > Budget Routes (/api/budgets) > DELETE /:id > should return 500 if a generic database error occurs
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/budget.routes.test.ts:250:63
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/shopping/WatchedItemsList.test.tsx 10/16
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/budget.routes.test.ts 12/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 15/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 65 passed (242)
Tests 5 failed | 2121 passed | 225 skipped (2382)
Start at 07:51:47
Duration 164.76s
stdout | src/routes/budget.routes.test.ts > Budget Routes (/api/budgets) > GET /spending-analysis > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/shopping/WatchedItemsList.test.tsx 10/16
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/budget.routes.test.ts 18/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 15/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 65 passed (242)
Tests 5 failed | 2127 passed | 225 skipped (2382)
Start at 07:51:47
Duration 164.86s
stderr | src/routes/budget.routes.test.ts > Budget Routes (/api/budgets) > GET /spending-analysis > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/budget.routes.test.ts:281:72
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/shopping/WatchedItemsList.test.tsx 10/16
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/budget.routes.test.ts 18/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 15/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 65 passed (242)
Tests 5 failed | 2127 passed | 225 skipped (2382)
Start at 07:51:47
Duration 164.86s
src/routes/budget.routes.test.ts (20 tests) 622ms
 
src/features/shopping/WatchedItemsList.test.tsx 10/16
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/budget.routes.test.ts 20/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 15/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 66 passed (242)
Tests 5 failed | 2129 passed | 225 skipped (2382)
Start at 07:51:47
Duration 165.09s
 
src/features/shopping/WatchedItemsList.test.tsx 13/16
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/budget.routes.test.ts 20/20
src/routes/store.routes.test.ts [queued]
src/services/workers.server.test.ts 15/15
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 66 passed (242)
Tests 5 failed | 2132 passed | 225 skipped (2382)
Start at 07:51:47
Duration 165.66s
 
src/features/flyer/ProcessingStatus.test.tsx [queued]
src/features/shopping/WatchedItemsList.test.tsx 13/16
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 66 passed (242)
Tests 5 failed | 2132 passed | 225 skipped (2382)
Start at 07:51:47
Duration 166.29s
src/features/shopping/WatchedItemsList.test.tsx (16 tests) 8079ms
should render the form and item list when user is authenticated 1219ms
should allow adding a new item 1048ms
should show a loading spinner while adding an item 716ms
should allow removing an item 729ms
should filter items by category 301ms
should sort items ascending and descending 945ms
should disable the "Add" button if item name is empty or whitespace 761ms
should disable the "Add" button if category is not selected 690ms
should reset loading state and log an error if onAddItem rejects 629ms
 
src/features/flyer/ProcessingStatus.test.tsx [queued]
src/features/shopping/WatchedItemsList.test.tsx 16/16
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 67 passed (242)
Tests 5 failed | 2135 passed | 225 skipped (2382)
Start at 07:51:47
Duration 167.32s
 
src/features/flyer/ProcessingStatus.test.tsx 0/17
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/geocodingService.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 67 passed (242)
Tests 5 failed | 2135 passed | 225 skipped (2399)
Start at 07:51:47
Duration 167.43s
 
src/features/flyer/ProcessingStatus.test.tsx 0/17
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/geocodingService.server.test.ts [queued]
src/services/sentry.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 67 passed (242)
Tests 5 failed | 2135 passed | 225 skipped (2399)
Start at 07:51:47
Duration 168.13s
 
src/features/flyer/ProcessingStatus.test.tsx 1/17
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/geocodingService.server.test.ts [queued]
src/services/sentry.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 67 passed (242)
Tests 5 failed | 2136 passed | 225 skipped (2399)
Start at 07:51:47
Duration 169.25s
 
src/features/flyer/ProcessingStatus.test.tsx 9/17
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/geocodingService.server.test.ts [queued]
src/services/queueService.workers.test.ts [queued]
src/services/sentry.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 67 passed (242)
Tests 5 failed | 2144 passed | 225 skipped (2399)
Start at 07:51:47
Duration 169.35s
 
src/features/flyer/ProcessingStatus.test.tsx 10/17
src/pages/admin/components/AdminBrandManager.test.tsx [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/geocodingService.server.test.ts [queued]
src/services/queueService.workers.test.ts [queued]
src/services/sentry.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 67 passed (242)
Tests 5 failed | 2145 passed | 225 skipped (2399)
Start at 07:51:47
Duration 169.55s
src/features/flyer/ProcessingStatus.test.tsx (17 tests) 2248ms
should render the title and initial time remaining 874ms
 
src/features/flyer/ProcessingStatus.test.tsx 17/17
src/pages/admin/components/AdminBrandManager.test.tsx 0/13
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/geocodingService.server.test.ts [queued]
src/services/queueService.workers.test.ts [queued]
src/services/sentry.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 68 passed (242)
Tests 5 failed | 2152 passed | 225 skipped (2412)
Start at 07:51:47
Duration 169.91s
 
src/features/flyer/ProcessingStatus.test.tsx 17/17
src/pages/admin/components/AdminBrandManager.test.tsx 0/13
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/geocodingService.server.test.ts [queued]
src/services/queueService.workers.test.ts [queued]
src/services/sentry.server.test.ts [queued]
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 68 passed (242)
Tests 5 failed | 2152 passed | 225 skipped (2412)
Start at 07:51:47
Duration 170.46s
 
src/pages/admin/components/AdminBrandManager.test.tsx 0/13
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/geocodingService.server.test.ts 0/12
src/services/queueService.workers.test.ts [queued]
src/services/sentry.server.test.ts 0/28
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 68 passed (242)
Tests 5 failed | 2152 passed | 225 skipped (2452)
Start at 07:51:47
Duration 170.83s
src/services/geocodingService.server.test.ts (12 tests) 136ms
 
src/pages/admin/components/AdminBrandManager.test.tsx 1/13
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/geocodingService.server.test.ts 12/12
src/services/queueService.workers.test.ts [queued]
src/services/sentry.server.test.ts 0/28
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 69 passed (242)
Tests 5 failed | 2165 passed | 225 skipped (2452)
Start at 07:51:47
Duration 171.45s
 
src/pages/admin/components/AdminBrandManager.test.tsx 7/13
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/geocodingService.server.test.ts 12/12
src/services/queueService.workers.test.ts 0/13
src/services/sentry.server.test.ts 1/28
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 69 passed (242)
Tests 5 failed | 2172 passed | 225 skipped (2465)
Start at 07:51:47
Duration 171.74s
src/services/sentry.server.test.ts (28 tests) 792ms
should not initialize Sentry when not configured 696ms
 
src/pages/admin/components/AdminBrandManager.test.tsx 8/13
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.workers.test.ts 0/13
src/services/sentry.server.test.ts 28/28
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 70 passed (242)
Tests 5 failed | 2200 passed | 225 skipped (2465)
Start at 07:51:47
Duration 172.16s
 
src/pages/admin/components/AdminBrandManager.test.tsx 9/13
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.workers.test.ts 0/13
src/services/sentry.server.test.ts 28/28
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 70 passed (242)
Tests 5 failed | 2201 passed | 225 skipped (2465)
Start at 07:51:47
Duration 172.26s
 
src/pages/admin/components/AdminBrandManager.test.tsx 9/13
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.workers.test.ts 0/13
src/services/sentry.server.test.ts 28/28
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 70 passed (242)
Tests 5 failed | 2201 passed | 225 skipped (2465)
Start at 07:51:47
Duration 172.46s
 
src/pages/admin/components/AdminBrandManager.test.tsx 10/13
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.workers.test.ts 0/13
src/services/sentry.server.test.ts 28/28
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 70 passed (242)
Tests 5 failed | 2202 passed | 225 skipped (2465)
Start at 07:51:47
Duration 172.69s
 
src/pages/admin/components/AdminBrandManager.test.tsx 11/13
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.workers.test.ts 0/13
src/tests/integration/public.routes.integration.test.ts 0/17
 
Test Files 18 failed | 70 passed (242)
Tests 5 failed | 2203 passed | 225 skipped (2465)
Start at 07:51:47
Duration 172.92s
src/pages/admin/components/AdminBrandManager.test.tsx (13 tests) 2956ms
should render the list of brands when data is fetched successfully 854ms
should show an error toast for oversized file 602ms
should render an empty table if no brands are found 332ms
src/tests/integration/public.routes.integration.test.ts (17 tests | 17 skipped) 10019ms
GET /api/health/ping should return "pong"
GET /api/health/db-schema should return success
GET /api/health/storage should return success
GET /api/health/db-pool should return success
GET /api/health/time should return the server time
GET /api/flyers should return a list of flyers
GET /api/flyers/:id/items should return items for a specific flyer
POST /api/flyers/items/batch-fetch should return items for multiple flyers
POST /api/flyers/items/batch-count should return a count for multiple flyers
GET /api/personalization/master-items should return a list of master grocery items
GET /api/recipes/by-sale-percentage should return recipes
GET /api/recipes/by-ingredient-and-tag should return recipes
GET /api/recipes/:recipeId/comments should return comments for a recipe
GET /api/stats/most-frequent-sales should return frequent items
GET /api/personalization/dietary-restrictions should return a list of restrictions
GET /api/personalization/appliances should return a list of appliances
should block requests to /api/personalization/master-items after exceeding the limit
 
src/providers/AuthProvider.test.tsx [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.workers.test.ts 1/13
src/tests/integration/public.routes.integration.test.ts 17/17
 
Test Files 19 failed | 71 passed (242)
Tests 5 failed | 2206 passed | 242 skipped (2465)
Start at 07:51:47
Duration 173.02s
 
src/providers/AuthProvider.test.tsx [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.workers.test.ts 1/13
src/tests/integration/public.routes.integration.test.ts 17/17
 
Test Files 19 failed | 71 passed (242)
Tests 5 failed | 2206 passed | 242 skipped (2465)
Start at 07:51:47
Duration 173.98s
 
src/providers/AuthProvider.test.tsx [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/queueService.workers.test.ts 11/13
 
Test Files 19 failed | 71 passed (242)
Tests 5 failed | 2216 passed | 242 skipped (2465)
Start at 07:51:47
Duration 174.09s
src/services/queueService.workers.test.ts (13 tests) 2536ms
should call flyerProcessingService.processJob with the job data 1365ms
 
src/features/flyer/BulkImporter.test.tsx [queued]
src/providers/AuthProvider.test.tsx [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts [queued]
 
Test Files 19 failed | 72 passed (242)
Tests 5 failed | 2218 passed | 242 skipped (2465)
Start at 07:51:47
Duration 175.13s
 
src/features/flyer/BulkImporter.test.tsx [queued]
src/providers/AuthProvider.test.tsx [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/storeLocation.db.test.ts [queued]
src/services/emailService.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts [queued]
 
Test Files 19 failed | 72 passed (242)
Tests 5 failed | 2218 passed | 242 skipped (2465)
Start at 07:51:47
Duration 175.88s
 
src/features/flyer/BulkImporter.test.tsx [queued]
src/providers/AuthProvider.test.tsx [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/storeLocation.db.test.ts [queued]
src/services/emailService.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts [queued]
 
Test Files 19 failed | 72 passed (242)
Tests 5 failed | 2218 passed | 242 skipped (2465)
Start at 07:51:47
Duration 176.24s
 
src/features/flyer/BulkImporter.test.tsx [queued]
src/providers/AuthProvider.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/storeLocation.db.test.ts [queued]
src/services/emailService.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts [queued]
 
Test Files 19 failed | 72 passed (242)
Tests 5 failed | 2218 passed | 242 skipped (2465)
Start at 07:51:47
Duration 176.75s
stdout | src/services/emailService.server.test.ts > Email Service (Server) > sendPasswordResetEmail > should call sendMail with the correct recipient, subject, and constructed link
[TEST SETUP] Setting up Email Service mocks
 
stdout | src/services/emailService.server.test.ts > Email Service (Server) > sendPasswordResetEmail > should call sendMail with the correct recipient, subject, and constructed link
[TEST DEBUG] mockSendMail (default) called with: test@example.com
 
stdout | src/services/emailService.server.test.ts > Email Service (Server) > sendWelcomeEmail > should send a personalized welcome email when a name is provided
[TEST SETUP] Setting up Email Service mocks
 
stdout | src/services/emailService.server.test.ts > Email Service (Server) > sendWelcomeEmail > should send a generic welcome email when a name is not provided
[TEST SETUP] Setting up Email Service mocks
 
stdout | src/services/emailService.server.test.ts > Email Service (Server) > sendDealNotificationEmail > should send a personalized email with a list of deals
[TEST SETUP] Setting up Email Service mocks
 
stdout | src/services/emailService.server.test.ts > Email Service (Server) > sendDealNotificationEmail > should send a personalized email with a list of deals
[TEST DEBUG] mockSendMail (default) called with: deal.hunter@example.com
 
stdout | src/services/emailService.server.test.ts > Email Service (Server) > sendDealNotificationEmail > should send a generic email when name is null
[TEST SETUP] Setting up Email Service mocks
 
stdout | src/services/emailService.server.test.ts > Email Service (Server) > sendDealNotificationEmail > should send a generic email when name is null
[TEST DEBUG] mockSendMail (default) called with: anonymous.user@example.com
 
stdout | src/services/emailService.server.test.ts > Email Service (Server) > sendDealNotificationEmail > should log an error if sendMail fails
[TEST SETUP] Setting up Email Service mocks
 
stdout | src/services/emailService.server.test.ts > Email Service (Server) > processEmailJob > should call sendMail with job data and log success
[TEST SETUP] Setting up Email Service mocks
 
stdout | src/services/emailService.server.test.ts > Email Service (Server) > processEmailJob > should log an error and re-throw if sendMail fails
[TEST SETUP] Setting up Email Service mocks
 
stdout | src/services/emailService.server.test.ts > Email Service (Server) > processEmailJob > should handle non-Error objects thrown during processing
[TEST SETUP] Setting up Email Service mocks
 
 
src/features/flyer/BulkImporter.test.tsx [queued]
src/providers/AuthProvider.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/storeLocation.db.test.ts [queued]
src/services/emailService.server.test.ts 1/9
src/tests/integration/user.routes.integration.test.ts [queued]
 
Test Files 19 failed | 72 passed (242)
Tests 5 failed | 2219 passed | 242 skipped (2474)
Start at 07:51:47
Duration 176.89s
src/services/emailService.server.test.ts (9 tests) 80ms
 
src/features/flyer/BulkImporter.test.tsx [queued]
src/providers/AuthProvider.test.tsx 0/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/storeLocation.db.test.ts [queued]
src/services/emailService.server.test.ts 9/9
src/tests/integration/user.routes.integration.test.ts [queued]
 
Test Files 19 failed | 73 passed (242)
Tests 5 failed | 2227 passed | 242 skipped (2483)
Start at 07:51:47
Duration 177.18s
 
src/features/flyer/BulkImporter.test.tsx 0/13
src/providers/AuthProvider.test.tsx 2/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/storeLocation.db.test.ts 0/9
src/services/emailService.server.test.ts 9/9
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 19 failed | 73 passed (242)
Tests 5 failed | 2229 passed | 242 skipped (2514)
Start at 07:51:47
Duration 177.67s
 
src/features/flyer/BulkImporter.test.tsx 0/13
src/providers/AuthProvider.test.tsx 2/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/storeLocation.db.test.ts 1/9
src/services/emailService.server.test.ts 9/9
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 19 failed | 73 passed (242)
Tests 6 failed | 2229 passed | 242 skipped (2514)
Start at 07:51:47
Duration 178.02s
src/services/db/storeLocation.db.test.ts (9 tests | 8 failed) 75ms
× should link a store to an address 23ms
× should prevent duplicate store-address pairs 3ms
× should retrieve all locations for a store 4ms
× should return empty array for store with no locations 3ms
× should retrieve store with all its locations 2ms
× should work for stores with no locations 2ms
× should delete a store location link 3ms
should throw error for non-existent location 10ms
× should update a store location to point to a different address 3ms
 
src/features/flyer/BulkImporter.test.tsx 7/13
src/providers/AuthProvider.test.tsx 2/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/storeLocation.db.test.ts 9/9
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 73 passed (242)
Tests 13 failed | 2237 passed | 242 skipped (2514)
Start at 07:51:47
Duration 178.69s
src/features/flyer/BulkImporter.test.tsx (13 tests) 1264ms
 
src/features/flyer/BulkImporter.test.tsx 13/13
src/providers/AuthProvider.test.tsx 5/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/storeLocation.db.test.ts 9/9
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2246 passed | 242 skipped (2514)
Start at 07:51:47
Duration 179.01s
 
src/features/flyer/BulkImporter.test.tsx 13/13
src/providers/AuthProvider.test.tsx 5/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 0/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2246 passed | 242 skipped (2526)
Start at 07:51:47
Duration 179.11s
 
src/features/flyer/BulkImporter.test.tsx 13/13
src/providers/AuthProvider.test.tsx 6/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 0/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2247 passed | 242 skipped (2526)
Start at 07:51:47
Duration 179.42s
stdout | src/routes/admin.users.routes.test.ts > Admin User Management Routes (/api/admin/users) > GET /users > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/flyer/BulkImporter.test.tsx 13/13
src/providers/AuthProvider.test.tsx 6/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 1/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2248 passed | 242 skipped (2526)
Start at 07:51:47
Duration 179.52s
stderr | src/routes/admin.users.routes.test.ts > Admin User Management Routes (/api/admin/users) > GET /users > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.users.routes.test.ts:133:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/flyer/BulkImporter.test.tsx 13/13
src/providers/AuthProvider.test.tsx 6/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 1/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2248 passed | 242 skipped (2526)
Start at 07:51:47
Duration 179.52s
 
src/features/flyer/BulkImporter.test.tsx 13/13
src/providers/AuthProvider.test.tsx 6/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 2/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2249 passed | 242 skipped (2526)
Start at 07:51:47
Duration 179.62s
stdout | src/routes/admin.users.routes.test.ts > Admin User Management Routes (/api/admin/users) > GET /users/:id > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/providers/AuthProvider.test.tsx 7/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 4/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2252 passed | 242 skipped (2526)
Start at 07:51:47
Duration 179.73s
stderr | src/routes/admin.users.routes.test.ts > Admin User Management Routes (/api/admin/users) > GET /users/:id > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.users.routes.test.ts:161:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/providers/AuthProvider.test.tsx 7/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 4/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2252 passed | 242 skipped (2526)
Start at 07:51:47
Duration 179.73s
 
src/providers/AuthProvider.test.tsx 7/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 5/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2253 passed | 242 skipped (2526)
Start at 07:51:47
Duration 179.83s
stdout | src/routes/admin.users.routes.test.ts > Admin User Management Routes (/api/admin/users) > PUT /users/:id > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/providers/AuthProvider.test.tsx 7/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 11/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2259 passed | 242 skipped (2526)
Start at 07:51:47
Duration 180.03s
stderr | src/routes/admin.users.routes.test.ts > Admin User Management Routes (/api/admin/users) > PUT /users/:id > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.users.routes.test.ts:201:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/providers/AuthProvider.test.tsx 7/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 11/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2259 passed | 242 skipped (2526)
Start at 07:51:47
Duration 180.03s
stdout | src/routes/admin.users.routes.test.ts > Admin User Management Routes (/api/admin/users) > DELETE /users/:id > should return 500 on a generic database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/providers/AuthProvider.test.tsx 7/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 11/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2259 passed | 242 skipped (2526)
Start at 07:51:47
Duration 180.03s
stderr | src/routes/admin.users.routes.test.ts > Admin User Management Routes (/api/admin/users) > DELETE /users/:id > should return 500 on a generic database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.users.routes.test.ts:248:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/providers/AuthProvider.test.tsx 7/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 11/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 74 passed (242)
Tests 13 failed | 2259 passed | 242 skipped (2526)
Start at 07:51:47
Duration 180.03s
src/routes/admin.users.routes.test.ts (12 tests) 850ms
 
src/providers/AuthProvider.test.tsx 8/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 12/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 75 passed (242)
Tests 13 failed | 2261 passed | 242 skipped (2526)
Start at 07:51:47
Duration 180.13s
src/providers/AuthProvider.test.tsx (9 tests) 3003ms
should log in a user with provided profile data 1148ms
should log in a user and fetch profile if not provided 408ms
should throw an error and log out if profile fetch fails after login 364ms
should update the user profile 451ms
 
src/providers/AuthProvider.test.tsx 9/9
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/admin.users.routes.test.ts 12/12
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2262 passed | 242 skipped (2526)
Start at 07:51:47
Duration 180.65s
 
src/pages/admin/ActivityLog.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2262 passed | 242 skipped (2526)
Start at 07:51:47
Duration 181.39s
 
src/pages/admin/ActivityLog.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2262 passed | 242 skipped (2526)
Start at 07:51:47
Duration 181.65s
 
src/pages/admin/ActivityLog.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2262 passed | 242 skipped (2526)
Start at 07:51:47
Duration 183.16s
 
src/middleware/multer.middleware.test.ts [queued]
src/pages/admin/ActivityLog.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2262 passed | 242 skipped (2526)
Start at 07:51:47
Duration 183.54s
 
src/middleware/multer.middleware.test.ts [queued]
src/pages/admin/ActivityLog.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2262 passed | 242 skipped (2526)
Start at 07:51:47
Duration 183.65s
 
src/middleware/multer.middleware.test.ts [queued]
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2262 passed | 242 skipped (2526)
Start at 07:51:47
Duration 184.13s
 
src/middleware/multer.middleware.test.ts [queued]
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2262 passed | 242 skipped (2526)
Start at 07:51:47
Duration 184.47s
stdout | src/routes/admin.monitoring.routes.test.ts > Admin Monitoring Routes (/api/admin) > GET /activity-log > should return 500 if fetching activity log fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/middleware/multer.middleware.test.ts [queued]
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts 1/8
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2263 passed | 242 skipped (2534)
Start at 07:51:47
Duration 185.27s
stderr | src/routes/admin.monitoring.routes.test.ts > Admin Monitoring Routes (/api/admin) > GET /activity-log > should return 500 if fetching activity log fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.monitoring.routes.test.ts:158:61
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/middleware/multer.middleware.test.ts [queued]
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts 1/8
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2263 passed | 242 skipped (2534)
Start at 07:51:47
Duration 185.27s
stdout | src/routes/admin.monitoring.routes.test.ts > Admin Monitoring Routes (/api/admin) > GET /workers/status > should return 500 if fetching worker statuses fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/middleware/multer.middleware.test.ts [queued]
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts 1/8
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2263 passed | 242 skipped (2534)
Start at 07:51:47
Duration 185.27s
stderr | src/routes/admin.monitoring.routes.test.ts > Admin Monitoring Routes (/api/admin) > GET /workers/status > should return 500 if fetching worker statuses fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Worker Error
at /app/src/routes/admin.monitoring.routes.test.ts:192:72
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/middleware/multer.middleware.test.ts [queued]
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts 1/8
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2263 passed | 242 skipped (2534)
Start at 07:51:47
Duration 185.27s
stdout | src/routes/admin.monitoring.routes.test.ts > Admin Monitoring Routes (/api/admin) > GET /queues/status > should return 500 if fetching queue counts fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/middleware/multer.middleware.test.ts [queued]
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts 1/8
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2263 passed | 242 skipped (2534)
Start at 07:51:47
Duration 185.27s
stderr | src/routes/admin.monitoring.routes.test.ts > Admin Monitoring Routes (/api/admin) > GET /queues/status > should return 500 if fetching queue counts fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Redis is down
at /app/src/routes/admin.monitoring.routes.test.ts:256:71
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/middleware/multer.middleware.test.ts [queued]
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts 1/8
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 76 passed (242)
Tests 13 failed | 2263 passed | 242 skipped (2534)
Start at 07:51:47
Duration 185.27s
src/routes/admin.monitoring.routes.test.ts (8 tests) 207ms
 
src/middleware/multer.middleware.test.ts [queued]
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/admin.monitoring.routes.test.ts 8/8
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 77 passed (242)
Tests 13 failed | 2270 passed | 242 skipped (2534)
Start at 07:51:47
Duration 185.38s
 
src/middleware/multer.middleware.test.ts 0/12
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 77 passed (242)
Tests 13 failed | 2270 passed | 242 skipped (2546)
Start at 07:51:47
Duration 186.30s
 
src/middleware/multer.middleware.test.ts 0/12
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts [queued]
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 77 passed (242)
Tests 13 failed | 2270 passed | 242 skipped (2546)
Start at 07:51:47
Duration 186.96s
src/middleware/multer.middleware.test.ts (12 tests) 79ms
 
src/middleware/multer.middleware.test.ts 12/12
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts 0/13
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 78 passed (242)
Tests 13 failed | 2282 passed | 242 skipped (2559)
Start at 07:51:47
Duration 187.06s
 
src/middleware/multer.middleware.test.ts 12/12
src/pages/admin/ActivityLog.test.tsx [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts 1/13
src/services/logger.server.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 0/9
 
Test Files 20 failed | 78 passed (242)
Tests 13 failed | 2283 passed | 242 skipped (2559)
Start at 07:51:47
Duration 187.28s
src/services/db/reaction.db.test.ts (13 tests) 92ms
 
src/middleware/multer.middleware.test.ts 12/12
src/pages/admin/ActivityLog.test.tsx 0/8
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts 13/13
src/services/logger.server.test.ts 0/12
src/tests/integration/user.routes.integration.test.ts 1/9
 
Test Files 20 failed | 79 passed (242)
Tests 13 failed | 2295 passed | 243 skipped (2579)
Start at 07:51:47
Duration 187.68s
stderr | src/services/logger.server.test.ts > Server Logger > createScopedLogger > should create a child logger with module name
Failed to create log directory /app/logs: Error: Permission denied
at Object.<anonymous> (/app/src/services/logger.server.test.ts:149:13)
at Object.Mock [as mkdirSync] (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at ensureLogDirectory (/app/src/services/logger.server.ts:47:10)
at createLogger (/app/src/services/logger.server.ts:74:18)
at /app/src/services/logger.server.ts:126:23
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at VitestModuleEvaluator._runInlinedModule (file:///app/node_modules/vitest/dist/module-evaluator.js:197:4)
at VitestModuleRunner.directRequest (file:///app/node_modules/vite/dist/node/module-runner.js:1146:59)
at VitestModuleRunner.cachedRequest (file:///app/node_modules/vite/dist/node/module-runner.js:1053:73)
at /app/src/services/logger.server.test.ts:176:38
 
stderr | src/services/logger.server.test.ts > Server Logger > createScopedLogger > should enable debug level when DEBUG_MODULES includes module name
Failed to create log directory /app/logs: Error: Permission denied
at Object.<anonymous> (/app/src/services/logger.server.test.ts:149:13)
at Object.Mock [as mkdirSync] (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at ensureLogDirectory (/app/src/services/logger.server.ts:47:10)
at createLogger (/app/src/services/logger.server.ts:74:18)
at /app/src/services/logger.server.ts:126:23
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at VitestModuleEvaluator._runInlinedModule (file:///app/node_modules/vitest/dist/module-evaluator.js:197:4)
at VitestModuleRunner.directRequest (file:///app/node_modules/vite/dist/node/module-runner.js:1146:59)
at VitestModuleRunner.cachedRequest (file:///app/node_modules/vite/dist/node/module-runner.js:1053:73)
at /app/src/services/logger.server.test.ts:189:38
 
stderr | src/services/logger.server.test.ts > Server Logger > createScopedLogger > should enable debug level when DEBUG_MODULES includes wildcard
Failed to create log directory /app/logs: Error: Permission denied
at Object.<anonymous> (/app/src/services/logger.server.test.ts:149:13)
at Object.Mock [as mkdirSync] (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at ensureLogDirectory (/app/src/services/logger.server.ts:47:10)
at createLogger (/app/src/services/logger.server.ts:74:18)
at /app/src/services/logger.server.ts:126:23
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at VitestModuleEvaluator._runInlinedModule (file:///app/node_modules/vitest/dist/module-evaluator.js:197:4)
at VitestModuleRunner.directRequest (file:///app/node_modules/vite/dist/node/module-runner.js:1146:59)
at VitestModuleRunner.cachedRequest (file:///app/node_modules/vite/dist/node/module-runner.js:1053:73)
at /app/src/services/logger.server.test.ts:204:38
 
stderr | src/services/logger.server.test.ts > Server Logger > createScopedLogger > should use default level when module not in DEBUG_MODULES
Failed to create log directory /app/logs: Error: Permission denied
at Object.<anonymous> (/app/src/services/logger.server.test.ts:149:13)
at Object.Mock [as mkdirSync] (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at ensureLogDirectory (/app/src/services/logger.server.ts:47:10)
at createLogger (/app/src/services/logger.server.ts:74:18)
at /app/src/services/logger.server.ts:126:23
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at VitestModuleEvaluator._runInlinedModule (file:///app/node_modules/vitest/dist/module-evaluator.js:197:4)
at VitestModuleRunner.directRequest (file:///app/node_modules/vite/dist/node/module-runner.js:1146:59)
at VitestModuleRunner.cachedRequest (file:///app/node_modules/vite/dist/node/module-runner.js:1053:73)
at /app/src/services/logger.server.test.ts:219:38
 
stderr | src/services/logger.server.test.ts > Server Logger > createScopedLogger > should handle empty DEBUG_MODULES
Failed to create log directory /app/logs: Error: Permission denied
at Object.<anonymous> (/app/src/services/logger.server.test.ts:149:13)
at Object.Mock [as mkdirSync] (file:///app/node_modules/@vitest/spy/dist/index.js:285:34)
at ensureLogDirectory (/app/src/services/logger.server.ts:47:10)
at createLogger (/app/src/services/logger.server.ts:74:18)
at /app/src/services/logger.server.ts:126:23
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at VitestModuleEvaluator._runInlinedModule (file:///app/node_modules/vitest/dist/module-evaluator.js:197:4)
at VitestModuleRunner.directRequest (file:///app/node_modules/vite/dist/node/module-runner.js:1146:59)
at VitestModuleRunner.cachedRequest (file:///app/node_modules/vite/dist/node/module-runner.js:1053:73)
at /app/src/services/logger.server.test.ts:234:38
 
 
src/middleware/multer.middleware.test.ts 12/12
src/pages/admin/ActivityLog.test.tsx 1/8
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts 13/13
src/services/logger.server.test.ts 12/12
src/tests/integration/user.routes.integration.test.ts 9/9
 
Test Files 20 failed | 80 passed (242)
Tests 13 failed | 2308 passed | 251 skipped (2579)
Start at 07:51:47
Duration 187.89s
src/services/logger.server.test.ts (12 tests) 315ms
 
src/middleware/multer.middleware.test.ts 12/12
src/pages/admin/ActivityLog.test.tsx 1/8
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts 13/13
src/services/logger.server.test.ts 12/12
src/tests/integration/user.routes.integration.test.ts 9/9
 
Test Files 20 failed | 80 passed (242)
Tests 13 failed | 2308 passed | 251 skipped (2579)
Start at 07:51:47
Duration 187.89s
src/tests/integration/user.routes.integration.test.ts (9 tests | 9 skipped) 10109ms
should return the profile for the authenticated user
should return 401 Unauthorized if no token is provided
should update the user profile
should update user preferences
should create, retrieve, and delete a shopping list
should prevent a user from modifying another user's shopping list
should add an item to a shopping list
should update an item in a shopping list
should delete an item from a shopping list
 
src/pages/admin/ActivityLog.test.tsx 4/8
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/reaction.db.test.ts 13/13
src/services/logger.server.test.ts 12/12
src/tests/integration/notification.integration.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 9/9
 
Test Files 21 failed | 80 passed (242)
Tests 13 failed | 2311 passed | 251 skipped (2579)
Start at 07:51:47
Duration 188.00s
 
src/pages/admin/ActivityLog.test.tsx 5/8
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/logger.server.test.ts 12/12
src/tests/integration/notification.integration.test.ts [queued]
src/tests/integration/user.routes.integration.test.ts 9/9
 
Test Files 21 failed | 80 passed (242)
Tests 13 failed | 2312 passed | 251 skipped (2579)
Start at 07:51:47
Duration 188.52s
 
src/pages/admin/ActivityLog.test.tsx 6/8
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/upc-journey.e2e.test.ts [queued]
src/tests/integration/notification.integration.test.ts [queued]
 
Test Files 21 failed | 80 passed (242)
Tests 13 failed | 2313 passed | 251 skipped (2579)
Start at 07:51:47
Duration 188.94s
 
src/pages/admin/ActivityLog.test.tsx 7/8
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/upc-journey.e2e.test.ts [queued]
src/tests/integration/notification.integration.test.ts [queued]
 
Test Files 21 failed | 80 passed (242)
Tests 13 failed | 2314 passed | 251 skipped (2579)
Start at 07:51:47
Duration 189.67s
src/pages/admin/ActivityLog.test.tsx (8 tests) 2131ms
should render a list of activities successfully covering all types 445ms
should handle missing details in logs gracefully (fallback values) 1080ms
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/upc-journey.e2e.test.ts [queued]
src/tests/integration/notification.integration.test.ts [queued]
 
Test Files 21 failed | 81 passed (242)
Tests 13 failed | 2315 passed | 251 skipped (2579)
Start at 07:51:47
Duration 190.29s
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/upc-journey.e2e.test.ts [queued]
src/tests/integration/ai.integration.test.ts [queued]
src/tests/integration/notification.integration.test.ts [queued]
 
Test Files 21 failed | 81 passed (242)
Tests 13 failed | 2315 passed | 251 skipped (2579)
Start at 07:51:47
Duration 190.70s
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/upc-journey.e2e.test.ts [queued]
src/tests/integration/ai.integration.test.ts [queued]
src/tests/integration/notification.integration.test.ts [queued]
 
Test Files 21 failed | 81 passed (242)
Tests 13 failed | 2315 passed | 251 skipped (2579)
Start at 07:51:47
Duration 191.55s
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 0/13
src/routes/store.routes.test.ts [queued]
src/tests/e2e/upc-journey.e2e.test.ts [queued]
src/tests/integration/ai.integration.test.ts [queued]
src/tests/integration/notification.integration.test.ts [queued]
 
Test Files 21 failed | 81 passed (242)
Tests 13 failed | 2315 passed | 251 skipped (2592)
Start at 07:51:47
Duration 191.67s
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 0/13
src/routes/reactions.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/upc-journey.e2e.test.ts [queued]
src/tests/integration/ai.integration.test.ts [queued]
src/tests/integration/notification.integration.test.ts [queued]
src/utils/dateUtils.test.ts [queued]
 
Test Files 21 failed | 81 passed (242)
Tests 13 failed | 2315 passed | 251 skipped (2592)
Start at 07:51:47
Duration 191.95s
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 0/13
src/routes/reactions.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/upc-journey.e2e.test.ts [queued]
src/tests/integration/ai.integration.test.ts [queued]
src/tests/integration/notification.integration.test.ts [queued]
src/utils/dateUtils.test.ts [queued]
 
Test Files 21 failed | 81 passed (242)
Tests 13 failed | 2315 passed | 251 skipped (2592)
Start at 07:51:47
Duration 193.45s
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 0/13
src/routes/reactions.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/upc-journey.e2e.test.ts 0/1
src/tests/integration/ai.integration.test.ts [queued]
src/tests/integration/notification.integration.test.ts 0/11
src/utils/dateUtils.test.ts [queued]
 
Test Files 21 failed | 81 passed (242)
Tests 13 failed | 2315 passed | 251 skipped (2604)
Start at 07:51:47
Duration 193.55s
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 0/13
src/routes/reactions.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/upc-journey.e2e.test.ts 1/1
src/tests/integration/ai.integration.test.ts [queued]
src/tests/integration/notification.integration.test.ts 0/11
src/utils/dateUtils.test.ts [queued]
 
Test Files 21 failed | 81 passed (242)
Tests 14 failed | 2315 passed | 251 skipped (2604)
Start at 07:51:47
Duration 194.30s
src/tests/e2e/upc-journey.e2e.test.ts (1 test | 1 failed) 281ms
× should complete full UPC scanning journey: Register -> Scan -> Lookup -> History -> Stats 260ms
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 4/13
src/routes/reactions.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/upc-journey.e2e.test.ts 1/1
src/tests/integration/ai.integration.test.ts [queued]
src/tests/integration/notification.integration.test.ts 0/11
src/utils/dateUtils.test.ts [queued]
 
Test Files 22 failed | 81 passed (242)
Tests 14 failed | 2319 passed | 251 skipped (2604)
Start at 07:51:47
Duration 194.45s
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 4/13
src/routes/reactions.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts [queued]
src/tests/integration/notification.integration.test.ts 0/11
src/utils/dateUtils.test.ts [queued]
 
Test Files 22 failed | 81 passed (242)
Tests 14 failed | 2319 passed | 251 skipped (2604)
Start at 07:51:47
Duration 195.39s
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 7/13
src/routes/reactions.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts [queued]
src/tests/integration/notification.integration.test.ts 0/11
src/utils/dateUtils.test.ts 1/38
 
Test Files 22 failed | 81 passed (242)
Tests 14 failed | 2323 passed | 251 skipped (2642)
Start at 07:51:47
Duration 196.18s
src/utils/dateUtils.test.ts (38 tests) 118ms
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 8/13
src/routes/reactions.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
src/utils/dateUtils.test.ts 38/38
 
Test Files 22 failed | 82 passed (242)
Tests 14 failed | 2361 passed | 251 skipped (2652)
Start at 07:51:47
Duration 196.85s
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 10/13
src/routes/reactions.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
src/utils/dateUtils.test.ts 38/38
 
Test Files 22 failed | 82 passed (242)
Tests 14 failed | 2363 passed | 251 skipped (2652)
Start at 07:51:47
Duration 197.17s
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 11/13
src/routes/reactions.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
src/utils/dateUtils.test.ts 38/38
 
Test Files 22 failed | 82 passed (242)
Tests 14 failed | 2364 passed | 251 skipped (2652)
Start at 07:51:47
Duration 197.28s
src/pages/UserProfilePage.test.tsx (13 tests) 5666ms
should display a loading message initially 327ms
should render the profile and achievements on successful fetch 1951ms
should allow editing and saving the user name 1280ms
should allow canceling the name edit 612ms
should show an error if saving the name fails with a non-ok response 1007ms
 
src/config/swagger.test.ts [queued]
src/pages/UserProfilePage.test.tsx 13/13
src/routes/reactions.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
 
Test Files 22 failed | 83 passed (242)
Tests 14 failed | 2366 passed | 251 skipped (2652)
Start at 07:51:47
Duration 197.92s
 
src/config/swagger.test.ts [queued]
src/routes/reactions.routes.test.ts 0/13
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
 
Test Files 22 failed | 83 passed (242)
Tests 14 failed | 2366 passed | 251 skipped (2665)
Start at 07:51:47
Duration 198.73s
 
src/config/swagger.test.ts [queued]
src/routes/reactions.routes.test.ts 0/13
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
 
Test Files 22 failed | 83 passed (242)
Tests 14 failed | 2366 passed | 251 skipped (2665)
Start at 07:51:47
Duration 198.94s
stdout | src/routes/reactions.routes.test.ts > Reaction Routes (/api/reactions) > GET / > should return 500 on database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/config/swagger.test.ts [queued]
src/routes/reactions.routes.test.ts 5/13
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
 
Test Files 22 failed | 83 passed (242)
Tests 14 failed | 2371 passed | 251 skipped (2665)
Start at 07:51:47
Duration 199.14s
stderr | src/routes/reactions.routes.test.ts > Reaction Routes (/api/reactions) > GET / > should return 500 on database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/reactions.routes.test.ts:85:21
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/config/swagger.test.ts [queued]
src/routes/reactions.routes.test.ts 5/13
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
 
Test Files 22 failed | 83 passed (242)
Tests 14 failed | 2371 passed | 251 skipped (2665)
Start at 07:51:47
Duration 199.14s
stdout | src/routes/reactions.routes.test.ts > Reaction Routes (/api/reactions) > GET /summary > should return 500 on database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/config/swagger.test.ts [queued]
src/routes/reactions.routes.test.ts 5/13
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
 
Test Files 22 failed | 83 passed (242)
Tests 14 failed | 2371 passed | 251 skipped (2665)
Start at 07:51:47
Duration 199.14s
stderr | src/routes/reactions.routes.test.ts > Reaction Routes (/api/reactions) > GET /summary > should return 500 on database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/reactions.routes.test.ts:121:21
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/config/swagger.test.ts [queued]
src/routes/reactions.routes.test.ts 5/13
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
 
Test Files 22 failed | 83 passed (242)
Tests 14 failed | 2371 passed | 251 skipped (2665)
Start at 07:51:47
Duration 199.14s
stdout | src/routes/reactions.routes.test.ts > Reaction Routes (/api/reactions) > POST /toggle > should return 500 on database error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/config/swagger.test.ts [queued]
src/routes/reactions.routes.test.ts 10/13
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
 
Test Files 22 failed | 83 passed (242)
Tests 14 failed | 2376 passed | 251 skipped (2665)
Start at 07:51:47
Duration 199.24s
stderr | src/routes/reactions.routes.test.ts > Reaction Routes (/api/reactions) > POST /toggle > should return 500 on database error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/reactions.routes.test.ts:192:21
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/config/swagger.test.ts [queued]
src/routes/reactions.routes.test.ts 10/13
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
 
Test Files 22 failed | 83 passed (242)
Tests 14 failed | 2376 passed | 251 skipped (2665)
Start at 07:51:47
Duration 199.24s
src/routes/reactions.routes.test.ts (13 tests) 501ms
 
src/config/swagger.test.ts 0/34
src/routes/store.routes.test.ts [queued]
src/services/sentry.client.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
 
Test Files 22 failed | 84 passed (242)
Tests 14 failed | 2379 passed | 251 skipped (2699)
Start at 07:51:47
Duration 199.88s
 
src/config/swagger.test.ts 1/34
src/routes/store.routes.test.ts [queued]
src/services/sentry.client.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
src/tests/integration/reactions.integration.test.ts [queued]
 
Test Files 22 failed | 84 passed (242)
Tests 14 failed | 2380 passed | 251 skipped (2699)
Start at 07:51:47
Duration 200.00s
src/config/swagger.test.ts (34 tests) 137ms
 
src/hooks/useUserData.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/sentry.client.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
src/tests/integration/reactions.integration.test.ts [queued]
 
Test Files 22 failed | 85 passed (242)
Tests 14 failed | 2413 passed | 251 skipped (2699)
Start at 07:51:47
Duration 200.47s
 
src/hooks/useUserData.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/sentry.client.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
src/tests/integration/reactions.integration.test.ts [queued]
 
Test Files 22 failed | 85 passed (242)
Tests 14 failed | 2413 passed | 251 skipped (2699)
Start at 07:51:47
Duration 201.16s
 
src/hooks/useUserData.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/connection.db.test.ts [queued]
src/services/sentry.client.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
src/tests/integration/reactions.integration.test.ts [queued]
 
Test Files 22 failed | 85 passed (242)
Tests 14 failed | 2413 passed | 251 skipped (2699)
Start at 07:51:47
Duration 201.45s
 
src/hooks/useUserData.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/connection.db.test.ts [queued]
src/services/sentry.client.test.ts 0/18
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
src/tests/integration/reactions.integration.test.ts [queued]
 
Test Files 22 failed | 85 passed (242)
Tests 14 failed | 2413 passed | 251 skipped (2717)
Start at 07:51:47
Duration 202.20s
src/services/sentry.client.test.ts (18 tests) 507ms
should have isSentryConfigured as false in test environment 426ms
 
src/hooks/useUserData.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/connection.db.test.ts [queued]
src/services/sentry.client.test.ts 18/18
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
src/tests/integration/reactions.integration.test.ts [queued]
 
Test Files 22 failed | 86 passed (242)
Tests 14 failed | 2431 passed | 251 skipped (2717)
Start at 07:51:47
Duration 203.26s
 
src/hooks/useUserData.test.tsx [queued]
src/pages/ResetPasswordPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/connection.db.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 0/11
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 22 failed | 86 passed (242)
Tests 14 failed | 2431 passed | 251 skipped (2730)
Start at 07:51:47
Duration 203.36s
 
src/hooks/useUserData.test.tsx [queued]
src/pages/ResetPasswordPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/connection.db.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 1/11
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 22 failed | 86 passed (242)
Tests 14 failed | 2431 passed | 252 skipped (2730)
Start at 07:51:47
Duration 203.93s
src/tests/integration/notification.integration.test.ts (11 tests | 11 skipped) 10014ms
should fetch unread notifications for the authenticated user by default
should fetch all notifications when includeRead=true
should respect pagination with limit and offset
should return 401 if user is not authenticated
should mark a single notification as read
should mark all unread notifications as read
should return 404 for non-existent job
should be accessible without authentication (public endpoint)
should delete a specific notification
should return 404 for non-existent notification
should prevent deleting another user's notification
 
src/hooks/useUserData.test.tsx [queued]
src/pages/ResetPasswordPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/connection.db.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 11/11
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 23 failed | 86 passed (242)
Tests 14 failed | 2431 passed | 262 skipped (2730)
Start at 07:51:47
Duration 204.04s
 
src/hooks/useUserData.test.tsx [queued]
src/pages/ResetPasswordPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/connection.db.test.ts 1/10
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 11/11
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 23 failed | 86 passed (242)
Tests 14 failed | 2432 passed | 262 skipped (2740)
Start at 07:51:47
Duration 204.14s
 
src/hooks/useUserData.test.tsx [queued]
src/pages/ResetPasswordPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/connection.db.test.ts 9/10
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 11/11
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 23 failed | 86 passed (242)
Tests 14 failed | 2440 passed | 262 skipped (2740)
Start at 07:51:47
Duration 204.24s
src/services/db/connection.db.test.ts (10 tests) 246ms
 
src/hooks/useUserData.test.tsx 0/6
src/pages/ResetPasswordPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/connection.db.test.ts 10/10
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/notification.integration.test.ts 11/11
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 23 failed | 87 passed (242)
Tests 14 failed | 2441 passed | 262 skipped (2746)
Start at 07:51:47
Duration 204.76s
 
src/hooks/useUserData.test.tsx 1/6
src/pages/ResetPasswordPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/connection.db.test.ts 10/10
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 23 failed | 87 passed (242)
Tests 14 failed | 2442 passed | 262 skipped (2746)
Start at 07:51:47
Duration 205.11s
src/hooks/useUserData.test.tsx (6 tests) 287ms
 
src/pages/ResetPasswordPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/price.integration.test.ts [queued]
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 23 failed | 88 passed (242)
Tests 14 failed | 2447 passed | 262 skipped (2746)
Start at 07:51:47
Duration 205.69s
 
src/pages/ResetPasswordPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/ai.integration.test.ts 0/10
src/tests/integration/price.integration.test.ts [queued]
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 23 failed | 88 passed (242)
Tests 14 failed | 2447 passed | 262 skipped (2746)
Start at 07:51:47
Duration 206.49s
 
src/pages/ResetPasswordPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/flyerFileHandler.server.test.ts [queued]
src/tests/integration/ai.integration.test.ts 1/10
src/tests/integration/price.integration.test.ts [queued]
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 23 failed | 88 passed (242)
Tests 14 failed | 2447 passed | 263 skipped (2746)
Start at 07:51:47
Duration 206.69s
src/tests/integration/ai.integration.test.ts (10 tests | 10 skipped) 10095ms
POST /api/ai/check-flyer should return a boolean
POST /api/ai/extract-address should return a stubbed address
POST /api/ai/extract-logo should return a stubbed response
POST /api/ai/quick-insights should return a stubbed insight
POST /api/ai/deep-dive should return a stubbed analysis
POST /api/ai/search-web should return a stubbed search result
POST /api/ai/plan-trip should return an error as the feature is disabled
POST /api/ai/generate-image should reject because it is not implemented
POST /api/ai/generate-speech should reject because it is not implemented
should block requests to /api/ai/quick-insights after exceeding the limit
 
src/pages/ResetPasswordPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/flyerFileHandler.server.test.ts [queued]
src/tests/integration/ai.integration.test.ts 10/10
src/tests/integration/price.integration.test.ts [queued]
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 88 passed (242)
Tests 14 failed | 2447 passed | 272 skipped (2746)
Start at 07:51:47
Duration 207.74s
 
src/pages/ResetPasswordPage.test.tsx 0/8
src/routes/store.routes.test.ts [queued]
src/services/flyerFileHandler.server.test.ts [queued]
src/tests/integration/ai.integration.test.ts 10/10
src/tests/integration/price.integration.test.ts [queued]
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 88 passed (242)
Tests 14 failed | 2447 passed | 272 skipped (2754)
Start at 07:51:47
Duration 207.84s
 
src/pages/ResetPasswordPage.test.tsx 0/8
src/routes/store.routes.test.ts [queued]
src/services/flyerFileHandler.server.test.ts [queued]
src/tests/e2e/error-reporting.e2e.test.ts [queued]
src/tests/integration/price.integration.test.ts [queued]
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 88 passed (242)
Tests 14 failed | 2447 passed | 272 skipped (2754)
Start at 07:51:47
Duration 208.14s
 
src/pages/ResetPasswordPage.test.tsx 0/8
src/routes/store.routes.test.ts [queued]
src/services/flyerFileHandler.server.test.ts 0/10
src/tests/e2e/error-reporting.e2e.test.ts [queued]
src/tests/integration/price.integration.test.ts [queued]
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 88 passed (242)
Tests 14 failed | 2447 passed | 272 skipped (2764)
Start at 07:51:47
Duration 208.63s
stderr | src/services/flyerFileHandler.server.test.ts > FlyerFileHandler > should convert a PDF and return image paths
[WORKER DEBUG] FlyerFileHandler: prepareImageInputs called for /tmp/flyer.pdf
[WORKER DEBUG] FlyerFileHandler: Detected extension: .pdf
 
stderr | src/services/flyerFileHandler.server.test.ts > FlyerFileHandler > should throw PdfConversionError if PDF conversion yields no images
[WORKER DEBUG] FlyerFileHandler: prepareImageInputs called for /tmp/flyer.pdf
[WORKER DEBUG] FlyerFileHandler: Detected extension: .pdf
 
stderr | src/services/flyerFileHandler.server.test.ts > FlyerFileHandler > should convert convertible image types to PNG
[WORKER DEBUG] FlyerFileHandler: prepareImageInputs called for /tmp/flyer.gif
[WORKER DEBUG] FlyerFileHandler: Detected extension: .gif
 
stderr | src/services/flyerFileHandler.server.test.ts > FlyerFileHandler > should throw UnsupportedFileTypeError for unsupported types
[WORKER DEBUG] FlyerFileHandler: prepareImageInputs called for /tmp/document.txt
[WORKER DEBUG] FlyerFileHandler: Detected extension: .txt
 
stderr | src/services/flyerFileHandler.server.test.ts > FlyerFileHandler > Image Processing > should process a JPEG to strip EXIF data
[WORKER DEBUG] FlyerFileHandler: prepareImageInputs called for /tmp/flyer.jpg
[WORKER DEBUG] FlyerFileHandler: Detected extension: .jpg
 
 
src/pages/ResetPasswordPage.test.tsx 0/8
src/routes/store.routes.test.ts [queued]
src/services/db/store.db.test.ts [queued]
src/services/flyerFileHandler.server.test.ts 1/10
src/services/monitoringService.server.test.ts [queued]
src/tests/e2e/error-reporting.e2e.test.ts [queued]
src/tests/integration/price.integration.test.ts [queued]
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 88 passed (242)
Tests 14 failed | 2448 passed | 272 skipped (2764)
Start at 07:51:47
Duration 208.73s
stderr | src/services/flyerFileHandler.server.test.ts > FlyerFileHandler > Image Processing > should process a PNG to strip metadata
[WORKER DEBUG] FlyerFileHandler: prepareImageInputs called for /tmp/flyer.png
[WORKER DEBUG] FlyerFileHandler: Detected extension: .png
 
stderr | src/services/flyerFileHandler.server.test.ts > FlyerFileHandler > Image Processing > should handle other supported image types (e.g. webp) directly without processing
[WORKER DEBUG] FlyerFileHandler: prepareImageInputs called for /tmp/flyer.webp
[WORKER DEBUG] FlyerFileHandler: Detected extension: .webp
 
stderr | src/services/flyerFileHandler.server.test.ts > FlyerFileHandler > Image Processing > should throw ImageConversionError if sharp fails during JPEG processing
[WORKER DEBUG] FlyerFileHandler: prepareImageInputs called for /tmp/flyer.jpg
[WORKER DEBUG] FlyerFileHandler: Detected extension: .jpg
 
stderr | src/services/flyerFileHandler.server.test.ts > FlyerFileHandler > Image Processing > should throw ImageConversionError if sharp fails during PNG processing
[WORKER DEBUG] FlyerFileHandler: prepareImageInputs called for /tmp/flyer.png
[WORKER DEBUG] FlyerFileHandler: Detected extension: .png
 
 
src/pages/ResetPasswordPage.test.tsx 0/8
src/routes/store.routes.test.ts [queued]
src/services/db/store.db.test.ts [queued]
src/services/flyerFileHandler.server.test.ts 10/10
src/services/monitoringService.server.test.ts [queued]
src/tests/e2e/error-reporting.e2e.test.ts [queued]
src/tests/integration/price.integration.test.ts [queued]
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 88 passed (242)
Tests 14 failed | 2457 passed | 272 skipped (2764)
Start at 07:51:47
Duration 210.05s
src/services/flyerFileHandler.server.test.ts (10 tests) 137ms
 
src/pages/ResetPasswordPage.test.tsx 2/8
src/routes/store.routes.test.ts [queued]
src/services/db/store.db.test.ts [queued]
src/services/flyerFileHandler.server.test.ts 10/10
src/services/monitoringService.server.test.ts [queued]
src/tests/e2e/error-reporting.e2e.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 89 passed (242)
Tests 14 failed | 2459 passed | 272 skipped (2769)
Start at 07:51:47
Duration 210.15s
 
src/pages/ResetPasswordPage.test.tsx 3/8
src/routes/store.routes.test.ts [queued]
src/services/db/store.db.test.ts [queued]
src/services/flyerFileHandler.server.test.ts 10/10
src/services/monitoringService.server.test.ts [queued]
src/tests/e2e/error-reporting.e2e.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 89 passed (242)
Tests 14 failed | 2460 passed | 272 skipped (2769)
Start at 07:51:47
Duration 210.65s
 
src/pages/ResetPasswordPage.test.tsx 3/8
src/routes/store.routes.test.ts [queued]
src/services/db/store.db.test.ts [queued]
src/services/flyerFileHandler.server.test.ts 10/10
src/services/monitoringService.server.test.ts [queued]
src/tests/e2e/error-reporting.e2e.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 89 passed (242)
Tests 14 failed | 2460 passed | 272 skipped (2769)
Start at 07:51:47
Duration 211.06s
 
src/pages/ResetPasswordPage.test.tsx 4/8
src/routes/store.routes.test.ts [queued]
src/services/db/store.db.test.ts [queued]
src/services/monitoringService.server.test.ts [queued]
src/tests/e2e/error-reporting.e2e.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 89 passed (242)
Tests 14 failed | 2461 passed | 272 skipped (2769)
Start at 07:51:47
Duration 211.17s
 
src/pages/ResetPasswordPage.test.tsx 4/8
src/routes/store.routes.test.ts [queued]
src/services/db/store.db.test.ts [queued]
src/services/monitoringService.server.test.ts [queued]
src/tests/e2e/error-reporting.e2e.test.ts 0/10
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 89 passed (242)
Tests 14 failed | 2461 passed | 272 skipped (2779)
Start at 07:51:47
Duration 211.41s
src/services/monitoringService.server.test.ts (8 tests) 66ms
 
src/pages/ResetPasswordPage.test.tsx 4/8
src/routes/store.routes.test.ts [queued]
src/services/db/store.db.test.ts 1/18
src/services/monitoringService.server.test.ts 8/8
src/tests/e2e/error-reporting.e2e.test.ts 0/10
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 24 failed | 90 passed (242)
Tests 15 failed | 2469 passed | 272 skipped (2805)
Start at 07:51:47
Duration 211.61s
src/services/db/store.db.test.ts (18 tests | 14 failed) 114ms
× should create a store with just a name 41ms
× should create a store with name and logo URL 9ms
× should create a store with created_by user ID 2ms
× should reject duplicate store names 3ms
× should retrieve a store by ID 3ms
should throw NotFoundError for non-existent store 9ms
× should retrieve all stores 1ms
should return empty array when no stores exist 3ms
× should update store name 3ms
× should update store logo URL 2ms
× should update both name and logo 2ms
should throw error for non-existent store 6ms
× should delete a store 3ms
should throw error when deleting non-existent store 7ms
× should find stores by partial name match 3ms
× should be case-insensitive 2ms
× should return empty array for no matches 2ms
× should limit results to 10 by default 3ms
 
src/pages/ResetPasswordPage.test.tsx 5/8
src/routes/store.routes.test.ts [queued]
src/services/db/store.db.test.ts 18/18
src/services/monitoringService.server.test.ts 8/8
src/tests/e2e/error-reporting.e2e.test.ts 3/10
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 25 failed | 90 passed (242)
Tests 28 failed | 2477 passed | 272 skipped (2805)
Start at 07:51:47
Duration 211.82s
 
src/pages/ResetPasswordPage.test.tsx 5/8
src/routes/store.routes.test.ts [queued]
src/services/db/store.db.test.ts 18/18
src/services/monitoringService.server.test.ts 8/8
src/tests/e2e/error-reporting.e2e.test.ts 3/10
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 25 failed | 90 passed (242)
Tests 28 failed | 2477 passed | 272 skipped (2805)
Start at 07:51:47
Duration 212.02s
 
src/pages/ResetPasswordPage.test.tsx 5/8
src/routes/store.routes.test.ts [queued]
src/services/db/store.db.test.ts 18/18
src/services/monitoringService.server.test.ts 8/8
src/tests/e2e/error-reporting.e2e.test.ts 9/10
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 25 failed | 90 passed (242)
Tests 28 failed | 2483 passed | 272 skipped (2805)
Start at 07:51:47
Duration 212.23s
src/tests/e2e/error-reporting.e2e.test.ts (10 tests) 850ms
should export initSentry function 443ms
 
src/pages/ResetPasswordPage.test.tsx 7/8
src/routes/store.routes.test.ts [queued]
src/tests/e2e/error-reporting.e2e.test.ts 10/10
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 25 failed | 91 passed (242)
Tests 28 failed | 2486 passed | 272 skipped (2805)
Start at 07:51:47
Duration 212.73s
src/pages/ResetPasswordPage.test.tsx (8 tests) 4916ms
should render the form with password fields and a submit button 1264ms
should call resetPassword and show success message on valid submission 581ms
should show an error message if passwords do not match 407ms
should show an error message if the API call fails 589ms
should show an error message if API returns a non-JSON error response 465ms
should show a loading spinner while submitting 687ms
should show an error if no token is provided 468ms
should handle unknown errors 437ms
 
src/pages/ResetPasswordPage.test.tsx 8/8
src/routes/store.routes.test.ts [queued]
src/tests/e2e/error-reporting.e2e.test.ts 10/10
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 0/13
 
Test Files 25 failed | 92 passed (242)
Tests 28 failed | 2487 passed | 272 skipped (2805)
Start at 07:51:47
Duration 213.04s
 
src/pages/ResetPasswordPage.test.tsx 8/8
src/routes/store.routes.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 1/13
 
Test Files 25 failed | 92 passed (242)
Tests 28 failed | 2487 passed | 273 skipped (2805)
Start at 07:51:47
Duration 213.45s
src/tests/integration/reactions.integration.test.ts (13 tests | 13 skipped) 10024ms
should return reactions (public endpoint)
should filter reactions by entityType
should filter reactions by entityId
should return reaction summary for an entity
should return 400 when entityType is missing
should return 400 when entityId is missing
should require authentication
should add a reaction when none exists
should remove the reaction when toggled again
should return 400 for missing entity_type
should return 400 for missing entity_id
should return 400 for missing reaction_type
should accept entity_id as string (required format)
 
src/components/RecipeSuggester.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 13/13
 
Test Files 26 failed | 92 passed (242)
Tests 28 failed | 2487 passed | 285 skipped (2805)
Start at 07:51:47
Duration 213.75s
 
src/components/RecipeSuggester.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
src/tests/integration/reactions.integration.test.ts 13/13
 
Test Files 26 failed | 92 passed (242)
Tests 28 failed | 2487 passed | 285 skipped (2805)
Start at 07:51:47
Duration 214.21s
 
src/components/RecipeSuggester.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
 
Test Files 26 failed | 92 passed (242)
Tests 28 failed | 2487 passed | 285 skipped (2805)
Start at 07:51:47
Duration 215.13s
 
src/components/RecipeSuggester.test.tsx [queued]
src/hooks/useFlyers.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
 
Test Files 26 failed | 92 passed (242)
Tests 28 failed | 2487 passed | 285 skipped (2805)
Start at 07:51:47
Duration 215.23s
 
src/components/RecipeSuggester.test.tsx [queued]
src/hooks/useFlyers.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
 
Test Files 26 failed | 92 passed (242)
Tests 28 failed | 2487 passed | 285 skipped (2805)
Start at 07:51:47
Duration 216.15s
 
src/components/RecipeSuggester.test.tsx [queued]
src/features/charts/TopDeals.test.tsx [queued]
src/hooks/useFlyers.test.tsx [queued]
src/pages/admin/CorrectionsPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
 
Test Files 26 failed | 92 passed (242)
Tests 28 failed | 2487 passed | 285 skipped (2805)
Start at 07:51:47
Duration 216.52s
 
src/components/RecipeSuggester.test.tsx [queued]
src/features/charts/TopDeals.test.tsx [queued]
src/hooks/useFlyers.test.tsx [queued]
src/pages/admin/CorrectionsPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/processingErrors.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
 
Test Files 26 failed | 92 passed (242)
Tests 28 failed | 2487 passed | 285 skipped (2805)
Start at 07:51:47
Duration 217.79s
 
src/components/RecipeSuggester.test.tsx [queued]
src/features/charts/TopDeals.test.tsx [queued]
src/hooks/useFlyers.test.tsx [queued]
src/pages/admin/AdminStatsPage.test.tsx [queued]
src/pages/admin/CorrectionsPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/processingErrors.test.ts [queued]
src/tests/integration/price.integration.test.ts 0/5
 
Test Files 26 failed | 92 passed (242)
Tests 28 failed | 2487 passed | 285 skipped (2805)
Start at 07:51:47
Duration 218.80s
src/services/processingErrors.test.ts (13 tests) 45ms
 
src/components/RecipeSuggester.test.tsx [queued]
src/features/charts/TopDeals.test.tsx [queued]
src/hooks/useFlyers.test.tsx [queued]
src/pages/admin/AdminStatsPage.test.tsx [queued]
src/pages/admin/CorrectionsPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/processingErrors.test.ts 13/13
src/tests/integration/price.integration.test.ts 0/5
 
Test Files 26 failed | 93 passed (242)
Tests 28 failed | 2500 passed | 285 skipped (2818)
Start at 07:51:47
Duration 218.94s
 
src/components/RecipeSuggester.test.tsx [queued]
src/features/charts/TopDeals.test.tsx [queued]
src/hooks/useFlyers.test.tsx 0/6
src/pages/admin/AdminStatsPage.test.tsx [queued]
src/pages/admin/CorrectionsPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/processingErrors.test.ts 13/13
src/tests/integration/price.integration.test.ts 0/5
 
Test Files 26 failed | 93 passed (242)
Tests 28 failed | 2500 passed | 285 skipped (2824)
Start at 07:51:47
Duration 219.29s
 
src/components/RecipeSuggester.test.tsx 0/8
src/features/charts/TopDeals.test.tsx 0/5
src/hooks/useFlyers.test.tsx 1/6
src/pages/admin/AdminStatsPage.test.tsx [queued]
src/pages/admin/CorrectionsPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/processingErrors.test.ts 13/13
src/tests/integration/price.integration.test.ts 0/5
 
Test Files 26 failed | 93 passed (242)
Tests 28 failed | 2501 passed | 285 skipped (2837)
Start at 07:51:47
Duration 219.49s
src/hooks/useFlyers.test.tsx (6 tests) 161ms
 
src/components/RecipeSuggester.test.tsx 0/8
src/features/charts/TopDeals.test.tsx 0/5
src/hooks/useFlyers.test.tsx 6/6
src/pages/admin/AdminStatsPage.test.tsx [queued]
src/pages/admin/CorrectionsPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/processingErrors.test.ts 13/13
src/tests/integration/price.integration.test.ts 0/5
 
Test Files 26 failed | 94 passed (242)
Tests 28 failed | 2506 passed | 285 skipped (2837)
Start at 07:51:47
Duration 219.73s
src/tests/integration/price.integration.test.ts (5 tests | 5 skipped) 10021ms
should return the correct price history for a given master item ID
should respect the limit parameter
should respect the offset parameter
should return price history sorted by date in ascending order
should return an empty array for a master item ID with no price history
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > renders correctly with initial state
TEST: Verifying initial render state
 
 
src/components/RecipeSuggester.test.tsx 0/8
src/features/charts/TopDeals.test.tsx 1/5
src/pages/admin/AdminStatsPage.test.tsx [queued]
src/pages/admin/CorrectionsPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/price.integration.test.ts 5/5
 
Test Files 27 failed | 94 passed (242)
Tests 28 failed | 2507 passed | 290 skipped (2837)
Start at 07:51:47
Duration 220.90s
 
src/components/RecipeSuggester.test.tsx 0/8
src/features/charts/TopDeals.test.tsx 2/5
src/pages/admin/AdminStatsPage.test.tsx [queued]
src/pages/admin/CorrectionsPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/price.integration.test.ts 5/5
 
Test Files 27 failed | 94 passed (242)
Tests 28 failed | 2508 passed | 290 skipped (2837)
Start at 07:51:47
Duration 221.17s
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > shows validation error if no ingredients are entered
TEST: Verifying validation for empty input
 
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > shows validation error if no ingredients are entered
TEST: Validation error displayed correctly
 
 
src/components/RecipeSuggester.test.tsx 1/8
src/features/charts/TopDeals.test.tsx 2/5
src/pages/admin/AdminStatsPage.test.tsx [queued]
src/pages/admin/CorrectionsPage.test.tsx 0/6
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 94 passed (242)
Tests 28 failed | 2509 passed | 290 skipped (2843)
Start at 07:51:47
Duration 221.37s
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > calls suggestRecipe and displays suggestion on success
TEST: Verifying successful recipe suggestion flow
 
src/features/charts/TopDeals.test.tsx (5 tests) 2074ms
should render the correct heading 1114ms
should display up to 10 items, sorted by price_in_cents ascending 811ms
 
src/components/RecipeSuggester.test.tsx 2/8
src/features/charts/TopDeals.test.tsx 5/5
src/pages/admin/AdminStatsPage.test.tsx [queued]
src/pages/admin/CorrectionsPage.test.tsx 0/6
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 95 passed (242)
Tests 28 failed | 2513 passed | 290 skipped (2843)
Start at 07:51:47
Duration 221.64s
 
src/components/RecipeSuggester.test.tsx 2/8
src/features/charts/TopDeals.test.tsx 5/5
src/pages/admin/AdminStatsPage.test.tsx 0/7
src/pages/admin/CorrectionsPage.test.tsx 0/6
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 95 passed (242)
Tests 28 failed | 2513 passed | 290 skipped (2850)
Start at 07:51:47
Duration 221.95s
 
src/components/RecipeSuggester.test.tsx 2/8
src/features/charts/TopDeals.test.tsx 5/5
src/pages/admin/AdminStatsPage.test.tsx 0/7
src/pages/admin/CorrectionsPage.test.tsx 0/6
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 95 passed (242)
Tests 28 failed | 2513 passed | 290 skipped (2850)
Start at 07:51:47
Duration 222.16s
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > calls suggestRecipe and displays suggestion on success
TEST: Suggestion displayed and API called with correct args
 
 
src/components/RecipeSuggester.test.tsx 2/8
src/pages/admin/AdminStatsPage.test.tsx 0/7
src/pages/admin/CorrectionsPage.test.tsx 1/6
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 95 passed (242)
Tests 28 failed | 2514 passed | 290 skipped (2850)
Start at 07:51:47
Duration 222.78s
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > handles API errors (non-200 response) gracefully
TEST: Verifying API error handling (400/500 responses)
 
 
src/components/RecipeSuggester.test.tsx 2/8
src/pages/admin/AdminStatsPage.test.tsx 0/7
src/pages/admin/CorrectionsPage.test.tsx 2/6
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 95 passed (242)
Tests 28 failed | 2515 passed | 290 skipped (2850)
Start at 07:51:47
Duration 222.88s
 
src/components/RecipeSuggester.test.tsx 3/8
src/pages/admin/AdminStatsPage.test.tsx 0/7
src/pages/admin/CorrectionsPage.test.tsx 3/6
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts [queued]
 
Test Files 27 failed | 95 passed (242)
Tests 28 failed | 2517 passed | 290 skipped (2850)
Start at 07:51:47
Duration 223.08s
 
src/components/RecipeSuggester.test.tsx 3/8
src/pages/admin/AdminStatsPage.test.tsx 0/7
src/pages/admin/CorrectionsPage.test.tsx 5/6
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts [queued]
 
Test Files 27 failed | 95 passed (242)
Tests 28 failed | 2519 passed | 290 skipped (2850)
Start at 07:51:47
Duration 223.18s
src/pages/admin/CorrectionsPage.test.tsx (6 tests) 1791ms
should render a loading spinner while fetching data 1295ms
 
src/components/RecipeSuggester.test.tsx 3/8
src/pages/admin/AdminStatsPage.test.tsx 0/7
src/pages/admin/CorrectionsPage.test.tsx 6/6
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts [queued]
 
Test Files 27 failed | 96 passed (242)
Tests 28 failed | 2520 passed | 290 skipped (2850)
Start at 07:51:47
Duration 224.43s
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > handles API errors (non-200 response) gracefully
TEST: API error message displayed to user
 
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > handles network exceptions and logs them
TEST: Verifying network exception handling
 
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > handles network exceptions and logs them
TEST: Network error caught and logged
 
 
src/components/RecipeSuggester.test.tsx 4/8
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/pages/admin/AdminStatsPage.test.tsx 4/7
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts [queued]
 
Test Files 27 failed | 96 passed (242)
Tests 28 failed | 2525 passed | 290 skipped (2850)
Start at 07:51:47
Duration 224.53s
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > clears previous errors when submitting again
TEST: Verifying error clearing on re-submit
 
 
src/components/RecipeSuggester.test.tsx 5/8
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/pages/admin/AdminStatsPage.test.tsx 4/7
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts [queued]
 
Test Files 27 failed | 96 passed (242)
Tests 28 failed | 2526 passed | 290 skipped (2850)
Start at 07:51:47
Duration 225.89s
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > clears previous errors when submitting again
TEST: Previous error cleared successfully
 
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > uses default error message when API error response has no message
TEST: Verifying default error message for API failure
 
stdout | src/components/RecipeSuggester.test.tsx > RecipeSuggester Component > handles non-Error objects thrown during fetch
TEST: Verifying handling of non-Error exceptions
 
src/pages/admin/AdminStatsPage.test.tsx (7 tests) 2856ms
should render a loading spinner while fetching stats 1539ms
should display stats cards when data is fetched successfully 426ms
should render a link back to the admin dashboard 485ms
 
src/components/RecipeSuggester.test.tsx 7/8
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts [queued]
 
Test Files 27 failed | 97 passed (242)
Tests 28 failed | 2531 passed | 290 skipped (2850)
Start at 07:51:47
Duration 226.02s
 
src/components/RecipeSuggester.test.tsx 8/8
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts [queued]
 
Test Files 27 failed | 97 passed (242)
Tests 28 failed | 2532 passed | 290 skipped (2850)
Start at 07:51:47
Duration 226.69s
src/components/RecipeSuggester.test.tsx (8 tests) 6943ms
renders correctly with initial state 1100ms
shows validation error if no ingredients are entered 847ms
calls suggestRecipe and displays suggestion on success 1461ms
handles API errors (non-200 response) gracefully 896ms
handles network exceptions and logs them 596ms
clears previous errors when submitting again 941ms
uses default error message when API error response has no message 560ms
handles non-Error objects thrown during fetch 530ms
 
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts [queued]
src/utils/unitConverter.test.ts [queued]
 
Test Files 27 failed | 98 passed (242)
Tests 28 failed | 2532 passed | 290 skipped (2850)
Start at 07:51:47
Duration 226.80s
 
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx [queued]
src/hooks/useFlyerSelection.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts [queued]
src/utils/unitConverter.test.ts [queued]
 
Test Files 27 failed | 98 passed (242)
Tests 28 failed | 2532 passed | 290 skipped (2850)
Start at 07:51:47
Duration 227.56s
 
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx [queued]
src/hooks/useFlyerSelection.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts [queued]
src/utils/unitConverter.test.ts [queued]
 
Test Files 27 failed | 98 passed (242)
Tests 28 failed | 2532 passed | 290 skipped (2850)
Start at 07:51:47
Duration 228.35s
 
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx [queued]
src/hooks/useFlyerSelection.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts 1/13
src/utils/unitConverter.test.ts [queued]
 
Test Files 27 failed | 98 passed (242)
Tests 28 failed | 2533 passed | 290 skipped (2863)
Start at 07:51:47
Duration 228.61s
src/services/aiAnalysisService.test.ts (13 tests) 98ms
 
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx [queued]
src/hooks/useFlyerSelection.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts 13/13
src/utils/unitConverter.test.ts 0/22
 
Test Files 27 failed | 99 passed (242)
Tests 28 failed | 2545 passed | 290 skipped (2885)
Start at 07:51:47
Duration 229.13s
 
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx [queued]
src/hooks/useFlyerSelection.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts 13/13
src/utils/unitConverter.test.ts 1/22
 
Test Files 27 failed | 99 passed (242)
Tests 28 failed | 2546 passed | 290 skipped (2885)
Start at 07:51:47
Duration 229.23s
 
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx [queued]
src/hooks/useFlyerSelection.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/aiAnalysisService.test.ts 13/13
src/utils/unitConverter.test.ts 2/22
 
Test Files 27 failed | 99 passed (242)
Tests 28 failed | 2547 passed | 290 skipped (2885)
Start at 07:51:47
Duration 229.33s
src/utils/unitConverter.test.ts (22 tests) 174ms
 
src/features/flyer/FlyerDisplay.test.tsx [queued]
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx [queued]
src/hooks/useFlyerSelection.test.tsx 0/13
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts [queued]
src/utils/unitConverter.test.ts 22/22
 
Test Files 27 failed | 100 passed (242)
Tests 28 failed | 2567 passed | 290 skipped (2898)
Start at 07:51:47
Duration 229.99s
 
src/config.test.ts [queued]
src/features/flyer/FlyerDisplay.test.tsx 0/18
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx 0/10
src/hooks/useFlyerSelection.test.tsx 1/13
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts [queued]
 
Test Files 27 failed | 100 passed (242)
Tests 28 failed | 2568 passed | 290 skipped (2926)
Start at 07:51:47
Duration 230.09s
 
src/config.test.ts [queued]
src/features/flyer/FlyerDisplay.test.tsx 0/18
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx 0/10
src/hooks/useFlyerSelection.test.tsx 1/13
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts [queued]
 
Test Files 27 failed | 100 passed (242)
Tests 28 failed | 2568 passed | 290 skipped (2926)
Start at 07:51:47
Duration 230.71s
src/hooks/useFlyerSelection.test.tsx (13 tests) 288ms
 
src/config.test.ts [queued]
src/features/flyer/FlyerDisplay.test.tsx 0/18
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx 8/10
src/hooks/useFlyerSelection.test.tsx 13/13
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts [queued]
 
Test Files 27 failed | 101 passed (242)
Tests 28 failed | 2588 passed | 290 skipped (2926)
Start at 07:51:47
Duration 230.81s
 
src/config.test.ts [queued]
src/features/flyer/FlyerDisplay.test.tsx 2/18
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx 10/10
src/hooks/useFlyerSelection.test.tsx 13/13
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts [queued]
 
Test Files 27 failed | 101 passed (242)
Tests 28 failed | 2592 passed | 290 skipped (2926)
Start at 07:51:47
Duration 231.08s
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx (10 tests) 794ms
 
src/config.test.ts [queued]
src/features/flyer/FlyerDisplay.test.tsx 3/18
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx 10/10
src/hooks/useFlyerSelection.test.tsx 13/13
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts [queued]
 
Test Files 27 failed | 102 passed (242)
Tests 28 failed | 2593 passed | 290 skipped (2926)
Start at 07:51:47
Duration 231.22s
 
src/config.test.ts 0/30
src/features/flyer/FlyerDisplay.test.tsx 7/18
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx 10/10
src/hooks/useFlyerSelection.test.tsx 13/13
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts [queued]
 
Test Files 27 failed | 102 passed (242)
Tests 28 failed | 2597 passed | 290 skipped (2956)
Start at 07:51:47
Duration 231.43s
src/config.test.ts (30 tests) 74ms
 
src/config.test.ts 30/30
src/features/flyer/FlyerDisplay.test.tsx 9/18
src/hooks/mutations/useUpdateShoppingListItemMutation.test.tsx 10/10
src/hooks/useFlyerSelection.test.tsx 13/13
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts [queued]
 
Test Files 27 failed | 103 passed (242)
Tests 28 failed | 2629 passed | 290 skipped (2956)
Start at 07:51:47
Duration 231.63s
 
src/config.test.ts 30/30
src/features/flyer/FlyerDisplay.test.tsx 11/18
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts [queued]
src/services/analyticsService.server.test.ts [queued]
 
Test Files 27 failed | 103 passed (242)
Tests 28 failed | 2631 passed | 290 skipped (2956)
Start at 07:51:47
Duration 231.83s
src/features/flyer/FlyerDisplay.test.tsx (18 tests) 1826ms
should render all elements when all props are provided 764ms
 
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts [queued]
src/services/analyticsService.server.test.ts [queued]
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 104 passed (242)
Tests 28 failed | 2638 passed | 290 skipped (2956)
Start at 07:51:47
Duration 232.64s
 
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts 0/10
src/services/analyticsService.server.test.ts [queued]
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 104 passed (242)
Tests 28 failed | 2638 passed | 290 skipped (2966)
Start at 07:51:47
Duration 233.48s
 
src/features/charts/PriceChart.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts 0/10
src/services/analyticsService.server.test.ts [queued]
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 104 passed (242)
Tests 28 failed | 2638 passed | 290 skipped (2966)
Start at 07:51:47
Duration 233.97s
stdout | src/routes/system.routes.test.ts > System Routes (/api/system) > GET /pm2-status > should return 500 if pm2 command produces stderr output
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/charts/PriceChart.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts 10/10
src/services/analyticsService.server.test.ts 1/6
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 104 passed (242)
Tests 28 failed | 2649 passed | 290 skipped (2972)
Start at 07:51:47
Duration 234.19s
stderr | src/routes/system.routes.test.ts > System Routes (/api/system) > GET /pm2-status > should return 500 if pm2 command produces stderr output
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: PM2 command produced an error: A non-fatal warning occurred.
at /app/src/routes/system.routes.test.ts:95:28
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/charts/PriceChart.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts 10/10
src/services/analyticsService.server.test.ts 1/6
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 104 passed (242)
Tests 28 failed | 2649 passed | 290 skipped (2972)
Start at 07:51:47
Duration 234.19s
stdout | src/routes/system.routes.test.ts > System Routes (/api/system) > GET /pm2-status > should return 500 on a generic exec error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/charts/PriceChart.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts 10/10
src/services/analyticsService.server.test.ts 1/6
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 104 passed (242)
Tests 28 failed | 2649 passed | 290 skipped (2972)
Start at 07:51:47
Duration 234.19s
stderr | src/routes/system.routes.test.ts > System Routes (/api/system) > GET /pm2-status > should return 500 on a generic exec error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: System error
at /app/src/routes/system.routes.test.ts:106:28
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/charts/PriceChart.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts 10/10
src/services/analyticsService.server.test.ts 1/6
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 104 passed (242)
Tests 28 failed | 2649 passed | 290 skipped (2972)
Start at 07:51:47
Duration 234.19s
stdout | src/routes/system.routes.test.ts > System Routes (/api/system) > POST /geocode > should return 500 if the geocoding service throws an error
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/charts/PriceChart.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts 10/10
src/services/analyticsService.server.test.ts 1/6
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 104 passed (242)
Tests 28 failed | 2649 passed | 290 skipped (2972)
Start at 07:51:47
Duration 234.19s
stderr | src/routes/system.routes.test.ts > System Routes (/api/system) > POST /geocode > should return 500 if the geocoding service throws an error
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Geocoding service unavailable
at /app/src/routes/system.routes.test.ts:144:28
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/charts/PriceChart.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/routes/system.routes.test.ts 10/10
src/services/analyticsService.server.test.ts 1/6
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 104 passed (242)
Tests 28 failed | 2649 passed | 290 skipped (2972)
Start at 07:51:47
Duration 234.19s
src/routes/system.routes.test.ts (10 tests) 362ms
src/services/analyticsService.server.test.ts (6 tests) 71ms
 
src/features/charts/PriceChart.test.tsx [queued]
src/hooks/useWatchedItems.test.tsx [queued]
src/routes/price.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 106 passed (242)
Tests 28 failed | 2654 passed | 290 skipped (2972)
Start at 07:51:47
Duration 234.46s
 
src/features/charts/PriceChart.test.tsx [queued]
src/hooks/useAppInitialization.test.tsx [queued]
src/hooks/useWatchedItems.test.tsx [queued]
src/routes/price.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 106 passed (242)
Tests 28 failed | 2654 passed | 290 skipped (2972)
Start at 07:51:47
Duration 235.08s
 
src/features/charts/PriceChart.test.tsx [queued]
src/hooks/useAppInitialization.test.tsx [queued]
src/hooks/useWatchedItems.test.tsx [queued]
src/routes/price.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/gamification.db.test.ts [queued]
 
Test Files 27 failed | 106 passed (242)
Tests 28 failed | 2654 passed | 290 skipped (2972)
Start at 07:51:47
Duration 236.07s
 
src/features/charts/PriceChart.test.tsx [queued]
src/hooks/useAppInitialization.test.tsx [queued]
src/hooks/useWatchedItems.test.tsx [queued]
src/routes/price.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/gamification.db.test.ts 0/9
 
Test Files 27 failed | 106 passed (242)
Tests 28 failed | 2654 passed | 290 skipped (2981)
Start at 07:51:47
Duration 236.25s
 
src/features/charts/PriceChart.test.tsx [queued]
src/hooks/useAppInitialization.test.tsx [queued]
src/hooks/useWatchedItems.test.tsx [queued]
src/routes/price.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/gamification.db.test.ts 1/9
 
Test Files 27 failed | 106 passed (242)
Tests 28 failed | 2655 passed | 290 skipped (2981)
Start at 07:51:47
Duration 236.53s
src/services/db/gamification.db.test.ts (9 tests) 59ms
 
src/features/charts/PriceChart.test.tsx [queued]
src/hooks/useAppInitialization.test.tsx [queued]
src/hooks/useWatchedItems.test.tsx [queued]
src/routes/price.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/gamification.db.test.ts 9/9
 
Test Files 27 failed | 107 passed (242)
Tests 28 failed | 2663 passed | 290 skipped (2981)
Start at 07:51:47
Duration 237.02s
 
src/features/charts/PriceChart.test.tsx [queued]
src/hooks/useAppInitialization.test.tsx [queued]
src/hooks/useDataExtraction.test.ts [queued]
src/hooks/useWatchedItems.test.tsx [queued]
src/routes/admin.routes.test.ts [queued]
src/routes/price.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 107 passed (242)
Tests 28 failed | 2663 passed | 290 skipped (2981)
Start at 07:51:47
Duration 238.32s
 
src/features/charts/PriceChart.test.tsx 0/8
src/hooks/useAppInitialization.test.tsx [queued]
src/hooks/useDataExtraction.test.ts [queued]
src/hooks/useWatchedItems.test.tsx 0/9
src/routes/admin.routes.test.ts [queued]
src/routes/price.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 107 passed (242)
Tests 28 failed | 2663 passed | 290 skipped (2998)
Start at 07:51:47
Duration 238.42s
 
src/features/charts/PriceChart.test.tsx 0/8
src/hooks/useAppInitialization.test.tsx [queued]
src/hooks/useDataExtraction.test.ts [queued]
src/hooks/useWatchedItems.test.tsx 2/9
src/routes/admin.routes.test.ts [queued]
src/routes/price.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 107 passed (242)
Tests 28 failed | 2665 passed | 290 skipped (2998)
Start at 07:51:47
Duration 238.52s
src/hooks/useWatchedItems.test.tsx (9 tests) 243ms
 
src/features/charts/PriceChart.test.tsx 0/8
src/hooks/useAppInitialization.test.tsx 1/10
src/hooks/useDataExtraction.test.ts [queued]
src/hooks/useWatchedItems.test.tsx 9/9
src/routes/admin.routes.test.ts [queued]
src/routes/price.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 108 passed (242)
Tests 28 failed | 2673 passed | 290 skipped (3008)
Start at 07:51:47
Duration 238.97s
src/hooks/useAppInitialization.test.tsx (10 tests) 294ms
 
src/features/charts/PriceChart.test.tsx 0/8
src/hooks/useAppInitialization.test.tsx 10/10
src/hooks/useDataExtraction.test.ts [queued]
src/hooks/useWatchedItems.test.tsx 9/9
src/routes/admin.routes.test.ts [queued]
src/routes/price.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 109 passed (242)
Tests 28 failed | 2682 passed | 290 skipped (3008)
Start at 07:51:47
Duration 239.43s
 
src/features/charts/PriceChart.test.tsx 0/8
src/hooks/useAppInitialization.test.tsx 10/10
src/hooks/useDataExtraction.test.ts [queued]
src/routes/admin.routes.test.ts [queued]
src/routes/price.routes.test.ts 0/10
src/routes/store.routes.test.ts [queued]
 
Test Files 27 failed | 109 passed (242)
Tests 28 failed | 2682 passed | 290 skipped (3018)
Start at 07:51:47
Duration 239.96s
 
src/features/charts/PriceChart.test.tsx 1/8
src/hooks/useDataExtraction.test.ts 1/9
src/routes/admin.routes.test.ts [queued]
src/routes/price.routes.test.ts 0/10
src/routes/store.routes.test.ts [queued]
src/services/gamificationService.test.ts [queued]
 
Test Files 27 failed | 109 passed (242)
Tests 28 failed | 2684 passed | 290 skipped (3027)
Start at 07:51:47
Duration 240.06s
stdout | src/routes/price.routes.test.ts > Price Routes (/api/price-history) > POST / > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/features/charts/PriceChart.test.tsx 1/8
src/hooks/useDataExtraction.test.ts 1/9
src/routes/admin.routes.test.ts [queued]
src/routes/price.routes.test.ts 10/10
src/routes/store.routes.test.ts [queued]
src/services/gamificationService.test.ts [queued]
 
Test Files 27 failed | 109 passed (242)
Tests 28 failed | 2694 passed | 290 skipped (3027)
Start at 07:51:47
Duration 240.66s
stderr | src/routes/price.routes.test.ts > Price Routes (/api/price-history) > POST / > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Database connection failed
at /app/src/routes/price.routes.test.ts:90:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/features/charts/PriceChart.test.tsx 1/8
src/hooks/useDataExtraction.test.ts 1/9
src/routes/admin.routes.test.ts [queued]
src/routes/price.routes.test.ts 10/10
src/routes/store.routes.test.ts [queued]
src/services/gamificationService.test.ts [queued]
 
Test Files 27 failed | 109 passed (242)
Tests 28 failed | 2694 passed | 290 skipped (3027)
Start at 07:51:47
Duration 240.66s
src/routes/price.routes.test.ts (10 tests) 432ms
src/hooks/useDataExtraction.test.ts (9 tests) 280ms
src/features/charts/PriceChart.test.tsx (8 tests) 2231ms
should render a login prompt when user is not authenticated 1096ms
should render the table with deal items when data is provided 854ms
 
src/features/charts/PriceChart.test.tsx 8/8
src/hooks/useDataExtraction.test.ts 9/9
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/gamificationService.test.ts [queued]
src/tests/integration/flyer.integration.test.ts [queued]
 
Test Files 27 failed | 112 passed (242)
Tests 28 failed | 2709 passed | 290 skipped (3027)
Start at 07:51:47
Duration 241.58s
 
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/schemas/flyer.schemas.test.ts [queued]
src/services/gamificationService.test.ts 1/9
src/tests/integration/flyer.integration.test.ts [queued]
 
Test Files 27 failed | 112 passed (242)
Tests 28 failed | 2710 passed | 290 skipped (3036)
Start at 07:51:47
Duration 241.70s
src/services/gamificationService.test.ts (9 tests) 52ms
 
src/pages/HomePage.test.tsx [queued]
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/schemas/flyer.schemas.test.ts [queued]
src/tests/integration/flyer.integration.test.ts [queued]
 
Test Files 27 failed | 113 passed (242)
Tests 28 failed | 2718 passed | 290 skipped (3036)
Start at 07:51:47
Duration 242.64s
 
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx [queued]
src/pages/HomePage.test.tsx [queued]
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/schemas/flyer.schemas.test.ts [queued]
src/tests/integration/flyer.integration.test.ts [queued]
 
Test Files 27 failed | 113 passed (242)
Tests 28 failed | 2718 passed | 290 skipped (3036)
Start at 07:51:47
Duration 243.17s
 
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx [queued]
src/pages/HomePage.test.tsx [queued]
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/schemas/flyer.schemas.test.ts [queued]
src/tests/integration/flyer.integration.test.ts [queued]
src/utils/checksum.test.ts [queued]
 
Test Files 27 failed | 113 passed (242)
Tests 28 failed | 2718 passed | 290 skipped (3036)
Start at 07:51:47
Duration 244.03s
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx [queued]
src/pages/HomePage.test.tsx [queued]
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/schemas/flyer.schemas.test.ts [queued]
src/tests/integration/flyer.integration.test.ts [queued]
src/utils/checksum.test.ts [queued]
 
Test Files 27 failed | 113 passed (242)
Tests 28 failed | 2718 passed | 290 skipped (3036)
Start at 07:51:47
Duration 244.25s
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx [queued]
src/pages/HomePage.test.tsx [queued]
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/schemas/flyer.schemas.test.ts 0/18
src/tests/integration/flyer.integration.test.ts [queued]
src/utils/checksum.test.ts [queued]
 
Test Files 27 failed | 113 passed (242)
Tests 28 failed | 2718 passed | 290 skipped (3054)
Start at 07:51:47
Duration 244.87s
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx [queued]
src/pages/HomePage.test.tsx [queued]
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/schemas/flyer.schemas.test.ts 0/18
src/tests/integration/flyer.integration.test.ts [queued]
src/utils/checksum.test.ts [queued]
 
Test Files 27 failed | 113 passed (242)
Tests 28 failed | 2718 passed | 290 skipped (3054)
Start at 07:51:47
Duration 245.08s
src/schemas/flyer.schemas.test.ts (18 tests) 51ms
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx [queued]
src/pages/HomePage.test.tsx 0/5
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/schemas/flyer.schemas.test.ts 18/18
src/tests/integration/flyer.integration.test.ts [queued]
src/utils/checksum.test.ts [queued]
 
Test Files 27 failed | 114 passed (242)
Tests 28 failed | 2736 passed | 290 skipped (3059)
Start at 07:51:47
Duration 245.57s
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx [queued]
src/pages/HomePage.test.tsx 0/5
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/schemas/flyer.schemas.test.ts 18/18
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/checksum.test.ts 1/8
 
Test Files 27 failed | 114 passed (242)
Tests 28 failed | 2737 passed | 290 skipped (3071)
Start at 07:51:47
Duration 245.93s
src/utils/checksum.test.ts (8 tests) 119ms
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx [queued]
src/pages/HomePage.test.tsx 0/5
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/schemas/flyer.schemas.test.ts 18/18
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/checksum.test.ts 8/8
 
Test Files 27 failed | 115 passed (242)
Tests 28 failed | 2744 passed | 290 skipped (3071)
Start at 07:51:47
Duration 246.10s
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx 0/8
src/pages/HomePage.test.tsx 0/5
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/checksum.test.ts 8/8
 
Test Files 27 failed | 115 passed (242)
Tests 28 failed | 2744 passed | 290 skipped (3079)
Start at 07:51:47
Duration 246.61s
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx 0/8
src/pages/HomePage.test.tsx 1/5
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/checksum.test.ts 8/8
 
Test Files 27 failed | 115 passed (242)
Tests 28 failed | 2745 passed | 290 skipped (3079)
Start at 07:51:47
Duration 246.72s
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx 0/8
src/pages/HomePage.test.tsx 3/5
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/checksum.test.ts 8/8
 
Test Files 27 failed | 115 passed (242)
Tests 28 failed | 2747 passed | 290 skipped (3079)
Start at 07:51:47
Duration 246.82s
src/pages/HomePage.test.tsx (5 tests) 1308ms
should render the welcome message when no flyer is selected 1097ms
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx 2/8
src/pages/HomePage.test.tsx 5/5
src/routes/admin.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 116 passed (242)
Tests 28 failed | 2751 passed | 290 skipped (3079)
Start at 07:51:47
Duration 247.03s
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx 4/8
src/pages/HomePage.test.tsx 5/5
src/routes/admin.routes.test.ts 0/4
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 116 passed (242)
Tests 28 failed | 2753 passed | 290 skipped (3083)
Start at 07:51:47
Duration 247.14s
 
src/components/Leaderboard.test.tsx [queued]
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx 7/8
src/pages/HomePage.test.tsx 5/5
src/routes/admin.routes.test.ts 0/4
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 116 passed (242)
Tests 28 failed | 2756 passed | 290 skipped (3083)
Start at 07:51:47
Duration 247.34s
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx (8 tests) 738ms
 
src/components/Leaderboard.test.tsx 0/7
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx 8/8
src/pages/HomePage.test.tsx 5/5
src/routes/admin.routes.test.ts 0/4
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 117 passed (242)
Tests 28 failed | 2757 passed | 290 skipped (3090)
Start at 07:51:47
Duration 247.46s
 
src/components/Leaderboard.test.tsx 0/7
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx 8/8
src/pages/HomePage.test.tsx 5/5
src/routes/admin.routes.test.ts 1/4
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 117 passed (242)
Tests 28 failed | 2758 passed | 290 skipped (3090)
Start at 07:51:47
Duration 247.67s
stdout | src/routes/admin.routes.test.ts > Admin Routes Rate Limiting > POST /system/clear-cache > should return 500 if cache clear fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/Leaderboard.test.tsx 0/7
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx 8/8
src/routes/admin.routes.test.ts 2/4
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 117 passed (242)
Tests 28 failed | 2759 passed | 290 skipped (3090)
Start at 07:51:47
Duration 248.07s
stderr | src/routes/admin.routes.test.ts > Admin Routes Rate Limiting > POST /system/clear-cache > should return 500 if cache clear fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Redis connection failed
at /app/src/routes/admin.routes.test.ts:168:26
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/Leaderboard.test.tsx 0/7
src/hooks/mutations/useAddShoppingListItemMutation.test.tsx 8/8
src/routes/admin.routes.test.ts 2/4
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 117 passed (242)
Tests 28 failed | 2759 passed | 290 skipped (3090)
Start at 07:51:47
Duration 248.07s
src/routes/admin.routes.test.ts (4 tests) 996ms
should block requests to /trigger/daily-deal-check after exceeding limit 568ms
should block requests to /brands/:id/logo after exceeding limit 358ms
 
src/components/Leaderboard.test.tsx 1/7
src/routes/admin.routes.test.ts 4/4
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 118 passed (242)
Tests 28 failed | 2762 passed | 290 skipped (3090)
Start at 07:51:47
Duration 248.78s
 
src/components/Leaderboard.test.tsx 2/7
src/routes/store.routes.test.ts [queued]
src/services/worker.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 118 passed (242)
Tests 28 failed | 2763 passed | 290 skipped (3090)
Start at 07:51:47
Duration 248.99s
 
src/components/Leaderboard.test.tsx 3/7
src/routes/store.routes.test.ts [queued]
src/services/worker.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 118 passed (242)
Tests 28 failed | 2764 passed | 290 skipped (3090)
Start at 07:51:47
Duration 249.84s
src/components/Leaderboard.test.tsx (7 tests) 1954ms
should display a loading message initially 340ms
should display a generic error for unknown error types 856ms
should render the leaderboard with user data on successful fetch 486ms
 
src/components/Leaderboard.test.tsx 7/7
src/routes/store.routes.test.ts [queued]
src/services/worker.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 119 passed (242)
Tests 28 failed | 2768 passed | 290 skipped (3090)
Start at 07:51:47
Duration 250.05s
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/conversion.db.test.ts [queued]
src/services/worker.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 119 passed (242)
Tests 28 failed | 2768 passed | 290 skipped (3090)
Start at 07:51:47
Duration 250.64s
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/conversion.db.test.ts [queued]
src/services/worker.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/imageProcessor.test.ts [queued]
 
Test Files 27 failed | 119 passed (242)
Tests 28 failed | 2768 passed | 290 skipped (3090)
Start at 07:51:47
Duration 251.21s
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/conversion.db.test.ts [queued]
src/services/flyerPersistenceService.server.test.ts [queued]
src/services/worker.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/imageProcessor.test.ts [queued]
 
Test Files 27 failed | 119 passed (242)
Tests 28 failed | 2768 passed | 290 skipped (3090)
Start at 07:51:47
Duration 251.79s
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/conversion.db.test.ts [queued]
src/services/flyerPersistenceService.server.test.ts [queued]
src/services/worker.test.ts 0/7
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/imageProcessor.test.ts [queued]
 
Test Files 27 failed | 119 passed (242)
Tests 28 failed | 2768 passed | 290 skipped (3097)
Start at 07:51:47
Duration 252.02s
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/conversion.db.test.ts [queued]
src/services/flyerPersistenceService.server.test.ts [queued]
src/services/worker.test.ts 0/7
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/imageProcessor.test.ts [queued]
 
Test Files 27 failed | 119 passed (242)
Tests 28 failed | 2768 passed | 290 skipped (3097)
Start at 07:51:47
Duration 252.30s
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/conversion.db.test.ts [queued]
src/services/flyerPersistenceService.server.test.ts [queued]
src/services/worker.test.ts 0/7
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/imageProcessor.test.ts [queued]
 
Test Files 27 failed | 119 passed (242)
Tests 28 failed | 2768 passed | 290 skipped (3097)
Start at 07:51:47
Duration 252.44s
stdout | src/services/worker.test.ts > Worker Entry Point > Error Handling > should log unhandled promise rejections
Handled expected test rejection to prevent test runner error: Promise rejected
 
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/conversion.db.test.ts [queued]
src/services/flyerPersistenceService.server.test.ts [queued]
src/services/worker.test.ts 1/7
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/imageProcessor.test.ts [queued]
 
Test Files 27 failed | 119 passed (242)
Tests 28 failed | 2769 passed | 290 skipped (3097)
Start at 07:51:47
Duration 253.14s
src/services/worker.test.ts (7 tests) 591ms
should log initialization messages on import 525ms
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/conversion.db.test.ts 1/8
src/services/flyerPersistenceService.server.test.ts [queued]
src/services/worker.test.ts 7/7
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/imageProcessor.test.ts [queued]
 
Test Files 27 failed | 120 passed (242)
Tests 28 failed | 2776 passed | 290 skipped (3105)
Start at 07:51:47
Duration 253.26s
src/services/db/conversion.db.test.ts (8 tests) 65ms
stdout | src/utils/imageProcessor.test.ts > generateFlyerIcon > should process the image and return the correct icon filename
[DEBUG] generateFlyerIcon returning: icon-flyer-image-1.webp
 
stdout | src/utils/imageProcessor.test.ts > processAndSaveImage > should process the image, strip metadata, and return the new filename
[DEBUG] processAndSaveImage returning: original-1768809360882.jpg
 
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/conversion.db.test.ts 8/8
src/services/flyerPersistenceService.server.test.ts [queued]
src/services/worker.test.ts 7/7
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/imageProcessor.test.ts 1/4
 
Test Files 27 failed | 121 passed (242)
Tests 28 failed | 2784 passed | 290 skipped (3109)
Start at 07:51:47
Duration 253.57s
src/utils/imageProcessor.test.ts (4 tests) 99ms
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/flyerPersistenceService.server.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 0/4
src/utils/imageProcessor.test.ts 4/4
 
Test Files 27 failed | 122 passed (242)
Tests 28 failed | 2787 passed | 290 skipped (3109)
Start at 07:51:47
Duration 254.08s
src/services/flyerPersistenceService.server.test.ts (3 tests) 65ms
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/flyerPersistenceService.server.test.ts 3/3
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 123 passed (242)
Tests 28 failed | 2790 passed | 290 skipped (3112)
Start at 07:51:47
Duration 254.99s
 
src/pages/admin/FlyerReviewPage.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/flyerPersistenceService.server.test.ts 3/3
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 123 passed (242)
Tests 28 failed | 2790 passed | 290 skipped (3112)
Start at 07:51:47
Duration 255.29s
 
src/pages/admin/FlyerReviewPage.test.tsx 0/6
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/flyerPersistenceService.server.test.ts 3/3
src/tests/integration/flyer.integration.test.ts 0/4
 
Test Files 27 failed | 123 passed (242)
Tests 28 failed | 2790 passed | 290 skipped (3118)
Start at 07:51:47
Duration 255.90s
src/tests/integration/flyer.integration.test.ts (4 tests | 4 skipped) 10329ms
should return a list of flyers
should return items for a specific flyer
should return items for multiple flyer IDs
should return the total count of items for multiple flyer IDs
 
src/pages/admin/FlyerReviewPage.test.tsx 0/6
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/flyer.integration.test.ts 4/4
 
Test Files 28 failed | 123 passed (242)
Tests 28 failed | 2790 passed | 294 skipped (3118)
Start at 07:51:47
Duration 256.31s
 
src/pages/admin/FlyerReviewPage.test.tsx 0/6
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 123 passed (242)
Tests 28 failed | 2790 passed | 294 skipped (3118)
Start at 07:51:47
Duration 257.32s
 
src/pages/admin/FlyerReviewPage.test.tsx 1/6
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 123 passed (242)
Tests 28 failed | 2791 passed | 294 skipped (3118)
Start at 07:51:47
Duration 257.52s
 
src/hooks/queries/useFlyerItemsQuery.test.tsx [queued]
src/pages/admin/FlyerReviewPage.test.tsx 1/6
src/routes/admin.stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 123 passed (242)
Tests 28 failed | 2791 passed | 294 skipped (3118)
Start at 07:51:47
Duration 257.62s
 
src/hooks/queries/useFlyerItemsQuery.test.tsx [queued]
src/pages/admin/FlyerReviewPage.test.tsx 2/6
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 123 passed (242)
Tests 28 failed | 2792 passed | 294 skipped (3118)
Start at 07:51:47
Duration 257.72s
 
src/hooks/queries/useFlyerItemsQuery.test.tsx [queued]
src/pages/admin/FlyerReviewPage.test.tsx 2/6
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 123 passed (242)
Tests 28 failed | 2792 passed | 294 skipped (3118)
Start at 07:51:47
Duration 258.97s
src/pages/admin/FlyerReviewPage.test.tsx (6 tests) 2523ms
renders loading spinner initially 1206ms
renders empty state when no flyers are returned 401ms
renders a list of flyers when API returns data 595ms
 
src/hooks/queries/useFlyerItemsQuery.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/logger.client.test.ts [queued]
 
Test Files 28 failed | 124 passed (242)
Tests 28 failed | 2796 passed | 294 skipped (3118)
Start at 07:51:47
Duration 259.07s
 
src/hooks/queries/useFlyerItemsQuery.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts [queued]
src/services/logger.client.test.ts [queued]
 
Test Files 28 failed | 124 passed (242)
Tests 28 failed | 2796 passed | 294 skipped (3118)
Start at 07:51:47
Duration 259.71s
 
src/hooks/queries/useFlyerItemsQuery.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts [queued]
src/services/logger.client.test.ts [queued]
 
Test Files 28 failed | 124 passed (242)
Tests 28 failed | 2796 passed | 294 skipped (3118)
Start at 07:51:47
Duration 260.23s
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts [queued]
src/services/logger.client.test.ts [queued]
 
Test Files 28 failed | 124 passed (242)
Tests 28 failed | 2796 passed | 294 skipped (3118)
Start at 07:51:47
Duration 260.47s
stdout | src/services/logger.client.test.ts
Logger implementation: {
info: [Function: info],
warn: [Function: warn],
error: [Function: error],
debug: [Function: debug]
}
 
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts [queued]
src/services/logger.client.test.ts 0/12
 
Test Files 28 failed | 124 passed (242)
Tests 28 failed | 2796 passed | 294 skipped (3130)
Start at 07:51:47
Duration 260.88s
src/services/logger.client.test.ts (12 tests) 56ms
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts [queued]
src/services/logger.client.test.ts 12/12
 
Test Files 28 failed | 125 passed (242)
Tests 28 failed | 2808 passed | 294 skipped (3130)
Start at 07:51:47
Duration 261.15s
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts 1/7
src/services/logger.client.test.ts 12/12
 
Test Files 28 failed | 125 passed (242)
Tests 28 failed | 2809 passed | 294 skipped (3137)
Start at 07:51:47
Duration 261.46s
src/services/db/address.db.test.ts (7 tests) 64ms
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx 1/7
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts 7/7
src/services/logger.client.test.ts 12/12
 
Test Files 28 failed | 126 passed (242)
Tests 28 failed | 2816 passed | 294 skipped (3144)
Start at 07:51:47
Duration 261.70s
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx 2/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts 7/7
 
Test Files 28 failed | 126 passed (242)
Tests 28 failed | 2817 passed | 294 skipped (3144)
Start at 07:51:47
Duration 261.80s
stdout | src/routes/personalization.routes.test.ts > Personalization Routes (/api/personalization) > GET /master-items > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx 3/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts 1/7
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts 7/7
 
Test Files 28 failed | 126 passed (242)
Tests 28 failed | 2819 passed | 294 skipped (3151)
Start at 07:51:47
Duration 262.02s
stderr | src/routes/personalization.routes.test.ts > Personalization Routes (/api/personalization) > GET /master-items > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/personalization.routes.test.ts:55:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx 3/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts 1/7
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts 7/7
 
Test Files 28 failed | 126 passed (242)
Tests 28 failed | 2819 passed | 294 skipped (3151)
Start at 07:51:47
Duration 262.02s
stdout | src/routes/personalization.routes.test.ts > Personalization Routes (/api/personalization) > GET /dietary-restrictions > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx 3/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts 1/7
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts 7/7
 
Test Files 28 failed | 126 passed (242)
Tests 28 failed | 2819 passed | 294 skipped (3151)
Start at 07:51:47
Duration 262.02s
stderr | src/routes/personalization.routes.test.ts > Personalization Routes (/api/personalization) > GET /dietary-restrictions > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/personalization.routes.test.ts:81:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx 3/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts 1/7
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts 7/7
 
Test Files 28 failed | 126 passed (242)
Tests 28 failed | 2819 passed | 294 skipped (3151)
Start at 07:51:47
Duration 262.02s
stdout | src/routes/personalization.routes.test.ts > Personalization Routes (/api/personalization) > GET /appliances > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx 3/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts 1/7
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts 7/7
 
Test Files 28 failed | 126 passed (242)
Tests 28 failed | 2819 passed | 294 skipped (3151)
Start at 07:51:47
Duration 262.02s
stderr | src/routes/personalization.routes.test.ts > Personalization Routes (/api/personalization) > GET /appliances > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/personalization.routes.test.ts:105:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx [queued]
src/hooks/queries/useFlyerItemsQuery.test.tsx 3/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts [queued]
src/routes/personalization.routes.test.ts 1/7
src/routes/store.routes.test.ts [queued]
src/services/db/address.db.test.ts 7/7
 
Test Files 28 failed | 126 passed (242)
Tests 28 failed | 2819 passed | 294 skipped (3151)
Start at 07:51:47
Duration 262.02s
src/routes/personalization.routes.test.ts (7 tests) 222ms
src/hooks/queries/useFlyerItemsQuery.test.tsx (7 tests) 563ms
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx 0/7
src/hooks/queries/useFlyerItemsQuery.test.tsx 7/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts 0/4
src/routes/personalization.routes.test.ts 7/7
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 128 passed (242)
Tests 28 failed | 2829 passed | 294 skipped (3162)
Start at 07:51:47
Duration 262.53s
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx 2/7
src/hooks/queries/useFlyerItemsQuery.test.tsx 7/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts 1/4
src/routes/personalization.routes.test.ts 7/7
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 128 passed (242)
Tests 28 failed | 2832 passed | 294 skipped (3162)
Start at 07:51:47
Duration 262.64s
stdout | src/routes/admin.stats.routes.test.ts > Admin Stats Routes (/api/admin/stats) > GET /stats > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx 4/7
src/hooks/queries/useFlyerItemsQuery.test.tsx 7/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts 4/4
src/routes/personalization.routes.test.ts 7/7
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 129 passed (242)
Tests 28 failed | 2837 passed | 294 skipped (3162)
Start at 07:51:47
Duration 262.84s
stderr | src/routes/admin.stats.routes.test.ts > Admin Stats Routes (/api/admin/stats) > GET /stats > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.stats.routes.test.ts:119:66
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx 4/7
src/hooks/queries/useFlyerItemsQuery.test.tsx 7/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts 4/4
src/routes/personalization.routes.test.ts 7/7
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 129 passed (242)
Tests 28 failed | 2837 passed | 294 skipped (3162)
Start at 07:51:47
Duration 262.84s
stdout | src/routes/admin.stats.routes.test.ts > Admin Stats Routes (/api/admin/stats) > GET /stats/daily > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx 4/7
src/hooks/queries/useFlyerItemsQuery.test.tsx 7/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts 4/4
src/routes/personalization.routes.test.ts 7/7
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 129 passed (242)
Tests 28 failed | 2837 passed | 294 skipped (3162)
Start at 07:51:47
Duration 262.84s
stderr | src/routes/admin.stats.routes.test.ts > Admin Stats Routes (/api/admin/stats) > GET /stats/daily > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/admin.stats.routes.test.ts:139:73
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx 4/7
src/hooks/queries/useFlyerItemsQuery.test.tsx 7/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts 4/4
src/routes/personalization.routes.test.ts 7/7
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 129 passed (242)
Tests 28 failed | 2837 passed | 294 skipped (3162)
Start at 07:51:47
Duration 262.84s
src/routes/admin.stats.routes.test.ts (4 tests) 181ms
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx 4/7
src/hooks/queries/useFlyerItemsQuery.test.tsx 7/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts 4/4
src/routes/personalization.routes.test.ts 7/7
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 129 passed (242)
Tests 28 failed | 2837 passed | 294 skipped (3162)
Start at 07:51:47
Duration 262.84s
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx 5/7
src/hooks/queries/useFlyerItemsQuery.test.tsx 7/7
src/hooks/useDragAndDrop.test.ts [queued]
src/routes/admin.stats.routes.test.ts 4/4
src/routes/personalization.routes.test.ts 7/7
src/routes/store.routes.test.ts [queued]
 
Test Files 28 failed | 129 passed (242)
Tests 28 failed | 2838 passed | 294 skipped (3162)
Start at 07:51:47
Duration 262.94s
src/hooks/mutations/useAddWatchedItemMutation.test.tsx (7 tests) 597ms
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx 7/7
src/hooks/queries/useFlyerItemsQuery.test.tsx 7/7
src/hooks/useDragAndDrop.test.ts 0/8
src/routes/admin.stats.routes.test.ts 4/4
src/routes/store.routes.test.ts [queued]
src/tests/e2e/flyer-upload.e2e.test.ts [queued]
 
Test Files 28 failed | 130 passed (242)
Tests 28 failed | 2840 passed | 294 skipped (3170)
Start at 07:51:47
Duration 263.16s
 
src/hooks/mutations/useAddWatchedItemMutation.test.tsx 7/7
src/hooks/useDragAndDrop.test.ts 1/8
src/routes/admin.stats.routes.test.ts 4/4
src/routes/store.routes.test.ts [queued]
src/tests/e2e/flyer-upload.e2e.test.ts [queued]
 
Test Files 28 failed | 130 passed (242)
Tests 28 failed | 2841 passed | 294 skipped (3170)
Start at 07:51:47
Duration 263.76s
 
src/hooks/useDragAndDrop.test.ts 2/8
src/routes/store.routes.test.ts [queued]
src/services/queues.server.test.ts [queued]
src/tests/e2e/flyer-upload.e2e.test.ts [queued]
 
Test Files 28 failed | 130 passed (242)
Tests 28 failed | 2842 passed | 294 skipped (3170)
Start at 07:51:47
Duration 263.86s
src/hooks/useDragAndDrop.test.ts (8 tests) 212ms
 
src/hooks/useDragAndDrop.test.ts 8/8
src/routes/store.routes.test.ts [queued]
src/services/queues.server.test.ts [queued]
src/tests/e2e/flyer-upload.e2e.test.ts [queued]
 
Test Files 28 failed | 131 passed (242)
Tests 28 failed | 2848 passed | 294 skipped (3170)
Start at 07:51:47
Duration 264.60s
 
src/components/Header.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/queues.server.test.ts [queued]
src/tests/e2e/flyer-upload.e2e.test.ts [queued]
src/utils/serverUtils.test.ts [queued]
 
Test Files 28 failed | 131 passed (242)
Tests 28 failed | 2848 passed | 294 skipped (3170)
Start at 07:51:47
Duration 265.43s
 
src/components/Header.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/queues.server.test.ts 0/10
src/tests/e2e/flyer-upload.e2e.test.ts [queued]
src/utils/serverUtils.test.ts [queued]
 
Test Files 28 failed | 131 passed (242)
Tests 28 failed | 2848 passed | 294 skipped (3180)
Start at 07:51:47
Duration 265.57s
 
src/components/Header.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/queues.server.test.ts 0/10
src/tests/e2e/flyer-upload.e2e.test.ts [queued]
src/utils/serverUtils.test.ts [queued]
 
Test Files 28 failed | 131 passed (242)
Tests 28 failed | 2848 passed | 294 skipped (3180)
Start at 07:51:47
Duration 266.11s
src/services/queues.server.test.ts (10 tests) 580ms
should create flyerQueue with the correct name and options 510ms
 
src/components/Header.test.tsx [queued]
src/components/PasswordStrengthIndicator.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/queues.server.test.ts 10/10
src/tests/e2e/flyer-upload.e2e.test.ts 0/1
src/utils/serverUtils.test.ts [queued]
 
Test Files 28 failed | 132 passed (242)
Tests 28 failed | 2858 passed | 294 skipped (3181)
Start at 07:51:47
Duration 267.13s
src/tests/e2e/flyer-upload.e2e.test.ts (1 test | 1 failed) 209ms
× should allow a user to upload a flyer and wait for processing to complete 201ms
 
src/components/Header.test.tsx [queued]
src/components/PasswordStrengthIndicator.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx [queued]
src/routes/deals.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/utils/serverUtils.test.ts 0/8
 
Test Files 29 failed | 132 passed (242)
Tests 29 failed | 2858 passed | 294 skipped (3189)
Start at 07:51:47
Duration 267.26s
 
src/components/Header.test.tsx [queued]
src/components/PasswordStrengthIndicator.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx [queued]
src/routes/deals.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/utils/serverUtils.test.ts 1/8
 
Test Files 29 failed | 132 passed (242)
Tests 29 failed | 2859 passed | 294 skipped (3189)
Start at 07:51:47
Duration 267.37s
src/utils/serverUtils.test.ts (8 tests) 76ms
 
src/components/Header.test.tsx [queued]
src/components/PasswordStrengthIndicator.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx [queued]
src/routes/deals.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/utils/serverUtils.test.ts 8/8
 
Test Files 29 failed | 133 passed (242)
Tests 29 failed | 2866 passed | 294 skipped (3189)
Start at 07:51:47
Duration 268.15s
 
src/components/Header.test.tsx [queued]
src/components/PasswordStrengthIndicator.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx [queued]
src/routes/deals.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 29 failed | 133 passed (242)
Tests 29 failed | 2866 passed | 294 skipped (3189)
Start at 07:51:47
Duration 269.42s
 
src/components/Header.test.tsx [queued]
src/components/PasswordStrengthIndicator.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx [queued]
src/routes/deals.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/notificationService.test.ts [queued]
 
Test Files 29 failed | 133 passed (242)
Tests 29 failed | 2866 passed | 294 skipped (3189)
Start at 07:51:47
Duration 269.79s
 
src/components/Header.test.tsx [queued]
src/components/PasswordStrengthIndicator.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx [queued]
src/routes/deals.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/notificationService.test.ts [queued]
 
Test Files 29 failed | 133 passed (242)
Tests 29 failed | 2866 passed | 294 skipped (3189)
Start at 07:51:47
Duration 270.50s
 
src/components/Header.test.tsx [queued]
src/components/PasswordStrengthIndicator.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/notificationService.test.ts [queued]
 
Test Files 29 failed | 133 passed (242)
Tests 29 failed | 2866 passed | 294 skipped (3192)
Start at 07:51:47
Duration 270.69s
 
src/components/Header.test.tsx [queued]
src/components/PasswordStrengthIndicator.test.tsx [queued]
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/notificationService.test.ts [queued]
 
Test Files 29 failed | 133 passed (242)
Tests 29 failed | 2866 passed | 294 skipped (3192)
Start at 07:51:47
Duration 271.46s
 
src/components/Header.test.tsx 0/12
src/components/PasswordStrengthIndicator.test.tsx [queued]
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/notificationService.test.ts [queued]
 
Test Files 29 failed | 133 passed (242)
Tests 29 failed | 2866 passed | 294 skipped (3204)
Start at 07:51:47
Duration 271.59s
 
src/components/Header.test.tsx 0/12
src/components/PasswordStrengthIndicator.test.tsx [queued]
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/notificationService.test.ts 0/4
 
Test Files 29 failed | 133 passed (242)
Tests 29 failed | 2866 passed | 294 skipped (3208)
Start at 07:51:47
Duration 272.04s
src/services/notificationService.test.ts (4 tests) 62ms
 
src/components/Header.test.tsx 0/12
src/components/PasswordStrengthIndicator.test.tsx 0/11
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts 0/4
src/routes/store.routes.test.ts [queued]
src/services/notificationService.test.ts 4/4
src/services/queueService.test.ts [queued]
 
Test Files 29 failed | 134 passed (242)
Tests 29 failed | 2870 passed | 294 skipped (3223)
Start at 07:51:47
Duration 272.68s
stdout | src/routes/deals.routes.test.ts > Deals Routes (/api/users/deals) > GET /best-watched-prices > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/Header.test.tsx 3/12
src/components/PasswordStrengthIndicator.test.tsx 11/11
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts 4/4
src/routes/store.routes.test.ts [queued]
src/services/notificationService.test.ts 4/4
src/services/queueService.test.ts [queued]
 
Test Files 29 failed | 136 passed (242)
Tests 29 failed | 2888 passed | 294 skipped (3223)
Start at 07:51:47
Duration 272.88s
stderr | src/routes/deals.routes.test.ts > Deals Routes (/api/users/deals) > GET /best-watched-prices > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/deals.routes.test.ts:98:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/Header.test.tsx 3/12
src/components/PasswordStrengthIndicator.test.tsx 11/11
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts 4/4
src/routes/store.routes.test.ts [queued]
src/services/notificationService.test.ts 4/4
src/services/queueService.test.ts [queued]
 
Test Files 29 failed | 136 passed (242)
Tests 29 failed | 2888 passed | 294 skipped (3223)
Start at 07:51:47
Duration 272.88s
src/routes/deals.routes.test.ts (4 tests) 179ms
src/components/PasswordStrengthIndicator.test.tsx (11 tests) 605ms
 
src/components/Header.test.tsx 3/12
src/components/PasswordStrengthIndicator.test.tsx 11/11
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts 4/4
src/routes/store.routes.test.ts [queued]
src/services/notificationService.test.ts 4/4
src/services/queueService.test.ts [queued]
 
Test Files 29 failed | 136 passed (242)
Tests 29 failed | 2888 passed | 294 skipped (3223)
Start at 07:51:47
Duration 272.88s
 
src/components/Header.test.tsx 4/12
src/components/PasswordStrengthIndicator.test.tsx 11/11
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts 4/4
src/routes/store.routes.test.ts [queued]
src/services/queueService.test.ts [queued]
 
Test Files 29 failed | 136 passed (242)
Tests 29 failed | 2889 passed | 294 skipped (3223)
Start at 07:51:47
Duration 273.11s
 
src/components/Header.test.tsx 5/12
src/components/PasswordStrengthIndicator.test.tsx 11/11
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts 4/4
src/routes/store.routes.test.ts [queued]
src/services/queueService.test.ts [queued]
 
Test Files 29 failed | 136 passed (242)
Tests 29 failed | 2890 passed | 294 skipped (3223)
Start at 07:51:47
Duration 273.21s
 
src/components/Header.test.tsx 6/12
src/components/PasswordStrengthIndicator.test.tsx 11/11
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts 4/4
src/routes/store.routes.test.ts [queued]
src/services/queueService.test.ts 0/4
 
Test Files 29 failed | 136 passed (242)
Tests 29 failed | 2891 passed | 294 skipped (3227)
Start at 07:51:47
Duration 273.53s
 
src/components/Header.test.tsx 6/12
src/components/PasswordStrengthIndicator.test.tsx 11/11
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/deals.routes.test.ts 4/4
src/routes/store.routes.test.ts [queued]
src/services/queueService.test.ts 0/4
 
Test Files 29 failed | 136 passed (242)
Tests 29 failed | 2891 passed | 294 skipped (3227)
Start at 07:51:47
Duration 273.69s
src/services/queueService.test.ts (4 tests) 204ms
 
src/components/Header.test.tsx 12/12
src/hooks/mutations/useCreateShoppingListMutation.test.tsx [queued]
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/store.routes.test.ts [queued]
src/services/queueService.test.ts 4/4
 
Test Files 29 failed | 137 passed (242)
Tests 29 failed | 2901 passed | 294 skipped (3227)
Start at 07:51:47
Duration 273.79s
src/components/Header.test.tsx (12 tests) 2102ms
should render the application title 752ms
should call onSignOut when Logout button is clicked 312ms
 
src/components/Header.test.tsx 12/12
src/hooks/mutations/useCreateShoppingListMutation.test.tsx 0/6
src/hooks/useFlyerUploader.test.tsx 0/3
src/routes/store.routes.test.ts [queued]
src/services/queueService.test.ts 4/4
 
Test Files 29 failed | 138 passed (242)
Tests 29 failed | 2901 passed | 294 skipped (3233)
Start at 07:51:47
Duration 273.99s
src/hooks/useFlyerUploader.test.tsx (3 tests) 3323ms
should handle a successful upload and polling flow 3162ms
 
src/components/Header.test.tsx 12/12
src/hooks/mutations/useCreateShoppingListMutation.test.tsx 1/6
src/hooks/useFlyerUploader.test.tsx 3/3
src/routes/store.routes.test.ts [queued]
src/services/queueService.test.ts 4/4
 
Test Files 29 failed | 139 passed (242)
Tests 29 failed | 2905 passed | 294 skipped (3233)
Start at 07:51:47
Duration 274.30s
 
src/components/Header.test.tsx 12/12
src/hooks/mutations/useCreateShoppingListMutation.test.tsx 3/6
src/hooks/useFlyerUploader.test.tsx 3/3
src/routes/store.routes.test.ts [queued]
src/services/queueService.test.ts 4/4
 
Test Files 29 failed | 139 passed (242)
Tests 29 failed | 2907 passed | 294 skipped (3233)
Start at 07:51:47
Duration 274.50s
 
src/components/Header.test.tsx 12/12
src/hooks/mutations/useCreateShoppingListMutation.test.tsx 5/6
src/hooks/useFlyerUploader.test.tsx 3/3
src/routes/store.routes.test.ts [queued]
src/services/queueService.test.ts 4/4
 
Test Files 29 failed | 139 passed (242)
Tests 29 failed | 2909 passed | 294 skipped (3233)
Start at 07:51:47
Duration 274.60s
src/hooks/mutations/useCreateShoppingListMutation.test.tsx (6 tests) 567ms
 
src/routes/store.routes.test.ts [queued]
 
Test Files 29 failed | 140 passed (242)
Tests 29 failed | 2910 passed | 294 skipped (3233)
Start at 07:51:47
Duration 275.66s
 
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 29 failed | 140 passed (242)
Tests 29 failed | 2910 passed | 294 skipped (3233)
Start at 07:51:47
Duration 276.60s
 
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 29 failed | 140 passed (242)
Tests 29 failed | 2910 passed | 294 skipped (3233)
Start at 07:51:47
Duration 278.45s
 
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx [queued]
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 29 failed | 140 passed (242)
Tests 29 failed | 2910 passed | 294 skipped (3233)
Start at 07:51:47
Duration 278.66s
 
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx [queued]
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx [queued]
src/hooks/useDebounce.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 29 failed | 140 passed (242)
Tests 29 failed | 2910 passed | 294 skipped (3233)
Start at 07:51:47
Duration 278.81s
 
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx [queued]
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx [queued]
src/hooks/useDebounce.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 29 failed | 140 passed (242)
Tests 29 failed | 2910 passed | 294 skipped (3233)
Start at 07:51:47
Duration 280.24s
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx [queued]
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx [queued]
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx [queued]
src/hooks/useDebounce.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/utils/audioUtils.test.ts [queued]
 
Test Files 29 failed | 140 passed (242)
Tests 29 failed | 2910 passed | 294 skipped (3233)
Start at 07:51:47
Duration 280.42s
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx [queued]
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx [queued]
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx [queued]
src/hooks/useDebounce.test.ts [queued]
src/pages/admin/components/AddressForm.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/googleGeocodingService.server.test.ts [queued]
src/utils/audioUtils.test.ts [queued]
 
Test Files 29 failed | 140 passed (242)
Tests 29 failed | 2910 passed | 294 skipped (3233)
Start at 07:51:47
Duration 282.21s
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx [queued]
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx [queued]
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx [queued]
src/hooks/useDebounce.test.ts [queued]
src/pages/admin/components/AddressForm.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/googleGeocodingService.server.test.ts [queued]
src/utils/audioUtils.test.ts [queued]
 
Test Files 29 failed | 140 passed (242)
Tests 29 failed | 2910 passed | 294 skipped (3233)
Start at 07:51:47
Duration 283.18s
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx [queued]
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx [queued]
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx [queued]
src/hooks/useDebounce.test.ts 0/6
src/pages/admin/components/AddressForm.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/googleGeocodingService.server.test.ts [queued]
src/utils/audioUtils.test.ts [queued]
 
Test Files 29 failed | 140 passed (242)
Tests 29 failed | 2910 passed | 294 skipped (3239)
Start at 07:51:47
Duration 283.69s
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx [queued]
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx [queued]
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx [queued]
src/hooks/useDebounce.test.ts 1/6
src/pages/admin/components/AddressForm.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/googleGeocodingService.server.test.ts [queued]
src/utils/audioUtils.test.ts [queued]
 
Test Files 29 failed | 140 passed (242)
Tests 29 failed | 2911 passed | 294 skipped (3239)
Start at 07:51:47
Duration 284.02s
src/hooks/useDebounce.test.ts (6 tests) 200ms
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx [queued]
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx [queued]
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx [queued]
src/hooks/useDebounce.test.ts 6/6
src/pages/admin/components/AddressForm.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/googleGeocodingService.server.test.ts [queued]
src/utils/audioUtils.test.ts 0/7
 
Test Files 29 failed | 141 passed (242)
Tests 29 failed | 2916 passed | 294 skipped (3246)
Start at 07:51:47
Duration 284.12s
src/utils/audioUtils.test.ts (7 tests) 41ms
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx [queued]
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx 0/6
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx [queued]
src/hooks/useDebounce.test.ts 6/6
src/pages/admin/components/AddressForm.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/googleGeocodingService.server.test.ts 1/5
src/utils/audioUtils.test.ts 7/7
 
Test Files 29 failed | 142 passed (242)
Tests 29 failed | 2924 passed | 294 skipped (3257)
Start at 07:51:47
Duration 284.23s
src/services/googleGeocodingService.server.test.ts (5 tests) 48ms
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx [queued]
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx 1/6
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx [queued]
src/hooks/useDebounce.test.ts 6/6
src/pages/admin/components/AddressForm.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/googleGeocodingService.server.test.ts 5/5
src/utils/audioUtils.test.ts 7/7
 
Test Files 29 failed | 143 passed (242)
Tests 29 failed | 2929 passed | 294 skipped (3257)
Start at 07:51:47
Duration 284.44s
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx [queued]
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx 3/6
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx 0/6
src/hooks/useDebounce.test.ts 6/6
src/pages/admin/components/AddressForm.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/googleGeocodingService.server.test.ts 5/5
src/utils/audioUtils.test.ts 7/7
 
Test Files 29 failed | 143 passed (242)
Tests 29 failed | 2931 passed | 294 skipped (3263)
Start at 07:51:47
Duration 284.55s
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx [queued]
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx 4/6
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx 0/6
src/hooks/useDebounce.test.ts 6/6
src/pages/admin/components/AddressForm.test.tsx 0/6
src/routes/store.routes.test.ts [queued]
src/services/googleGeocodingService.server.test.ts 5/5
src/utils/audioUtils.test.ts 7/7
 
Test Files 29 failed | 143 passed (242)
Tests 29 failed | 2932 passed | 294 skipped (3269)
Start at 07:51:47
Duration 284.75s
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx (6 tests) 532ms
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx [queued]
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx 6/6
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx 1/6
src/pages/admin/components/AddressForm.test.tsx 0/6
src/routes/store.routes.test.ts [queued]
src/services/googleGeocodingService.server.test.ts 5/5
src/tests/e2e/admin-dashboard.e2e.test.ts [queued]
src/utils/audioUtils.test.ts 7/7
 
Test Files 29 failed | 144 passed (242)
Tests 29 failed | 2935 passed | 294 skipped (3269)
Start at 07:51:47
Duration 284.85s
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx 0/6
src/hooks/mutations/useRemoveShoppingListItemMutation.test.tsx 6/6
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx 3/6
src/pages/admin/components/AddressForm.test.tsx 0/6
src/routes/store.routes.test.ts [queued]
src/services/googleGeocodingService.server.test.ts 5/5
src/tests/e2e/admin-dashboard.e2e.test.ts [queued]
 
Test Files 29 failed | 144 passed (242)
Tests 29 failed | 2937 passed | 294 skipped (3275)
Start at 07:51:47
Duration 284.95s
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx (6 tests) 504ms
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx (6 tests) 490ms
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx 6/6
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx 6/6
src/pages/admin/components/AddressForm.test.tsx 1/6
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-dashboard.e2e.test.ts [queued]
 
Test Files 29 failed | 146 passed (242)
Tests 29 failed | 2947 passed | 294 skipped (3275)
Start at 07:51:47
Duration 286.27s
 
src/hooks/mutations/useDeleteShoppingListMutation.test.tsx 6/6
src/hooks/mutations/useRemoveWatchedItemMutation.test.tsx 6/6
src/pages/admin/components/AddressForm.test.tsx 1/6
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-dashboard.e2e.test.ts [queued]
 
Test Files 29 failed | 146 passed (242)
Tests 29 failed | 2947 passed | 294 skipped (3275)
Start at 07:51:47
Duration 286.47s
 
src/pages/admin/components/AddressForm.test.tsx 3/6
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-dashboard.e2e.test.ts [queued]
 
Test Files 29 failed | 146 passed (242)
Tests 29 failed | 2949 passed | 294 skipped (3275)
Start at 07:51:47
Duration 286.92s
 
src/pages/admin/components/AddressForm.test.tsx 4/6
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-dashboard.e2e.test.ts [queued]
 
Test Files 29 failed | 146 passed (242)
Tests 29 failed | 2950 passed | 294 skipped (3275)
Start at 07:51:47
Duration 287.32s
src/pages/admin/components/AddressForm.test.tsx (6 tests) 2685ms
should render all address fields correctly 1437ms
should call onGeocode when the "Re-Geocode" button is clicked 379ms
should disable the button and show a loading spinner 347ms
 
src/pages/admin/components/AddressForm.test.tsx 6/6
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-dashboard.e2e.test.ts 0/1
 
Test Files 29 failed | 147 passed (242)
Tests 29 failed | 2952 passed | 294 skipped (3276)
Start at 07:51:47
Duration 287.62s
 
src/pages/admin/components/AddressForm.test.tsx 6/6
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-dashboard.e2e.test.ts 1/1
 
Test Files 29 failed | 147 passed (242)
Tests 30 failed | 2952 passed | 294 skipped (3276)
Start at 07:51:47
Duration 287.94s
src/tests/e2e/admin-dashboard.e2e.test.ts (1 test | 1 failed) 361ms
× should allow an admin to log in and access dashboard features 338ms
 
src/hooks/queries/useFlyersQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-dashboard.e2e.test.ts 1/1
 
Test Files 30 failed | 147 passed (242)
Tests 30 failed | 2952 passed | 294 skipped (3276)
Start at 07:51:47
Duration 288.85s
 
src/hooks/queries/useFlyersQuery.test.tsx [queued]
src/hooks/queries/useWatchedItemsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts [queued]
 
Test Files 30 failed | 147 passed (242)
Tests 30 failed | 2952 passed | 294 skipped (3276)
Start at 07:51:47
Duration 288.99s
 
src/hooks/queries/useFlyersQuery.test.tsx [queued]
src/hooks/queries/useShoppingListsQuery.test.tsx [queued]
src/hooks/queries/useWatchedItemsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts [queued]
 
Test Files 30 failed | 147 passed (242)
Tests 30 failed | 2952 passed | 294 skipped (3276)
Start at 07:51:47
Duration 290.60s
 
src/hooks/queries/useActivityLogQuery.test.tsx [queued]
src/hooks/queries/useFlyersQuery.test.tsx [queued]
src/hooks/queries/useShoppingListsQuery.test.tsx [queued]
src/hooks/queries/useWatchedItemsQuery.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts [queued]
 
Test Files 30 failed | 147 passed (242)
Tests 30 failed | 2952 passed | 294 skipped (3276)
Start at 07:51:47
Duration 290.71s
 
src/hooks/queries/useActivityLogQuery.test.tsx [queued]
src/hooks/queries/useFlyersQuery.test.tsx [queued]
src/hooks/queries/useShoppingListsQuery.test.tsx [queued]
src/hooks/queries/useWatchedItemsQuery.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts [queued]
 
Test Files 30 failed | 147 passed (242)
Tests 30 failed | 2952 passed | 294 skipped (3276)
Start at 07:51:47
Duration 291.61s
 
src/hooks/queries/useActivityLogQuery.test.tsx [queued]
src/hooks/queries/useFlyersQuery.test.tsx [queued]
src/hooks/queries/useShoppingListsQuery.test.tsx [queued]
src/hooks/queries/useWatchedItemsQuery.test.tsx [queued]
src/pages/MyDealsPage.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts [queued]
 
Test Files 30 failed | 147 passed (242)
Tests 30 failed | 2952 passed | 294 skipped (3276)
Start at 07:51:47
Duration 292.58s
 
src/hooks/queries/useActivityLogQuery.test.tsx [queued]
src/hooks/queries/useFlyersQuery.test.tsx 0/6
src/hooks/queries/useShoppingListsQuery.test.tsx [queued]
src/hooks/queries/useWatchedItemsQuery.test.tsx [queued]
src/pages/MyDealsPage.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts [queued]
 
Test Files 30 failed | 147 passed (242)
Tests 30 failed | 2952 passed | 294 skipped (3282)
Start at 07:51:47
Duration 293.39s
 
src/hooks/queries/useActivityLogQuery.test.tsx [queued]
src/hooks/queries/useFlyersQuery.test.tsx 1/6
src/hooks/queries/useShoppingListsQuery.test.tsx [queued]
src/hooks/queries/useWatchedItemsQuery.test.tsx [queued]
src/pages/MyDealsPage.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts 0/1
 
Test Files 30 failed | 147 passed (242)
Tests 30 failed | 2953 passed | 294 skipped (3283)
Start at 07:51:47
Duration 293.62s
 
src/hooks/queries/useActivityLogQuery.test.tsx [queued]
src/hooks/queries/useFlyersQuery.test.tsx 2/6
src/hooks/queries/useShoppingListsQuery.test.tsx [queued]
src/hooks/queries/useWatchedItemsQuery.test.tsx [queued]
src/pages/MyDealsPage.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts 0/1
 
Test Files 30 failed | 147 passed (242)
Tests 30 failed | 2954 passed | 294 skipped (3283)
Start at 07:51:47
Duration 293.74s
src/tests/e2e/user-journey.e2e.test.ts (1 test | 1 failed) 338ms
× should complete a full user lifecycle: Register -> Login -> Manage List -> Delete Account 321ms
 
src/hooks/queries/useActivityLogQuery.test.tsx [queued]
src/hooks/queries/useFlyersQuery.test.tsx 3/6
src/hooks/queries/useShoppingListsQuery.test.tsx [queued]
src/hooks/queries/useWatchedItemsQuery.test.tsx [queued]
src/pages/MyDealsPage.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts 1/1
 
Test Files 31 failed | 147 passed (242)
Tests 31 failed | 2955 passed | 294 skipped (3283)
Start at 07:51:47
Duration 293.98s
src/hooks/queries/useFlyersQuery.test.tsx (6 tests) 615ms
 
src/hooks/queries/useActivityLogQuery.test.tsx [queued]
src/hooks/queries/useFlyersQuery.test.tsx 6/6
src/hooks/queries/useShoppingListsQuery.test.tsx 0/6
src/hooks/queries/useWatchedItemsQuery.test.tsx 0/6
src/pages/MyDealsPage.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts 1/1
 
Test Files 31 failed | 148 passed (242)
Tests 31 failed | 2958 passed | 294 skipped (3295)
Start at 07:51:47
Duration 294.09s
 
src/hooks/queries/useActivityLogQuery.test.tsx [queued]
src/hooks/queries/useFlyersQuery.test.tsx 6/6
src/hooks/queries/useShoppingListsQuery.test.tsx 1/6
src/hooks/queries/useWatchedItemsQuery.test.tsx 0/6
src/pages/MyDealsPage.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts 1/1
 
Test Files 31 failed | 148 passed (242)
Tests 31 failed | 2959 passed | 294 skipped (3295)
Start at 07:51:47
Duration 294.24s
 
src/hooks/queries/useActivityLogQuery.test.tsx 0/6
src/hooks/queries/useFlyersQuery.test.tsx 6/6
src/hooks/queries/useShoppingListsQuery.test.tsx 2/6
src/hooks/queries/useWatchedItemsQuery.test.tsx 2/6
src/pages/MyDealsPage.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts 1/1
 
Test Files 31 failed | 148 passed (242)
Tests 31 failed | 2962 passed | 294 skipped (3301)
Start at 07:51:47
Duration 294.44s
 
src/hooks/queries/useActivityLogQuery.test.tsx 0/6
src/hooks/queries/useFlyersQuery.test.tsx 6/6
src/hooks/queries/useShoppingListsQuery.test.tsx 4/6
src/hooks/queries/useWatchedItemsQuery.test.tsx 4/6
src/pages/MyDealsPage.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts 1/1
 
Test Files 31 failed | 148 passed (242)
Tests 31 failed | 2966 passed | 294 skipped (3301)
Start at 07:51:47
Duration 294.54s
src/hooks/queries/useShoppingListsQuery.test.tsx (6 tests) 587ms
src/hooks/queries/useWatchedItemsQuery.test.tsx (6 tests) 576ms
 
src/hooks/queries/useActivityLogQuery.test.tsx 1/6
src/hooks/queries/useFlyersQuery.test.tsx 6/6
src/hooks/queries/useShoppingListsQuery.test.tsx 6/6
src/hooks/queries/useWatchedItemsQuery.test.tsx 6/6
src/pages/MyDealsPage.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/user-journey.e2e.test.ts 1/1
 
Test Files 31 failed | 150 passed (242)
Tests 31 failed | 2971 passed | 294 skipped (3301)
Start at 07:51:47
Duration 294.84s
 
src/hooks/queries/useActivityLogQuery.test.tsx 6/6
src/hooks/queries/useFlyersQuery.test.tsx 6/6
src/hooks/queries/useShoppingListsQuery.test.tsx 6/6
src/hooks/queries/useWatchedItemsQuery.test.tsx 6/6
src/pages/MyDealsPage.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 150 passed (242)
Tests 31 failed | 2976 passed | 294 skipped (3301)
Start at 07:51:47
Duration 294.94s
src/hooks/queries/useActivityLogQuery.test.tsx (6 tests) 619ms
 
src/hooks/queries/useActivityLogQuery.test.tsx 6/6
src/hooks/queries/useShoppingListsQuery.test.tsx 6/6
src/hooks/queries/useWatchedItemsQuery.test.tsx 6/6
src/pages/MyDealsPage.test.tsx 0/6
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 151 passed (242)
Tests 31 failed | 2976 passed | 294 skipped (3307)
Start at 07:51:47
Duration 295.18s
 
src/hooks/queries/useActivityLogQuery.test.tsx 6/6
src/hooks/queries/useWatchedItemsQuery.test.tsx 6/6
src/pages/MyDealsPage.test.tsx 1/6
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 151 passed (242)
Tests 31 failed | 2977 passed | 294 skipped (3307)
Start at 07:51:47
Duration 295.59s
 
src/hooks/queries/useActivityLogQuery.test.tsx 6/6
src/pages/MyDealsPage.test.tsx 2/6
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 151 passed (242)
Tests 31 failed | 2978 passed | 294 skipped (3307)
Start at 07:51:47
Duration 295.80s
 
src/hooks/queries/useActivityLogQuery.test.tsx 6/6
src/pages/MyDealsPage.test.tsx 3/6
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 151 passed (242)
Tests 31 failed | 2979 passed | 294 skipped (3307)
Start at 07:51:47
Duration 295.90s
src/pages/MyDealsPage.test.tsx (6 tests) 674ms
 
src/pages/MyDealsPage.test.tsx 6/6
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 152 passed (242)
Tests 31 failed | 2982 passed | 294 skipped (3307)
Start at 07:51:47
Duration 296.83s
 
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 152 passed (242)
Tests 31 failed | 2982 passed | 294 skipped (3307)
Start at 07:51:47
Duration 297.85s
 
src/components/PasswordInput.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 152 passed (242)
Tests 31 failed | 2982 passed | 294 skipped (3307)
Start at 07:51:47
Duration 297.95s
 
src/components/PasswordInput.test.tsx [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 152 passed (242)
Tests 31 failed | 2982 passed | 294 skipped (3307)
Start at 07:51:47
Duration 299.01s
 
src/components/PasswordInput.test.tsx [queued]
src/hooks/useFlyerItems.test.ts [queued]
src/middleware/validation.middleware.test.ts [queued]
src/routes/admin.system.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/tokenStorage.test.ts [queued]
 
Test Files 31 failed | 152 passed (242)
Tests 31 failed | 2982 passed | 294 skipped (3307)
Start at 07:51:47
Duration 299.16s
 
src/components/PasswordInput.test.tsx [queued]
src/hooks/useFlyerItems.test.ts [queued]
src/hooks/useMasterItems.test.tsx [queued]
src/middleware/validation.middleware.test.ts [queued]
src/routes/admin.system.routes.test.ts 0/2
src/routes/store.routes.test.ts [queued]
src/services/tokenStorage.test.ts [queued]
 
Test Files 31 failed | 152 passed (242)
Tests 31 failed | 2982 passed | 294 skipped (3309)
Start at 07:51:47
Duration 299.71s
stdout | src/routes/admin.system.routes.test.ts > Admin System Routes (/api/admin/system) > POST /system/clear-geocode-cache > should return 500 if clearing the cache fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/PasswordInput.test.tsx [queued]
src/hooks/useFlyerItems.test.ts [queued]
src/hooks/useMasterItems.test.tsx [queued]
src/hooks/useModal.test.tsx [queued]
src/middleware/validation.middleware.test.ts [queued]
src/routes/admin.system.routes.test.ts 1/2
src/routes/store.routes.test.ts [queued]
src/services/tokenStorage.test.ts [queued]
 
Test Files 31 failed | 152 passed (242)
Tests 31 failed | 2983 passed | 294 skipped (3309)
Start at 07:51:47
Duration 301.63s
stderr | src/routes/admin.system.routes.test.ts > Admin System Routes (/api/admin/system) > POST /system/clear-geocode-cache > should return 500 if clearing the cache fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: Redis is down
at /app/src/routes/admin.system.routes.test.ts:117:71
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/PasswordInput.test.tsx [queued]
src/hooks/useFlyerItems.test.ts [queued]
src/hooks/useMasterItems.test.tsx [queued]
src/hooks/useModal.test.tsx [queued]
src/middleware/validation.middleware.test.ts [queued]
src/routes/admin.system.routes.test.ts 1/2
src/routes/store.routes.test.ts [queued]
src/services/tokenStorage.test.ts [queued]
 
Test Files 31 failed | 152 passed (242)
Tests 31 failed | 2983 passed | 294 skipped (3309)
Start at 07:51:47
Duration 301.63s
src/routes/admin.system.routes.test.ts (2 tests) 238ms
 
src/components/PasswordInput.test.tsx [queued]
src/hooks/useFlyerItems.test.ts [queued]
src/hooks/useMasterItems.test.tsx [queued]
src/hooks/useModal.test.tsx [queued]
src/middleware/validation.middleware.test.ts [queued]
src/routes/admin.system.routes.test.ts 2/2
src/routes/store.routes.test.ts [queued]
src/services/tokenStorage.test.ts [queued]
 
Test Files 31 failed | 153 passed (242)
Tests 31 failed | 2984 passed | 294 skipped (3309)
Start at 07:51:47
Duration 302.29s
 
src/components/PasswordInput.test.tsx [queued]
src/hooks/useFlyerItems.test.ts [queued]
src/hooks/useMasterItems.test.tsx [queued]
src/hooks/useModal.test.tsx [queued]
src/middleware/validation.middleware.test.ts [queued]
src/routes/admin.system.routes.test.ts 2/2
src/routes/store.routes.test.ts [queued]
src/services/tokenStorage.test.ts 0/8
 
Test Files 31 failed | 153 passed (242)
Tests 31 failed | 2984 passed | 294 skipped (3317)
Start at 07:51:47
Duration 302.85s
 
src/components/PasswordInput.test.tsx [queued]
src/hooks/useFlyerItems.test.ts [queued]
src/hooks/useMasterItems.test.tsx [queued]
src/hooks/useModal.test.tsx [queued]
src/middleware/validation.middleware.test.ts [queued]
src/routes/admin.system.routes.test.ts 2/2
src/routes/store.routes.test.ts [queued]
src/services/tokenStorage.test.ts 1/8
 
Test Files 31 failed | 153 passed (242)
Tests 31 failed | 2985 passed | 294 skipped (3317)
Start at 07:51:47
Duration 302.97s
src/services/tokenStorage.test.ts (8 tests) 52ms
 
src/components/PasswordInput.test.tsx [queued]
src/hooks/useFlyerItems.test.ts [queued]
src/hooks/useMasterItems.test.tsx [queued]
src/hooks/useModal.test.tsx [queued]
src/middleware/validation.middleware.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/tokenStorage.test.ts 8/8
 
Test Files 31 failed | 154 passed (242)
Tests 31 failed | 2992 passed | 294 skipped (3317)
Start at 07:51:47
Duration 303.39s
 
src/components/PasswordInput.test.tsx [queued]
src/hooks/useFlyerItems.test.ts [queued]
src/hooks/useMasterItems.test.tsx [queued]
src/hooks/useModal.test.tsx 0/6
src/middleware/validation.middleware.test.ts 0/3
src/routes/store.routes.test.ts [queued]
src/services/tokenStorage.test.ts 8/8
 
Test Files 31 failed | 154 passed (242)
Tests 31 failed | 2992 passed | 294 skipped (3326)
Start at 07:51:47
Duration 303.50s
src/middleware/validation.middleware.test.ts (3 tests) 75ms
 
src/components/PasswordInput.test.tsx [queued]
src/hooks/useFlyerItems.test.ts [queued]
src/hooks/useMasterItems.test.tsx [queued]
src/hooks/useModal.test.tsx 1/6
src/middleware/validation.middleware.test.ts 3/3
src/routes/store.routes.test.ts [queued]
src/services/tokenStorage.test.ts 8/8
 
Test Files 31 failed | 155 passed (242)
Tests 31 failed | 2996 passed | 294 skipped (3326)
Start at 07:51:47
Duration 303.81s
src/hooks/useModal.test.tsx (6 tests) 356ms
 
src/components/PasswordInput.test.tsx [queued]
src/hooks/useFlyerItems.test.ts 0/5
src/hooks/useMasterItems.test.tsx 0/4
src/hooks/useModal.test.tsx 6/6
src/middleware/validation.middleware.test.ts 3/3
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 156 passed (242)
Tests 31 failed | 3001 passed | 294 skipped (3335)
Start at 07:51:47
Duration 304.02s
 
src/components/PasswordInput.test.tsx 0/9
src/hooks/useFlyerItems.test.ts 0/5
src/hooks/useMasterItems.test.tsx 1/4
src/hooks/useModal.test.tsx 6/6
src/middleware/validation.middleware.test.ts 3/3
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 156 passed (242)
Tests 31 failed | 3002 passed | 294 skipped (3344)
Start at 07:51:47
Duration 304.22s
src/hooks/useMasterItems.test.tsx (4 tests) 236ms
 
src/components/PasswordInput.test.tsx 0/9
src/hooks/useFlyerItems.test.ts 1/5
src/hooks/useMasterItems.test.tsx 4/4
src/hooks/useModal.test.tsx 6/6
src/middleware/validation.middleware.test.ts 3/3
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 157 passed (242)
Tests 31 failed | 3006 passed | 294 skipped (3344)
Start at 07:51:47
Duration 304.33s
src/hooks/useFlyerItems.test.ts (5 tests) 233ms
 
src/components/PasswordInput.test.tsx 0/9
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 158 passed (242)
Tests 31 failed | 3010 passed | 294 skipped (3344)
Start at 07:51:47
Duration 305.38s
 
src/components/PasswordInput.test.tsx 1/9
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 158 passed (242)
Tests 31 failed | 3011 passed | 294 skipped (3344)
Start at 07:51:47
Duration 306.21s
 
src/components/PasswordInput.test.tsx 2/9
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 158 passed (242)
Tests 31 failed | 3012 passed | 294 skipped (3344)
Start at 07:51:47
Duration 306.42s
 
src/components/PasswordInput.test.tsx 3/9
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 158 passed (242)
Tests 31 failed | 3013 passed | 294 skipped (3344)
Start at 07:51:47
Duration 306.52s
 
src/components/PasswordInput.test.tsx 5/9
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 158 passed (242)
Tests 31 failed | 3015 passed | 294 skipped (3344)
Start at 07:51:47
Duration 306.62s
 
src/components/PasswordInput.test.tsx 7/9
src/routes/store.routes.test.ts [queued]
 
Test Files 31 failed | 158 passed (242)
Tests 31 failed | 3017 passed | 294 skipped (3344)
Start at 07:51:47
Duration 306.73s
src/components/PasswordInput.test.tsx (9 tests) 2688ms
should render as a password input by default 421ms
should toggle input type between password and text when the eye icon is clicked 1763ms
 
src/routes/store.routes.test.ts [queued]
src/tests/integration/shopping-list.integration.test.ts [queued]
 
Test Files 31 failed | 159 passed (242)
Tests 31 failed | 3019 passed | 294 skipped (3344)
Start at 07:51:47
Duration 307.90s
 
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts [queued]
src/tests/integration/shopping-list.integration.test.ts [queued]
 
Test Files 31 failed | 159 passed (242)
Tests 31 failed | 3019 passed | 294 skipped (3344)
Start at 07:51:47
Duration 309.19s
 
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts [queued]
src/tests/integration/shopping-list.integration.test.ts [queued]
src/utils/processingTimer.test.ts [queued]
 
Test Files 31 failed | 159 passed (242)
Tests 31 failed | 3019 passed | 294 skipped (3344)
Start at 07:51:47
Duration 309.29s
 
src/hooks/queries/useMasterItemsQuery.test.tsx [queued]
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts [queued]
src/services/db/price.db.test.ts [queued]
src/tests/integration/shopping-list.integration.test.ts [queued]
src/utils/processingTimer.test.ts [queued]
 
Test Files 31 failed | 159 passed (242)
Tests 31 failed | 3019 passed | 294 skipped (3344)
Start at 07:51:47
Duration 310.33s
 
src/hooks/queries/useMasterItemsQuery.test.tsx [queued]
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts [queued]
src/services/db/price.db.test.ts [queued]
src/services/nominatimGeocodingService.server.test.ts [queued]
src/tests/integration/shopping-list.integration.test.ts [queued]
src/utils/processingTimer.test.ts [queued]
 
Test Files 31 failed | 159 passed (242)
Tests 31 failed | 3019 passed | 294 skipped (3344)
Start at 07:51:47
Duration 310.99s
 
src/hooks/queries/useMasterItemsQuery.test.tsx [queued]
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts [queued]
src/services/db/price.db.test.ts [queued]
src/services/nominatimGeocodingService.server.test.ts [queued]
src/tests/integration/shopping-list.integration.test.ts [queued]
src/utils/processingTimer.test.ts [queued]
 
Test Files 31 failed | 159 passed (242)
Tests 31 failed | 3019 passed | 294 skipped (3344)
Start at 07:51:47
Duration 311.28s
 
src/hooks/queries/useMasterItemsQuery.test.tsx [queued]
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts [queued]
src/services/db/price.db.test.ts 0/6
src/services/nominatimGeocodingService.server.test.ts [queued]
src/tests/integration/shopping-list.integration.test.ts [queued]
src/utils/processingTimer.test.ts [queued]
 
Test Files 31 failed | 159 passed (242)
Tests 31 failed | 3019 passed | 294 skipped (3350)
Start at 07:51:47
Duration 312.57s
src/tests/integration/shopping-list.integration.test.ts (2 tests | 2 failed) 23ms
× should create and retrieve a shopping list for a user 15ms
× should not retrieve shopping lists belonging to another user 2ms
src/services/db/price.db.test.ts (6 tests) 44ms
 
src/hooks/queries/useMasterItemsQuery.test.tsx [queued]
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts 0/1
src/services/db/price.db.test.ts 6/6
src/services/nominatimGeocodingService.server.test.ts [queued]
src/tests/integration/shopping-list.integration.test.ts 2/2
src/utils/processingTimer.test.ts [queued]
 
Test Files 32 failed | 160 passed (242)
Tests 33 failed | 3025 passed | 294 skipped (3353)
Start at 07:51:47
Duration 312.78s
 
src/hooks/queries/useMasterItemsQuery.test.tsx [queued]
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts 1/1
src/services/db/price.db.test.ts 6/6
src/services/nominatimGeocodingService.server.test.ts [queued]
src/tests/integration/shopping-list.integration.test.ts 2/2
src/utils/processingTimer.test.ts [queued]
 
Test Files 32 failed | 160 passed (242)
Tests 33 failed | 3026 passed | 294 skipped (3353)
Start at 07:51:47
Duration 312.93s
src/services/db/index.db.test.ts (1 test) 16ms
 
src/hooks/queries/useMasterItemsQuery.test.tsx [queued]
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts 1/1
src/services/db/price.db.test.ts 6/6
src/services/nominatimGeocodingService.server.test.ts 1/4
src/tests/integration/shopping-list.integration.test.ts 2/2
src/utils/processingTimer.test.ts 0/9
 
Test Files 32 failed | 161 passed (242)
Tests 33 failed | 3027 passed | 294 skipped (3366)
Start at 07:51:47
Duration 313.03s
src/services/nominatimGeocodingService.server.test.ts (4 tests) 49ms
src/utils/processingTimer.test.ts (9 tests) 112ms
 
src/hooks/queries/useMasterItemsQuery.test.tsx 0/5
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts 1/1
src/services/db/price.db.test.ts 6/6
src/services/nominatimGeocodingService.server.test.ts 4/4
src/tests/integration/shopping-list.integration.test.ts 2/2
src/utils/processingTimer.test.ts 9/9
 
Test Files 32 failed | 163 passed (242)
Tests 33 failed | 3039 passed | 294 skipped (3371)
Start at 07:51:47
Duration 313.47s
 
src/hooks/queries/useMasterItemsQuery.test.tsx 0/5
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx 0/5
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts 1/1
src/services/nominatimGeocodingService.server.test.ts 4/4
src/utils/processingTimer.test.ts 9/9
 
Test Files 32 failed | 163 passed (242)
Tests 33 failed | 3039 passed | 294 skipped (3376)
Start at 07:51:47
Duration 313.67s
 
src/hooks/queries/useMasterItemsQuery.test.tsx 2/5
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx 0/5
src/routes/store.routes.test.ts [queued]
src/services/db/index.db.test.ts 1/1
src/services/nominatimGeocodingService.server.test.ts 4/4
src/utils/processingTimer.test.ts 9/9
 
Test Files 32 failed | 163 passed (242)
Tests 33 failed | 3041 passed | 294 skipped (3376)
Start at 07:51:47
Duration 313.88s
 
src/hooks/queries/useMasterItemsQuery.test.tsx 4/5
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx 0/5
src/routes/store.routes.test.ts [queued]
src/services/nominatimGeocodingService.server.test.ts 4/4
src/utils/processingTimer.test.ts 9/9
 
Test Files 32 failed | 163 passed (242)
Tests 33 failed | 3043 passed | 294 skipped (3376)
Start at 07:51:47
Duration 313.99s
src/hooks/queries/useMasterItemsQuery.test.tsx (5 tests) 494ms
 
src/hooks/queries/useMasterItemsQuery.test.tsx 5/5
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx 4/5
src/routes/store.routes.test.ts [queued]
 
Test Files 32 failed | 164 passed (242)
Tests 33 failed | 3048 passed | 294 skipped (3376)
Start at 07:51:47
Duration 314.19s
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx (5 tests) 517ms
 
src/hooks/queries/useMasterItemsQuery.test.tsx 5/5
src/hooks/queries/useSuggestedCorrectionsQuery.test.tsx 5/5
src/routes/store.routes.test.ts [queued]
 
Test Files 32 failed | 165 passed (242)
Tests 33 failed | 3049 passed | 294 skipped (3376)
Start at 07:51:47
Duration 314.91s
 
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts [queued]
 
Test Files 32 failed | 165 passed (242)
Tests 33 failed | 3049 passed | 294 skipped (3376)
Start at 07:51:47
Duration 315.30s
 
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts [queued]
 
Test Files 32 failed | 165 passed (242)
Tests 33 failed | 3049 passed | 294 skipped (3376)
Start at 07:51:47
Duration 317.38s
 
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts [queued]
src/utils/authUtils.test.ts [queued]
 
Test Files 32 failed | 165 passed (242)
Tests 33 failed | 3049 passed | 294 skipped (3376)
Start at 07:51:47
Duration 318.53s
 
src/hooks/queries/useCategoriesQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts [queued]
src/utils/authUtils.test.ts [queued]
 
Test Files 32 failed | 165 passed (242)
Tests 33 failed | 3049 passed | 294 skipped (3376)
Start at 07:51:47
Duration 319.34s
 
src/hooks/queries/useCategoriesQuery.test.tsx [queued]
src/routes/stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts [queued]
src/utils/authUtils.test.ts [queued]
 
Test Files 32 failed | 165 passed (242)
Tests 33 failed | 3049 passed | 294 skipped (3376)
Start at 07:51:47
Duration 319.44s
 
src/components/ConfirmationModal.test.tsx [queued]
src/hooks/queries/useCategoriesQuery.test.tsx [queued]
src/routes/stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/systemService.test.ts [queued]
src/tests/integration/server.integration.test.ts [queued]
src/utils/authUtils.test.ts [queued]
 
Test Files 32 failed | 165 passed (242)
Tests 33 failed | 3049 passed | 294 skipped (3376)
Start at 07:51:47
Duration 320.38s
 
src/components/ConfirmationModal.test.tsx [queued]
src/hooks/queries/useCategoriesQuery.test.tsx [queued]
src/routes/stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/systemService.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
src/utils/authUtils.test.ts [queued]
src/utils/fileUtils.test.ts [queued]
 
Test Files 32 failed | 165 passed (242)
Tests 33 failed | 3049 passed | 294 skipped (3381)
Start at 07:51:47
Duration 321.71s
 
src/components/ConfirmationModal.test.tsx [queued]
src/hooks/queries/useCategoriesQuery.test.tsx [queued]
src/routes/stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/systemService.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
src/utils/authUtils.test.ts 0/5
src/utils/fileUtils.test.ts [queued]
 
Test Files 32 failed | 165 passed (242)
Tests 33 failed | 3049 passed | 294 skipped (3386)
Start at 07:51:47
Duration 322.03s
src/utils/authUtils.test.ts (5 tests) 21ms
 
src/components/ConfirmationModal.test.tsx [queued]
src/hooks/queries/useCategoriesQuery.test.tsx [queued]
src/routes/stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/systemService.test.ts 0/4
src/tests/integration/server.integration.test.ts 0/5
src/utils/authUtils.test.ts 5/5
src/utils/fileUtils.test.ts 0/7
 
Test Files 32 failed | 166 passed (242)
Tests 33 failed | 3054 passed | 294 skipped (3397)
Start at 07:51:47
Duration 322.13s
src/utils/fileUtils.test.ts (7 tests) 61ms
src/services/systemService.test.ts (4 tests) 79ms
 
src/components/ConfirmationModal.test.tsx [queued]
src/hooks/queries/useCategoriesQuery.test.tsx 0/5
src/routes/stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/systemService.test.ts 4/4
src/tests/integration/server.integration.test.ts 0/5
src/utils/authUtils.test.ts 5/5
src/utils/fileUtils.test.ts 7/7
 
Test Files 32 failed | 168 passed (242)
Tests 33 failed | 3065 passed | 294 skipped (3402)
Start at 07:51:47
Duration 322.53s
 
src/components/ConfirmationModal.test.tsx [queued]
src/hooks/queries/useCategoriesQuery.test.tsx 0/5
src/routes/stats.routes.test.ts [queued]
src/routes/store.routes.test.ts [queued]
src/services/systemService.test.ts 4/4
src/tests/integration/server.integration.test.ts 0/5
src/utils/authUtils.test.ts 5/5
src/utils/fileUtils.test.ts 7/7
 
Test Files 32 failed | 168 passed (242)
Tests 33 failed | 3065 passed | 294 skipped (3402)
Start at 07:51:47
Duration 322.83s
 
src/components/ConfirmationModal.test.tsx 0/8
src/hooks/queries/useCategoriesQuery.test.tsx 3/5
src/routes/stats.routes.test.ts 0/5
src/routes/store.routes.test.ts [queued]
src/services/systemService.test.ts 4/4
src/tests/integration/server.integration.test.ts 0/5
src/utils/authUtils.test.ts 5/5
src/utils/fileUtils.test.ts 7/7
 
Test Files 32 failed | 168 passed (242)
Tests 33 failed | 3068 passed | 294 skipped (3415)
Start at 07:51:47
Duration 322.93s
src/hooks/queries/useCategoriesQuery.test.tsx (5 tests) 451ms
 
src/components/ConfirmationModal.test.tsx 0/8
src/hooks/queries/useCategoriesQuery.test.tsx 5/5
src/routes/stats.routes.test.ts 1/5
src/routes/store.routes.test.ts [queued]
src/services/systemService.test.ts 4/4
src/tests/integration/server.integration.test.ts 0/5
src/utils/authUtils.test.ts 5/5
src/utils/fileUtils.test.ts 7/7
 
Test Files 32 failed | 169 passed (242)
Tests 33 failed | 3071 passed | 294 skipped (3415)
Start at 07:51:47
Duration 323.03s
stdout | src/routes/stats.routes.test.ts > Stats Routes (/api/stats) > GET /most-frequent-sales > should return 500 if the database call fails
[DEBUG] tests-setup-unit.ts: crypto.randomBytes mock returning "mocked_random_id" for encoding "hex"
 
 
src/components/ConfirmationModal.test.tsx 0/8
src/hooks/queries/useCategoriesQuery.test.tsx 5/5
src/routes/stats.routes.test.ts 2/5
src/routes/store.routes.test.ts [queued]
src/services/systemService.test.ts 4/4
src/tests/integration/server.integration.test.ts 0/5
src/utils/fileUtils.test.ts 7/7
 
Test Files 32 failed | 169 passed (242)
Tests 33 failed | 3072 passed | 294 skipped (3415)
Start at 07:51:47
Duration 323.13s
stderr | src/routes/stats.routes.test.ts > Stats Routes (/api/stats) > GET /most-frequent-sales > should return 500 if the database call fails
--- [TEST] UNHANDLED ERROR (ID: mocked_random_id) --- Error: DB Error
at /app/src/routes/stats.routes.test.ts:51:23
at file:///app/node_modules/@vitest/runner/dist/index.js:145:11
at file:///app/node_modules/@vitest/runner/dist/index.js:915:26
at file:///app/node_modules/@vitest/runner/dist/index.js:1243:20
at new Promise (<anonymous>)
at runWithTimeout (file:///app/node_modules/@vitest/runner/dist/index.js:1209:10)
at file:///app/node_modules/@vitest/runner/dist/index.js:1653:37
at Traces.$ (file:///app/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
at trace (file:///app/node_modules/vitest/dist/chunks/test.B8ej_ZHS.js:239:21)
at runTest (file:///app/node_modules/@vitest/runner/dist/index.js:1653:12)
 
 
src/components/ConfirmationModal.test.tsx 0/8
src/hooks/queries/useCategoriesQuery.test.tsx 5/5
src/routes/stats.routes.test.ts 2/5
src/routes/store.routes.test.ts [queued]
src/services/systemService.test.ts 4/4
src/tests/integration/server.integration.test.ts 0/5
src/utils/fileUtils.test.ts 7/7
 
Test Files 32 failed | 169 passed (242)
Tests 33 failed | 3072 passed | 294 skipped (3415)
Start at 07:51:47
Duration 323.13s
src/routes/stats.routes.test.ts (5 tests) 221ms
 
src/components/ConfirmationModal.test.tsx 0/8
src/hooks/queries/useCategoriesQuery.test.tsx 5/5
src/routes/stats.routes.test.ts 5/5
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
 
Test Files 32 failed | 170 passed (242)
Tests 33 failed | 3075 passed | 294 skipped (3415)
Start at 07:51:47
Duration 323.74s
 
src/components/ConfirmationModal.test.tsx 1/8
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
 
Test Files 32 failed | 170 passed (242)
Tests 33 failed | 3076 passed | 294 skipped (3415)
Start at 07:51:47
Duration 324.66s
 
src/components/ConfirmationModal.test.tsx 2/8
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
 
Test Files 32 failed | 170 passed (242)
Tests 33 failed | 3077 passed | 294 skipped (3415)
Start at 07:51:47
Duration 325.27s
 
src/components/ConfirmationModal.test.tsx 3/8
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
 
Test Files 32 failed | 170 passed (242)
Tests 33 failed | 3078 passed | 294 skipped (3415)
Start at 07:51:47
Duration 325.57s
 
src/components/ConfirmationModal.test.tsx 4/8
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
 
Test Files 32 failed | 170 passed (242)
Tests 33 failed | 3079 passed | 294 skipped (3415)
Start at 07:51:47
Duration 325.67s
 
src/components/ConfirmationModal.test.tsx 5/8
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
 
Test Files 32 failed | 170 passed (242)
Tests 33 failed | 3080 passed | 294 skipped (3415)
Start at 07:51:47
Duration 325.88s
 
src/components/ConfirmationModal.test.tsx 6/8
src/hooks/queries/useApplicationStatsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
 
Test Files 32 failed | 170 passed (242)
Tests 33 failed | 3081 passed | 294 skipped (3415)
Start at 07:51:47
Duration 326.09s
 
src/components/ConfirmationModal.test.tsx 6/8
src/hooks/queries/useApplicationStatsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/eventBus.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
 
Test Files 32 failed | 170 passed (242)
Tests 33 failed | 3081 passed | 294 skipped (3415)
Start at 07:51:47
Duration 326.31s
src/components/ConfirmationModal.test.tsx (8 tests) 3585ms
should render correctly when isOpen is true 1724ms
should call onConfirm when the confirm button is clicked 568ms
should call onClose when the cancel button is clicked 329ms
should render custom button text and classes 448ms
 
src/components/AppGuard.test.tsx [queued]
src/features/flyer/BulkImportSummary.test.tsx [queued]
src/hooks/queries/useApplicationStatsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/eventBus.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
 
Test Files 32 failed | 171 passed (242)
Tests 33 failed | 3083 passed | 294 skipped (3415)
Start at 07:51:47
Duration 327.38s
 
src/components/AppGuard.test.tsx [queued]
src/features/flyer/BulkImportSummary.test.tsx [queued]
src/hooks/queries/useApplicationStatsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/eventBus.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
src/utils/priceParser.test.ts [queued]
 
Test Files 32 failed | 171 passed (242)
Tests 33 failed | 3083 passed | 294 skipped (3415)
Start at 07:51:47
Duration 327.64s
 
src/components/AppGuard.test.tsx [queued]
src/features/flyer/BulkImportSummary.test.tsx [queued]
src/hooks/queries/useApplicationStatsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/eventBus.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
src/utils/priceParser.test.ts [queued]
 
Test Files 32 failed | 171 passed (242)
Tests 33 failed | 3083 passed | 294 skipped (3415)
Start at 07:51:47
Duration 328.59s
 
src/components/AppGuard.test.tsx [queued]
src/features/flyer/BulkImportSummary.test.tsx [queued]
src/hooks/queries/useApplicationStatsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/eventBus.test.ts 0/8
src/tests/integration/server.integration.test.ts 0/5
src/utils/priceParser.test.ts [queued]
 
Test Files 32 failed | 171 passed (242)
Tests 33 failed | 3083 passed | 294 skipped (3423)
Start at 07:51:47
Duration 329.29s
src/services/eventBus.test.ts (8 tests) 59ms
 
src/components/AppGuard.test.tsx [queued]
src/features/flyer/BulkImportSummary.test.tsx [queued]
src/hooks/queries/useApplicationStatsQuery.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/eventBus.test.ts 8/8
src/tests/integration/server.integration.test.ts 0/5
src/utils/priceParser.test.ts [queued]
 
Test Files 32 failed | 172 passed (242)
Tests 33 failed | 3091 passed | 294 skipped (3423)
Start at 07:51:47
Duration 329.77s
 
src/components/AppGuard.test.tsx [queued]
src/features/flyer/BulkImportSummary.test.tsx [queued]
src/hooks/queries/useApplicationStatsQuery.test.tsx 0/4
src/pages/admin/AdminPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
src/utils/priceParser.test.ts [queued]
 
Test Files 32 failed | 172 passed (242)
Tests 33 failed | 3091 passed | 294 skipped (3427)
Start at 07:51:47
Duration 330.42s
src/utils/priceParser.test.ts (11 tests) 33ms
 
src/components/AppGuard.test.tsx [queued]
src/features/flyer/BulkImportSummary.test.tsx 0/4
src/hooks/queries/useApplicationStatsQuery.test.tsx 0/4
src/pages/admin/AdminPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
src/utils/priceParser.test.ts 11/11
 
Test Files 32 failed | 173 passed (242)
Tests 33 failed | 3102 passed | 294 skipped (3442)
Start at 07:51:47
Duration 330.53s
 
src/components/AppGuard.test.tsx [queued]
src/features/flyer/BulkImportSummary.test.tsx 0/4
src/hooks/queries/useApplicationStatsQuery.test.tsx 1/4
src/pages/admin/AdminPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts 0/5
src/utils/priceParser.test.ts 11/11
 
Test Files 32 failed | 173 passed (242)
Tests 33 failed | 3103 passed | 294 skipped (3442)
Start at 07:51:47
Duration 330.76s
src/tests/integration/server.integration.test.ts (5 tests | 5 skipped) 10023ms
should import the server app without crashing
should respond with 200 OK and "pong" for GET /api/health/ping
should respond with 200 OK for GET /api/health/db-schema
should respond with 200 OK for GET /api/health/storage
should respond with 200 OK for GET /api/health/redis
src/hooks/queries/useApplicationStatsQuery.test.tsx (4 tests) 382ms
 
src/components/AppGuard.test.tsx [queued]
src/features/flyer/BulkImportSummary.test.tsx 0/4
src/hooks/queries/useApplicationStatsQuery.test.tsx 4/4
src/pages/admin/AdminPage.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/server.integration.test.ts 5/5
 
Test Files 33 failed | 174 passed (242)
Tests 33 failed | 3106 passed | 299 skipped (3442)
Start at 07:51:47
Duration 331.51s
 
src/components/AppGuard.test.tsx 0/4
src/features/flyer/BulkImportSummary.test.tsx 0/4
src/hooks/queries/useApplicationStatsQuery.test.tsx 4/4
src/pages/admin/AdminPage.test.tsx 0/4
src/routes/store.routes.test.ts [queued]
 
Test Files 33 failed | 174 passed (242)
Tests 33 failed | 3106 passed | 299 skipped (3450)
Start at 07:51:47
Duration 331.90s
 
src/components/AppGuard.test.tsx 1/4
src/features/flyer/BulkImportSummary.test.tsx 0/4
src/pages/admin/AdminPage.test.tsx 0/4
src/routes/store.routes.test.ts [queued]
 
Test Files 33 failed | 174 passed (242)
Tests 33 failed | 3107 passed | 299 skipped (3450)
Start at 07:51:47
Duration 332.00s
src/components/AppGuard.test.tsx (4 tests) 347ms
 
src/components/AppGuard.test.tsx 4/4
src/features/flyer/BulkImportSummary.test.tsx 1/4
src/pages/admin/AdminPage.test.tsx 0/4
src/routes/store.routes.test.ts [queued]
 
Test Files 33 failed | 175 passed (242)
Tests 33 failed | 3111 passed | 299 skipped (3450)
Start at 07:51:47
Duration 332.20s
 
src/components/AppGuard.test.tsx 4/4
src/features/flyer/BulkImportSummary.test.tsx 2/4
src/pages/admin/AdminPage.test.tsx 0/4
src/routes/store.routes.test.ts [queued]
 
Test Files 33 failed | 175 passed (242)
Tests 33 failed | 3112 passed | 299 skipped (3450)
Start at 07:51:47
Duration 332.40s
src/features/flyer/BulkImportSummary.test.tsx (4 tests) 1930ms
should render all sections when data is provided for each 1381ms
should not render sections with no data 334ms
 
src/features/flyer/BulkImportSummary.test.tsx 4/4
src/pages/admin/AdminPage.test.tsx 0/4
src/routes/store.routes.test.ts [queued]
src/services/db/deals.db.test.ts [queued]
 
Test Files 33 failed | 176 passed (242)
Tests 33 failed | 3114 passed | 299 skipped (3450)
Start at 07:51:47
Duration 332.51s
 
src/features/flyer/BulkImportSummary.test.tsx 4/4
src/pages/admin/AdminPage.test.tsx 1/4
src/routes/store.routes.test.ts [queued]
src/services/db/deals.db.test.ts [queued]
 
Test Files 33 failed | 176 passed (242)
Tests 33 failed | 3115 passed | 299 skipped (3450)
Start at 07:51:47
Duration 333.25s
 
src/components/FlyerCountDisplay.test.tsx [queued]
src/pages/admin/AdminPage.test.tsx 1/4
src/routes/store.routes.test.ts [queued]
src/services/db/deals.db.test.ts [queued]
 
Test Files 33 failed | 176 passed (242)
Tests 33 failed | 3115 passed | 299 skipped (3450)
Start at 07:51:47
Duration 333.56s
 
src/components/FlyerCountDisplay.test.tsx [queued]
src/pages/admin/AdminPage.test.tsx 1/4
src/routes/store.routes.test.ts [queued]
src/services/db/deals.db.test.ts [queued]
 
Test Files 33 failed | 176 passed (242)
Tests 33 failed | 3115 passed | 299 skipped (3450)
Start at 07:51:47
Duration 334.22s
 
src/components/FlyerCountDisplay.test.tsx [queued]
src/components/MapView.test.tsx [queued]
src/config/queryClient.test.tsx [queued]
src/pages/admin/AdminPage.test.tsx 2/4
src/routes/store.routes.test.ts [queued]
src/services/db/deals.db.test.ts [queued]
 
Test Files 33 failed | 176 passed (242)
Tests 33 failed | 3116 passed | 299 skipped (3450)
Start at 07:51:47
Duration 334.33s
 
src/components/FlyerCountDisplay.test.tsx [queued]
src/components/MapView.test.tsx [queued]
src/config/queryClient.test.tsx [queued]
src/pages/admin/AdminPage.test.tsx 3/4
src/routes/store.routes.test.ts [queued]
src/services/db/deals.db.test.ts [queued]
 
Test Files 33 failed | 176 passed (242)
Tests 33 failed | 3117 passed | 299 skipped (3450)
Start at 07:51:47
Duration 335.12s
src/pages/admin/AdminPage.test.tsx (4 tests) 2465ms
should render the main heading and description 966ms
should render navigation links to other admin sections 1169ms
 
src/components/FlyerCountDisplay.test.tsx [queued]
src/components/MapView.test.tsx [queued]
src/config/queryClient.test.tsx [queued]
src/pages/admin/AdminPage.test.tsx 4/4
src/routes/store.routes.test.ts [queued]
src/services/db/deals.db.test.ts [queued]
 
Test Files 33 failed | 177 passed (242)
Tests 33 failed | 3118 passed | 299 skipped (3450)
Start at 07:51:47
Duration 335.25s
 
src/components/AchievementsList.test.tsx [queued]
src/components/FlyerCountDisplay.test.tsx [queued]
src/components/MapView.test.tsx [queued]
src/config/queryClient.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/deals.db.test.ts 0/3
src/utils/rateLimit.test.ts [queued]
 
Test Files 33 failed | 177 passed (242)
Tests 33 failed | 3118 passed | 299 skipped (3453)
Start at 07:51:47
Duration 335.37s
src/services/db/deals.db.test.ts (3 tests) 50ms
 
src/components/AchievementsList.test.tsx [queued]
src/components/FlyerCountDisplay.test.tsx [queued]
src/components/MapView.test.tsx [queued]
src/config/queryClient.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/deals.db.test.ts 3/3
src/utils/rateLimit.test.ts [queued]
 
Test Files 33 failed | 178 passed (242)
Tests 33 failed | 3121 passed | 299 skipped (3453)
Start at 07:51:47
Duration 336.07s
 
src/components/AchievementsList.test.tsx [queued]
src/components/FlyerCountDisplay.test.tsx [queued]
src/components/MapView.test.tsx [queued]
src/config/queryClient.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/db/deals.db.test.ts 3/3
src/utils/rateLimit.test.ts [queued]
 
Test Files 33 failed | 178 passed (242)
Tests 33 failed | 3121 passed | 299 skipped (3453)
Start at 07:51:47
Duration 336.39s
 
src/components/AchievementsList.test.tsx [queued]
src/components/FlyerCountDisplay.test.tsx [queued]
src/components/MapView.test.tsx [queued]
src/config/queryClient.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/utils/rateLimit.test.ts [queued]
 
Test Files 33 failed | 178 passed (242)
Tests 33 failed | 3121 passed | 299 skipped (3453)
Start at 07:51:47
Duration 337.38s
 
src/components/AchievementsList.test.tsx [queued]
src/components/FlyerCountDisplay.test.tsx [queued]
src/components/MapView.test.tsx [queued]
src/config/queryClient.test.tsx 0/4
src/routes/store.routes.test.ts [queued]
src/utils/rateLimit.test.ts 1/7
 
Test Files 33 failed | 178 passed (242)
Tests 33 failed | 3122 passed | 299 skipped (3464)
Start at 07:51:47
Duration 337.48s
src/utils/rateLimit.test.ts (7 tests) 39ms
 
src/components/AchievementsList.test.tsx [queued]
src/components/FlyerCountDisplay.test.tsx [queued]
src/components/MapView.test.tsx [queued]
src/config/queryClient.test.tsx 3/4
src/routes/store.routes.test.ts [queued]
src/utils/rateLimit.test.ts 7/7
 
Test Files 33 failed | 179 passed (242)
Tests 33 failed | 3131 passed | 299 skipped (3464)
Start at 07:51:47
Duration 337.68s
src/config/queryClient.test.tsx (4 tests) 251ms
 
src/components/AchievementsList.test.tsx [queued]
src/components/FlyerCountDisplay.test.tsx [queued]
src/components/MapView.test.tsx 0/3
src/config/queryClient.test.tsx 4/4
src/routes/store.routes.test.ts [queued]
src/utils/rateLimit.test.ts 7/7
 
Test Files 33 failed | 180 passed (242)
Tests 33 failed | 3132 passed | 299 skipped (3467)
Start at 07:51:47
Duration 337.98s
 
src/components/AchievementsList.test.tsx [queued]
src/components/FlyerCountDisplay.test.tsx 0/3
src/components/MapView.test.tsx 0/3
src/config/queryClient.test.tsx 4/4
src/routes/store.routes.test.ts [queued]
src/utils/rateLimit.test.ts 7/7
 
Test Files 33 failed | 180 passed (242)
Tests 33 failed | 3132 passed | 299 skipped (3470)
Start at 07:51:47
Duration 338.18s
 
src/components/AchievementsList.test.tsx 0/2
src/components/FlyerCountDisplay.test.tsx 0/3
src/components/MapView.test.tsx 0/3
src/config/queryClient.test.tsx 4/4
src/routes/store.routes.test.ts [queued]
src/utils/rateLimit.test.ts 7/7
 
Test Files 33 failed | 180 passed (242)
Tests 33 failed | 3132 passed | 299 skipped (3472)
Start at 07:51:47
Duration 338.28s
 
src/components/AchievementsList.test.tsx 0/2
src/components/FlyerCountDisplay.test.tsx 0/3
src/components/MapView.test.tsx 2/3
src/config/queryClient.test.tsx 4/4
src/routes/store.routes.test.ts [queued]
 
Test Files 33 failed | 180 passed (242)
Tests 33 failed | 3134 passed | 299 skipped (3472)
Start at 07:51:47
Duration 338.60s
src/components/MapView.test.tsx (3 tests) 550ms
 
src/components/AchievementsList.test.tsx 0/2
src/components/FlyerCountDisplay.test.tsx 0/3
src/components/WhatsNewModal.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-authorization.e2e.test.ts [queued]
 
Test Files 33 failed | 181 passed (242)
Tests 33 failed | 3135 passed | 299 skipped (3472)
Start at 07:51:47
Duration 339.97s
src/components/FlyerCountDisplay.test.tsx (3 tests) 1174ms
should render an error message when an error is present 810ms
src/components/AchievementsList.test.tsx (2 tests) 1504ms
should render the list of achievements with correct details 1449ms
 
src/components/AchievementsList.test.tsx 2/2
src/components/Dashboard.test.tsx [queued]
src/components/WhatsNewModal.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-authorization.e2e.test.ts [queued]
 
Test Files 33 failed | 183 passed (242)
Tests 33 failed | 3140 passed | 299 skipped (3472)
Start at 07:51:47
Duration 340.08s
 
src/components/Dashboard.test.tsx [queued]
src/components/WhatsNewModal.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-authorization.e2e.test.ts [queued]
src/tests/integration/deals.integration.test.ts [queued]
 
Test Files 33 failed | 183 passed (242)
Tests 33 failed | 3140 passed | 299 skipped (3472)
Start at 07:51:47
Duration 340.80s
 
src/components/Dashboard.test.tsx [queued]
src/components/WhatsNewModal.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-authorization.e2e.test.ts [queued]
src/tests/integration/deals.integration.test.ts [queued]
 
Test Files 33 failed | 183 passed (242)
Tests 33 failed | 3140 passed | 299 skipped (3472)
Start at 07:51:47
Duration 341.22s
 
src/components/Dashboard.test.tsx [queued]
src/components/WhatsNewModal.test.tsx [queued]
src/middleware/fileUpload.middleware.test.ts [queued]
src/providers/AppProviders.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-authorization.e2e.test.ts [queued]
src/tests/integration/deals.integration.test.ts [queued]
 
Test Files 33 failed | 183 passed (242)
Tests 33 failed | 3140 passed | 299 skipped (3472)
Start at 07:51:47
Duration 341.86s
 
src/components/Dashboard.test.tsx [queued]
src/components/WhatsNewModal.test.tsx [queued]
src/middleware/fileUpload.middleware.test.ts [queued]
src/providers/AppProviders.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-authorization.e2e.test.ts [queued]
src/tests/integration/deals.integration.test.ts [queued]
 
Test Files 33 failed | 183 passed (242)
Tests 33 failed | 3140 passed | 299 skipped (3472)
Start at 07:51:47
Duration 342.19s
 
src/components/Dashboard.test.tsx [queued]
src/components/WhatsNewModal.test.tsx [queued]
src/middleware/fileUpload.middleware.test.ts [queued]
src/providers/AppProviders.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-authorization.e2e.test.ts 0/6
src/tests/integration/deals.integration.test.ts [queued]
 
Test Files 33 failed | 183 passed (242)
Tests 33 failed | 3140 passed | 299 skipped (3478)
Start at 07:51:47
Duration 342.43s
 
src/components/Dashboard.test.tsx [queued]
src/components/WhatsNewModal.test.tsx [queued]
src/middleware/fileUpload.middleware.test.ts [queued]
src/providers/AppProviders.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-authorization.e2e.test.ts 0/6
src/tests/integration/db.integration.test.ts [queued]
src/tests/integration/deals.integration.test.ts [queued]
 
Test Files 33 failed | 183 passed (242)
Tests 33 failed | 3140 passed | 299 skipped (3478)
Start at 07:51:47
Duration 342.54s
src/tests/e2e/admin-authorization.e2e.test.ts (6 tests | 6 skipped) 168ms
should return 403 Forbidden for a regular user trying to access 'GET' '/admin/stats'
should return 403 Forbidden for a regular user trying to access 'GET' '/admin/users'
should return 403 Forbidden for a regular user trying to access 'GET' '/admin/corrections'
should return 403 Forbidden for a regular user trying to access 'POST' '/admin/corrections/1/approve'
should return 403 Forbidden for a regular user trying to access 'POST' '/admin/trigger/daily-deal-check'
should return 403 Forbidden for a regular user trying to access 'GET' '/admin/queues/status'
 
src/components/Dashboard.test.tsx [queued]
src/components/WhatsNewModal.test.tsx [queued]
src/middleware/fileUpload.middleware.test.ts [queued]
src/providers/AppProviders.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-authorization.e2e.test.ts 6/6
src/tests/integration/db.integration.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
 
Test Files 34 failed | 183 passed (242)
Tests 33 failed | 3140 passed | 305 skipped (3482)
Start at 07:51:47
Duration 343.17s
src/middleware/fileUpload.middleware.test.ts (3 tests) 32ms
 
src/components/Dashboard.test.tsx [queued]
src/components/WhatsNewModal.test.tsx 0/6
src/middleware/fileUpload.middleware.test.ts 3/3
src/providers/AppProviders.test.tsx 0/2
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-authorization.e2e.test.ts 6/6
src/tests/integration/db.integration.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
 
Test Files 34 failed | 184 passed (242)
Tests 33 failed | 3143 passed | 305 skipped (3493)
Start at 07:51:47
Duration 343.27s
src/providers/AppProviders.test.tsx (2 tests) 165ms
 
src/components/Dashboard.test.tsx 0/5
src/components/WhatsNewModal.test.tsx 0/6
src/middleware/fileUpload.middleware.test.ts 3/3
src/providers/AppProviders.test.tsx 2/2
src/routes/store.routes.test.ts [queued]
src/tests/e2e/admin-authorization.e2e.test.ts 6/6
src/tests/integration/db.integration.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
 
Test Files 34 failed | 185 passed (242)
Tests 33 failed | 3145 passed | 305 skipped (3498)
Start at 07:51:47
Duration 343.47s
 
src/components/Dashboard.test.tsx 0/5
src/components/WhatsNewModal.test.tsx 0/6
src/middleware/fileUpload.middleware.test.ts 3/3
src/providers/AppProviders.test.tsx 2/2
src/routes/store.routes.test.ts [queued]
src/tests/integration/db.integration.test.ts 0/2
src/tests/integration/deals.integration.test.ts 0/4
 
Test Files 34 failed | 185 passed (242)
Tests 33 failed | 3145 passed | 305 skipped (3500)
Start at 07:51:47
Duration 344.18s
src/tests/integration/db.integration.test.ts (2 tests | 2 failed) 35ms
× should create a new user and have a corresponding profile 24ms
× should be able to find the created user by email 3ms
stdout | src/components/Dashboard.test.tsx > Dashboard Component > renders the dashboard title
TEST: Verifying dashboard title render
 
 
src/components/Dashboard.test.tsx 0/5
src/components/WhatsNewModal.test.tsx 1/6
src/routes/store.routes.test.ts [queued]
src/tests/integration/db.integration.test.ts 2/2
src/tests/integration/deals.integration.test.ts 0/4
 
Test Files 35 failed | 185 passed (242)
Tests 35 failed | 3146 passed | 305 skipped (3500)
Start at 07:51:47
Duration 344.48s
stdout | src/components/Dashboard.test.tsx > Dashboard Component > renders the RecipeSuggester widget
TEST: Verifying RecipeSuggester presence
 
stdout | src/components/Dashboard.test.tsx > Dashboard Component > renders the FlyerCountDisplay widget within the "Your Flyers" section
TEST: Verifying FlyerCountDisplay presence and section title
 
 
src/components/Dashboard.test.tsx 1/5
src/components/WhatsNewModal.test.tsx 1/6
src/routes/store.routes.test.ts [queued]
src/tests/integration/db.integration.test.ts 2/2
src/tests/integration/deals.integration.test.ts 0/4
 
Test Files 35 failed | 185 passed (242)
Tests 35 failed | 3147 passed | 305 skipped (3500)
Start at 07:51:47
Duration 344.78s
stdout | src/components/Dashboard.test.tsx > Dashboard Component > renders the Leaderboard widget in the sidebar area
TEST: Verifying Leaderboard presence
 
stdout | src/components/Dashboard.test.tsx > Dashboard Component > renders with the correct grid layout classes
TEST: Verifying layout classes
 
 
src/components/Dashboard.test.tsx 3/5
src/components/WhatsNewModal.test.tsx 2/6
src/routes/store.routes.test.ts [queued]
src/tests/integration/db.integration.test.ts 2/2
src/tests/integration/deals.integration.test.ts 0/4
 
Test Files 35 failed | 185 passed (242)
Tests 35 failed | 3150 passed | 305 skipped (3500)
Start at 07:51:47
Duration 344.88s
src/components/Dashboard.test.tsx (5 tests) 1454ms
renders the dashboard title 968ms
renders the FlyerCountDisplay widget within the "Your Flyers" section 317ms
 
src/components/Dashboard.test.tsx 5/5
src/components/WhatsNewModal.test.tsx 3/6
src/routes/store.routes.test.ts [queued]
src/tests/integration/db.integration.test.ts 2/2
src/tests/integration/deals.integration.test.ts 0/4
 
Test Files 35 failed | 186 passed (242)
Tests 35 failed | 3153 passed | 305 skipped (3500)
Start at 07:51:47
Duration 345.09s
 
src/components/Dashboard.test.tsx 5/5
src/components/WhatsNewModal.test.tsx 3/6
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
 
Test Files 35 failed | 186 passed (242)
Tests 35 failed | 3153 passed | 305 skipped (3500)
Start at 07:51:47
Duration 345.29s
src/components/WhatsNewModal.test.tsx (6 tests) 2162ms
should render correctly when isOpen is true 1191ms
should call onClose when the "Got it!" button is clicked 366ms
 
src/components/AdminRoute.test.tsx [queued]
src/components/WhatsNewModal.test.tsx 6/6
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
 
Test Files 35 failed | 187 passed (242)
Tests 35 failed | 3156 passed | 305 skipped (3500)
Start at 07:51:47
Duration 345.69s
 
src/components/AdminRoute.test.tsx [queued]
src/components/WhatsNewModal.test.tsx 6/6
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
 
Test Files 35 failed | 187 passed (242)
Tests 35 failed | 3156 passed | 305 skipped (3500)
Start at 07:51:47
Duration 345.95s
 
src/components/AdminRoute.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/utils/timeout.test.ts [queued]
 
Test Files 35 failed | 187 passed (242)
Tests 35 failed | 3156 passed | 305 skipped (3500)
Start at 07:51:47
Duration 346.70s
 
src/components/AdminRoute.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/utils/objectUtils.test.ts [queued]
src/utils/timeout.test.ts [queued]
 
Test Files 35 failed | 187 passed (242)
Tests 35 failed | 3156 passed | 305 skipped (3500)
Start at 07:51:47
Duration 346.91s
 
src/components/AdminRoute.test.tsx [queued]
src/components/DarkModeToggle.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/utils/objectUtils.test.ts [queued]
src/utils/timeout.test.ts [queued]
 
Test Files 35 failed | 187 passed (242)
Tests 35 failed | 3156 passed | 305 skipped (3500)
Start at 07:51:47
Duration 348.16s
 
src/components/AdminRoute.test.tsx [queued]
src/components/DarkModeToggle.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/utils/objectUtils.test.ts [queued]
src/utils/timeout.test.ts [queued]
 
Test Files 35 failed | 187 passed (242)
Tests 35 failed | 3156 passed | 305 skipped (3500)
Start at 07:51:47
Duration 348.83s
 
src/components/AdminRoute.test.tsx [queued]
src/components/AnonymousUserBanner.test.tsx [queued]
src/components/DarkModeToggle.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/utils/objectUtils.test.ts [queued]
src/utils/timeout.test.ts [queued]
 
Test Files 35 failed | 187 passed (242)
Tests 35 failed | 3156 passed | 305 skipped (3500)
Start at 07:51:47
Duration 348.96s
 
src/components/AdminRoute.test.tsx [queued]
src/components/AnonymousUserBanner.test.tsx [queued]
src/components/DarkModeToggle.test.tsx [queued]
src/providers/ApiProvider.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/utils/objectUtils.test.ts [queued]
src/utils/timeout.test.ts [queued]
 
Test Files 35 failed | 187 passed (242)
Tests 35 failed | 3156 passed | 305 skipped (3500)
Start at 07:51:47
Duration 349.78s
 
src/components/AdminRoute.test.tsx [queued]
src/components/AnonymousUserBanner.test.tsx [queued]
src/components/DarkModeToggle.test.tsx [queued]
src/providers/ApiProvider.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/utils/objectUtils.test.ts [queued]
src/utils/timeout.test.ts 0/3
 
Test Files 35 failed | 187 passed (242)
Tests 35 failed | 3156 passed | 305 skipped (3503)
Start at 07:51:47
Duration 349.99s
 
src/components/AdminRoute.test.tsx [queued]
src/components/AnonymousUserBanner.test.tsx [queued]
src/components/DarkModeToggle.test.tsx [queued]
src/providers/ApiProvider.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/utils/objectUtils.test.ts [queued]
src/utils/timeout.test.ts 1/3
 
Test Files 35 failed | 187 passed (242)
Tests 35 failed | 3157 passed | 305 skipped (3503)
Start at 07:51:47
Duration 350.20s
src/utils/timeout.test.ts (3 tests) 44ms
 
src/components/AdminRoute.test.tsx [queued]
src/components/AnonymousUserBanner.test.tsx [queued]
src/components/DarkModeToggle.test.tsx [queued]
src/providers/ApiProvider.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/utils/objectUtils.test.ts 0/7
src/utils/timeout.test.ts 3/3
 
Test Files 35 failed | 188 passed (242)
Tests 35 failed | 3159 passed | 305 skipped (3510)
Start at 07:51:47
Duration 350.43s
 
src/components/AdminRoute.test.tsx [queued]
src/components/AnonymousUserBanner.test.tsx [queued]
src/components/DarkModeToggle.test.tsx [queued]
src/providers/ApiProvider.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/utils/objectUtils.test.ts 1/7
src/utils/timeout.test.ts 3/3
 
Test Files 35 failed | 188 passed (242)
Tests 35 failed | 3160 passed | 305 skipped (3510)
Start at 07:51:47
Duration 350.58s
src/utils/objectUtils.test.ts (7 tests) 36ms
 
src/components/AdminRoute.test.tsx 0/3
src/components/AnonymousUserBanner.test.tsx [queued]
src/components/DarkModeToggle.test.tsx [queued]
src/providers/ApiProvider.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/utils/objectUtils.test.ts 7/7
src/utils/timeout.test.ts 3/3
 
Test Files 35 failed | 189 passed (242)
Tests 35 failed | 3166 passed | 305 skipped (3513)
Start at 07:51:47
Duration 350.79s
 
src/components/AdminRoute.test.tsx 0/3
src/components/AnonymousUserBanner.test.tsx [queued]
src/components/DarkModeToggle.test.tsx [queued]
src/providers/ApiProvider.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/tests/integration/system.integration.test.ts [queued]
src/utils/objectUtils.test.ts 7/7
 
Test Files 35 failed | 189 passed (242)
Tests 35 failed | 3166 passed | 305 skipped (3513)
Start at 07:51:47
Duration 350.96s
 
src/components/AdminRoute.test.tsx 1/3
src/components/AnonymousUserBanner.test.tsx [queued]
src/components/DarkModeToggle.test.tsx [queued]
src/providers/ApiProvider.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/tests/integration/system.integration.test.ts [queued]
src/utils/objectUtils.test.ts 7/7
 
Test Files 35 failed | 189 passed (242)
Tests 35 failed | 3167 passed | 305 skipped (3513)
Start at 07:51:47
Duration 351.50s
src/components/AdminRoute.test.tsx (3 tests) 327ms
 
src/components/AdminRoute.test.tsx 3/3
src/components/AnonymousUserBanner.test.tsx 0/2
src/components/DarkModeToggle.test.tsx [queued]
src/providers/ApiProvider.test.tsx 1/3
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/tests/integration/system.integration.test.ts [queued]
src/utils/objectUtils.test.ts 7/7
 
Test Files 35 failed | 190 passed (242)
Tests 35 failed | 3170 passed | 305 skipped (3518)
Start at 07:51:47
Duration 351.60s
src/providers/ApiProvider.test.tsx (3 tests) 136ms
 
src/components/AdminRoute.test.tsx 3/3
src/components/AnonymousUserBanner.test.tsx 0/2
src/components/DarkModeToggle.test.tsx [queued]
src/providers/ApiProvider.test.tsx 3/3
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/tests/integration/system.integration.test.ts [queued]
 
Test Files 35 failed | 191 passed (242)
Tests 35 failed | 3172 passed | 305 skipped (3518)
Start at 07:51:47
Duration 351.75s
 
src/components/AdminRoute.test.tsx 3/3
src/components/AnonymousUserBanner.test.tsx 0/2
src/components/DarkModeToggle.test.tsx 0/3
src/providers/ApiProvider.test.tsx 3/3
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/tests/integration/system.integration.test.ts [queued]
 
Test Files 35 failed | 191 passed (242)
Tests 35 failed | 3172 passed | 305 skipped (3521)
Start at 07:51:47
Duration 351.95s
 
src/components/AnonymousUserBanner.test.tsx 0/2
src/components/DarkModeToggle.test.tsx 0/3
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/tests/integration/system.integration.test.ts 0/1
 
Test Files 35 failed | 191 passed (242)
Tests 35 failed | 3172 passed | 305 skipped (3522)
Start at 07:51:47
Duration 352.69s
 
src/components/AnonymousUserBanner.test.tsx 0/2
src/components/DarkModeToggle.test.tsx 0/3
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 0/4
src/tests/integration/system.integration.test.ts 0/1
 
Test Files 35 failed | 191 passed (242)
Tests 35 failed | 3172 passed | 305 skipped (3522)
Start at 07:51:47
Duration 352.87s
src/components/AnonymousUserBanner.test.tsx (2 tests) 1314ms
should render the banner with the correct text content and accessibility role 975ms
should call onOpenProfile when the "sign up or log in" button is clicked 328ms
 
src/components/AnonymousUserBanner.test.tsx 2/2
src/components/DarkModeToggle.test.tsx 0/3
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 1/4
src/tests/integration/system.integration.test.ts 0/1
 
Test Files 35 failed | 192 passed (242)
Tests 35 failed | 3174 passed | 306 skipped (3522)
Start at 07:51:47
Duration 353.30s
src/tests/integration/deals.integration.test.ts (4 tests | 4 skipped) 10013ms
should require authentication
should return empty array for authenticated user with no watched items
should reject invalid JWT token
should reject missing Bearer prefix
src/components/DarkModeToggle.test.tsx (3 tests) 1324ms
should render in light mode state 919ms
should render in dark mode state 310ms
 
src/components/DarkModeToggle.test.tsx 3/3
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 4/4
src/tests/integration/system.integration.test.ts 0/1
src/utils/stringUtils.test.ts [queued]
 
Test Files 36 failed | 193 passed (242)
Tests 35 failed | 3177 passed | 309 skipped (3522)
Start at 07:51:47
Duration 353.51s
 
src/components/DarkModeToggle.test.tsx 3/3
src/routes/store.routes.test.ts [queued]
src/tests/integration/deals.integration.test.ts 4/4
src/tests/integration/system.integration.test.ts 0/1
src/utils/stringUtils.test.ts [queued]
 
Test Files 36 failed | 193 passed (242)
Tests 35 failed | 3177 passed | 309 skipped (3522)
Start at 07:51:47
Duration 354.23s
 
src/components/UnitSystemToggle.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/stringUtils.test.ts [queued]
 
Test Files 36 failed | 193 passed (242)
Tests 35 failed | 3177 passed | 309 skipped (3522)
Start at 07:51:47
Duration 354.94s
 
src/components/UnitSystemToggle.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/brandService.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/stringUtils.test.ts [queued]
 
Test Files 36 failed | 193 passed (242)
Tests 35 failed | 3177 passed | 309 skipped (3522)
Start at 07:51:47
Duration 355.17s
 
src/components/UnitSystemToggle.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/brandService.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/stringUtils.test.ts 0/9
 
Test Files 36 failed | 193 passed (242)
Tests 35 failed | 3177 passed | 309 skipped (3531)
Start at 07:51:47
Duration 356.02s
src/utils/stringUtils.test.ts (9 tests) 39ms
 
src/components/UnitSystemToggle.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/brandService.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/stringUtils.test.ts 9/9
 
Test Files 36 failed | 194 passed (242)
Tests 35 failed | 3186 passed | 309 skipped (3531)
Start at 07:51:47
Duration 356.33s
 
src/components/ErrorDisplay.test.tsx [queued]
src/components/UnitSystemToggle.test.tsx [queued]
src/components/UserMenuSkeleton.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/brandService.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
 
Test Files 36 failed | 194 passed (242)
Tests 35 failed | 3186 passed | 309 skipped (3531)
Start at 07:51:47
Duration 357.01s
 
src/components/ErrorDisplay.test.tsx [queued]
src/components/Footer.test.tsx [queued]
src/components/UnitSystemToggle.test.tsx [queued]
src/components/UserMenuSkeleton.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/brandService.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
 
Test Files 36 failed | 194 passed (242)
Tests 35 failed | 3186 passed | 309 skipped (3531)
Start at 07:51:47
Duration 358.04s
 
src/components/ErrorDisplay.test.tsx [queued]
src/components/Footer.test.tsx [queued]
src/components/UnitSystemToggle.test.tsx [queued]
src/components/UserMenuSkeleton.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/brandService.test.ts 0/2
src/tests/integration/system.integration.test.ts 0/1
 
Test Files 36 failed | 194 passed (242)
Tests 35 failed | 3186 passed | 309 skipped (3533)
Start at 07:51:47
Duration 358.16s
src/services/brandService.test.ts (2 tests) 46ms
 
src/components/ErrorDisplay.test.tsx [queued]
src/components/Footer.test.tsx [queued]
src/components/UnitSystemToggle.test.tsx 0/3
src/components/UserMenuSkeleton.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/services/brandService.test.ts 2/2
src/tests/integration/system.integration.test.ts 0/1
 
Test Files 36 failed | 195 passed (242)
Tests 35 failed | 3188 passed | 309 skipped (3536)
Start at 07:51:47
Duration 358.76s
 
src/components/ErrorDisplay.test.tsx [queued]
src/components/Footer.test.tsx [queued]
src/components/UnitSystemToggle.test.tsx 0/3
src/components/UserMenuSkeleton.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/formatUtils.test.ts [queued]
 
Test Files 36 failed | 195 passed (242)
Tests 35 failed | 3188 passed | 309 skipped (3536)
Start at 07:51:47
Duration 358.86s
 
src/components/ErrorDisplay.test.tsx [queued]
src/components/Footer.test.tsx [queued]
src/components/UnitSystemToggle.test.tsx 0/3
src/components/UserMenuSkeleton.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/formatUtils.test.ts [queued]
 
Test Files 36 failed | 195 passed (242)
Tests 35 failed | 3188 passed | 309 skipped (3536)
Start at 07:51:47
Duration 358.96s
 
src/components/ErrorDisplay.test.tsx [queued]
src/components/Footer.test.tsx [queued]
src/components/UnitSystemToggle.test.tsx 0/3
src/components/UserMenuSkeleton.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/formatUtils.test.ts [queued]
 
Test Files 36 failed | 195 passed (242)
Tests 35 failed | 3188 passed | 309 skipped (3536)
Start at 07:51:47
Duration 359.96s
 
src/components/ErrorDisplay.test.tsx [queued]
src/components/Footer.test.tsx [queued]
src/components/UnitSystemToggle.test.tsx 2/3
src/components/UserMenuSkeleton.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/formatUtils.test.ts [queued]
 
Test Files 36 failed | 195 passed (242)
Tests 35 failed | 3190 passed | 309 skipped (3536)
Start at 07:51:47
Duration 360.38s
src/components/UnitSystemToggle.test.tsx (3 tests) 1609ms
should render correctly for imperial system 864ms
should render correctly for metric system 424ms
should call onToggle when the toggle is clicked 311ms
 
src/components/ErrorDisplay.test.tsx [queued]
src/components/Footer.test.tsx [queued]
src/components/UnitSystemToggle.test.tsx 3/3
src/components/UserMenuSkeleton.test.tsx 0/5
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/formatUtils.test.ts [queued]
 
Test Files 36 failed | 196 passed (242)
Tests 35 failed | 3191 passed | 309 skipped (3541)
Start at 07:51:47
Duration 360.58s
 
src/components/ErrorDisplay.test.tsx [queued]
src/components/Footer.test.tsx [queued]
src/components/UnitSystemToggle.test.tsx 3/3
src/components/UserMenuSkeleton.test.tsx 0/5
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/formatUtils.test.ts 0/7
 
Test Files 36 failed | 196 passed (242)
Tests 35 failed | 3191 passed | 309 skipped (3548)
Start at 07:51:47
Duration 360.78s
src/utils/formatUtils.test.ts (7 tests) 72ms
 
src/components/ErrorDisplay.test.tsx [queued]
src/components/Footer.test.tsx 0/1
src/components/UnitSystemToggle.test.tsx 3/3
src/components/UserMenuSkeleton.test.tsx 0/5
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/formatUtils.test.ts 7/7
 
Test Files 36 failed | 197 passed (242)
Tests 35 failed | 3198 passed | 309 skipped (3549)
Start at 07:51:47
Duration 360.88s
src/components/UserMenuSkeleton.test.tsx (5 tests) 335ms
 
src/components/ErrorDisplay.test.tsx 0/3
src/components/Footer.test.tsx 0/1
src/components/UnitSystemToggle.test.tsx 3/3
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
src/utils/formatUtils.test.ts 7/7
 
Test Files 36 failed | 198 passed (242)
Tests 35 failed | 3203 passed | 309 skipped (3552)
Start at 07:51:47
Duration 360.98s
src/components/Footer.test.tsx (1 test) 166ms
 
src/components/ErrorDisplay.test.tsx 0/3
src/components/StatCard.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
 
Test Files 36 failed | 199 passed (242)
Tests 35 failed | 3204 passed | 309 skipped (3552)
Start at 07:51:47
Duration 361.49s
 
src/components/ErrorDisplay.test.tsx 0/3
src/components/StatCard.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
 
Test Files 36 failed | 199 passed (242)
Tests 35 failed | 3204 passed | 309 skipped (3552)
Start at 07:51:47
Duration 362.12s
src/components/ErrorDisplay.test.tsx (3 tests) 795ms
should render the error message when provided 651ms
 
src/components/StatCard.test.tsx [queued]
src/features/flyer/SampleDataButton.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 0/1
 
Test Files 36 failed | 200 passed (242)
Tests 35 failed | 3207 passed | 309 skipped (3552)
Start at 07:51:47
Duration 362.97s
stdout | src/tests/integration/system.integration.test.ts > System API Routes Integration Tests
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
 
 
src/components/StatCard.test.tsx [queued]
src/features/flyer/SampleDataButton.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
src/tests/integration/system.integration.test.ts 1/1
 
Test Files 36 failed | 200 passed (242)
Tests 35 failed | 3207 passed | 310 skipped (3552)
Start at 07:51:47
Duration 363.51s
src/tests/integration/system.integration.test.ts (1 test | 1 skipped) 10744ms
should return a status for PM2
 
src/components/LoadingSpinner.test.tsx [queued]
src/components/StatCard.test.tsx 0/2
src/features/flyer/SampleDataButton.test.tsx [queued]
src/pages/admin/components/StatCard.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 37 failed | 200 passed (242)
Tests 35 failed | 3207 passed | 310 skipped (3554)
Start at 07:51:47
Duration 364.26s
src/components/StatCard.test.tsx (2 tests) 179ms
 
src/components/LoadingSpinner.test.tsx [queued]
src/features/flyer/SampleDataButton.test.tsx 0/2
src/pages/admin/components/StatCard.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 37 failed | 201 passed (242)
Tests 35 failed | 3209 passed | 310 skipped (3556)
Start at 07:51:47
Duration 364.46s
 
src/components/LoadingSpinner.test.tsx [queued]
src/features/flyer/SampleDataButton.test.tsx 1/2
src/pages/admin/components/StatCard.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 37 failed | 201 passed (242)
Tests 35 failed | 3210 passed | 310 skipped (3556)
Start at 07:51:47
Duration 365.09s
src/features/flyer/SampleDataButton.test.tsx (2 tests) 618ms
should render the button with the correct text 455ms
 
src/components/LoadingSpinner.test.tsx 0/2
src/pages/admin/components/StatCard.test.tsx [queued]
src/routes/store.routes.test.ts [queued]
 
Test Files 37 failed | 202 passed (242)
Tests 35 failed | 3211 passed | 310 skipped (3558)
Start at 07:51:47
Duration 365.19s
 
src/components/LoadingSpinner.test.tsx 1/2
src/pages/admin/components/StatCard.test.tsx 0/2
src/routes/store.routes.test.ts [queued]
 
Test Files 37 failed | 202 passed (242)
Tests 35 failed | 3212 passed | 310 skipped (3560)
Start at 07:51:47
Duration 365.29s
src/components/LoadingSpinner.test.tsx (2 tests) 114ms
src/pages/admin/components/StatCard.test.tsx (2 tests) 127ms
 
⎯⎯⎯⎯⎯⎯ Failed Suites 25 ⎯⎯⎯⎯⎯⎯
 
FAIL src/routes/store.routes.test.ts [ src/routes/store.routes.test.ts ]
TypeError: () => ({
getAllStores: __vite_ssr_import_0__.vi.fn(),
getStoreById: __vite_ssr_import_0__.vi.fn(),
...<omitted>...}) is not a constructor
src/routes/store.routes.ts:18:19
16|
17| // Initialize repositories
18| const storeRepo = new StoreRepository();
| ^
19| const storeLocationRepo = new StoreLocationRepository();
20| const addressRepo = new AddressRepository();
src/routes/store.routes.test.ts:45:1
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/63]⎯
 
FAIL src/tests/e2e/admin-authorization.e2e.test.ts > Admin Route Authorization
TypeError: Failed to parse URL from /api/auth/register
createAndLoginUser src/tests/utils/testHelpers.ts:76:5
74| } else {
75| // Use apiClient for E2E tests (hits the external URL via fetch)
76| await apiClient.registerUser(email, password, fullName);
| ^
77|
78| if (options.role === 'admin') {
src/tests/e2e/admin-authorization.e2e.test.ts:17:29
 
Caused by: TypeError: Invalid URL
publicPost src/services/apiClient.ts:186:10
Module.registerUser src/services/apiClient.ts:829:10
createAndLoginUser src/tests/utils/testHelpers.ts:76:21
src/tests/e2e/admin-authorization.e2e.test.ts:17:35
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_INVALID_URL', input: '/api/auth/register' }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/63]⎯
 
FAIL src/tests/e2e/auth.e2e.test.ts > Authentication E2E Flow
TypeError: Failed to parse URL from /api/auth/register
createAndLoginUser src/tests/utils/testHelpers.ts:76:5
74| } else {
75| // Use apiClient for E2E tests (hits the external URL via fetch)
76| await apiClient.registerUser(email, password, fullName);
| ^
77|
78| if (options.role === 'admin') {
src/tests/e2e/auth.e2e.test.ts:21:31
 
Caused by: TypeError: Invalid URL
publicPost src/services/apiClient.ts:186:10
Module.registerUser src/services/apiClient.ts:829:10
createAndLoginUser src/tests/utils/testHelpers.ts:76:21
src/tests/e2e/auth.e2e.test.ts:21:37
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_INVALID_URL', input: '/api/auth/register' }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/63]⎯
 
FAIL src/tests/integration/admin.integration.test.ts > Admin API Routes Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/admin.integration.test.ts:25:3
23| const createdFlyerIds: number[] = [];
24|
25| beforeAll(async () => {
| ^
26| vi.stubEnv('FRONTEND_URL', 'https://example.com');
27| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/63]⎯
 
FAIL src/tests/integration/ai.integration.test.ts > AI API Routes Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/ai.integration.test.ts:30:3
28| let testUserId: string;
29|
30| beforeAll(async () => {
| ^
31| vi.stubEnv('FRONTEND_URL', 'https://example.com');
32| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/63]⎯
 
FAIL src/tests/integration/auth.integration.test.ts > Authentication API Integration
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/auth.integration.test.ts:24:3
22| const createdUserIds: string[] = [];
23|
24| beforeAll(async () => {
| ^
25| vi.stubEnv('FRONTEND_URL', 'https://example.com');
26| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/63]⎯
 
FAIL src/tests/integration/budget.integration.test.ts > Budget API Routes Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/budget.integration.test.ts:21:3
19| const createdBudgetIds: number[] = [];
20|
21| beforeAll(async () => {
| ^
22| vi.stubEnv('FRONTEND_URL', 'https://example.com');
23| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/63]⎯
 
FAIL src/tests/integration/data-integrity.integration.test.ts > Data Integrity Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/data-integrity.integration.test.ts:20:3
18| let adminUser: UserProfile;
19|
20| beforeAll(async () => {
| ^
21| vi.stubEnv('FRONTEND_URL', 'https://example.com');
22| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/63]⎯
 
FAIL src/tests/integration/data-integrity.integration.test.ts > Data Integrity Integration Tests
TypeError: Cannot read properties of undefined (reading 'user')
src/tests/integration/data-integrity.integration.test.ts:39:85
37| vi.unstubAllEnvs();
38| // Clean up admin user
39| await getPool().query('DELETE FROM public.users WHERE user_id = $1…
| ^
40| });
41|
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/63]⎯
 
FAIL src/tests/integration/deals.integration.test.ts > Deals API Routes Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/deals.integration.test.ts:19:3
17| const createdUserIds: string[] = [];
18|
19| beforeAll(async () => {
| ^
20| vi.stubEnv('FRONTEND_URL', 'https://example.com');
21| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/63]⎯
 
FAIL src/tests/integration/edge-cases.integration.test.ts > Edge Cases Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/edge-cases.integration.test.ts:24:3
22| const createdShoppingListIds: number[] = [];
23|
24| beforeAll(async () => {
| ^
25| vi.stubEnv('FRONTEND_URL', 'https://example.com');
26| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/63]⎯
 
FAIL src/tests/integration/flyer-processing.integration.test.ts > Flyer Processing Background Job Integration Test
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/flyer-processing.integration.test.ts:130:3
128| const originalFrontendUrl = process.env.FRONTEND_URL;
129|
130| beforeAll(async () => {
| ^
131| // FIX: Stub FRONTEND_URL to ensure valid absolute URLs (http://..…
132| // for the database, satisfying the 'url_check' constraint.
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[12/63]⎯
 
FAIL src/tests/integration/flyer-processing.integration.test.ts > Flyer Processing Background Job Integration Test
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/flyer-processing.integration.test.ts:209:3
207| });
208|
209| afterAll(async () => {
| ^
210| // Restore original value
211| process.env.FRONTEND_URL = originalFrontendUrl;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[13/63]⎯
 
FAIL src/tests/integration/flyer.integration.test.ts > Public Flyer API Routes Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/flyer.integration.test.ts:27:3
25|
26| // Fetch flyers once before all tests in this suite to use in subseq…
27| beforeAll(async () => {
| ^
28| vi.stubEnv('FRONTEND_URL', 'https://example.com');
29| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[14/63]⎯
 
FAIL src/tests/integration/gamification.integration.test.ts > Gamification Flow Integration Test
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/gamification.integration.test.ts:45:3
43| let workersModule: typeof import('../../services/workers.server');
44|
45| beforeAll(async () => {
| ^
46| // Stub environment variables for URL generation in the background…
47| // This needs to be in beforeAll to ensure it's set before any cod…
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[15/63]⎯
 
FAIL src/tests/integration/inventory.integration.test.ts > Inventory/Expiry Integration Tests (/api/inventory)
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/inventory.integration.test.ts:30:3
28| const getUniqueUnit = () => `test-unit-${Date.now()}-${unitCounter++…
29|
30| beforeAll(async () => {
| ^
31| vi.stubEnv('FRONTEND_URL', 'https://example.com');
32| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[16/63]⎯
 
FAIL src/tests/integration/inventory.integration.test.ts > Inventory/Expiry Integration Tests (/api/inventory)
TypeError: Cannot read properties of undefined (reading 'user')
src/tests/integration/inventory.integration.test.ts:80:16
78| // Clean up user alert settings (correct table: expiry_alerts)
79| await pool.query('DELETE FROM public.expiry_alerts WHERE user_id =…
80| testUser.user.user_id,
| ^
81| ]);
82|
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[17/63]⎯
 
FAIL src/tests/integration/notification.integration.test.ts > Notification API Routes Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/notification.integration.test.ts:19:3
17| const createdUserIds: string[] = [];
18|
19| beforeAll(async () => {
| ^
20| vi.stubEnv('FRONTEND_URL', 'https://example.com');
21| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[18/63]⎯
 
FAIL src/tests/integration/price.integration.test.ts > Price History API Integration Test (/api/price-history)
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/price.integration.test.ts:30:3
28| const createdStoreLocations: CreatedStoreLocation[] = [];
29|
30| beforeAll(async () => {
| ^
31| vi.stubEnv('FRONTEND_URL', 'https://example.com');
32| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[19/63]⎯
 
FAIL src/tests/integration/public.routes.integration.test.ts > Public API Routes Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/public.routes.integration.test.ts:38:3
36| const createdStoreLocations: CreatedStoreLocation[] = [];
37|
38| beforeAll(async () => {
| ^
39| vi.stubEnv('FRONTEND_URL', 'https://example.com');
40| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[20/63]⎯
 
FAIL src/tests/integration/reactions.integration.test.ts > Reactions API Routes Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/reactions.integration.test.ts:22:3
20| const createdReactionIds: number[] = [];
21|
22| beforeAll(async () => {
| ^
23| vi.stubEnv('FRONTEND_URL', 'https://example.com');
24| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[21/63]⎯
 
FAIL src/tests/integration/receipt.integration.test.ts > Receipt Processing Integration Tests (/api/receipts)
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/receipt.integration.test.ts:71:3
69| const createdStoreLocations: CreatedStoreLocation[] = [];
70|
71| beforeAll(async () => {
| ^
72| vi.stubEnv('FRONTEND_URL', 'https://example.com');
73| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[22/63]⎯
 
FAIL src/tests/integration/recipe.integration.test.ts > Recipe API Routes Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/recipe.integration.test.ts:23:3
21| const createdRecipeIds: number[] = [];
22|
23| beforeAll(async () => {
| ^
24| vi.stubEnv('FRONTEND_URL', 'https://example.com');
25| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[23/63]⎯
 
FAIL src/tests/integration/server.integration.test.ts > Server Initialization Smoke Test
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/server.integration.test.ts:12:3
10| let app: any;
11|
12| beforeAll(async () => {
| ^
13| vi.stubEnv('FRONTEND_URL', 'https://example.com');
14| app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[24/63]⎯
 
FAIL src/tests/integration/system.integration.test.ts > System API Routes Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/system.integration.test.ts:12:3
10| let app: any;
11|
12| beforeAll(async () => {
| ^
13| vi.stubEnv('FRONTEND_URL', 'https://example.com');
14| app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[25/63]⎯
 
FAIL src/tests/integration/upc.integration.test.ts > UPC Scanning Integration Tests (/api/upc)
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/upc.integration.test.ts:27:3
25| const createdProductIds: number[] = [];
26|
27| beforeAll(async () => {
| ^
28| vi.stubEnv('FRONTEND_URL', 'https://example.com');
29| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[26/63]⎯
 
FAIL src/tests/integration/user.integration.test.ts > User API Routes Integration Tests
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/user.integration.test.ts:24:3
22| // Before any tests run, create a new user and log them in.
23| // The token will be used for all subsequent API calls in this test …
24| beforeAll(async () => {
| ^
25| vi.stubEnv('FRONTEND_URL', 'https://example.com');
26| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[27/63]⎯
 
FAIL src/tests/integration/user.routes.integration.test.ts > User Routes Integration Tests (/api/users)
Error: Hook timed out in 10000ms.
If this is a long-running hook, pass a timeout value as the last argument or configure it globally with "hookTimeout".
src/tests/integration/user.routes.integration.test.ts:19:3
17|
18| // Authenticate once before all tests in this suite to get a JWT.
19| beforeAll(async () => {
| ^
20| vi.stubEnv('FRONTEND_URL', 'https://example.com');
21| const app = (await import('../../../server')).default;
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[28/63]⎯
 
 
⎯⎯⎯⎯⎯⎯ Failed Tests 35 ⎯⎯⎯⎯⎯⎯⎯
 
FAIL src/tests/e2e/admin-dashboard.e2e.test.ts > E2E Admin Dashboard Flow > should allow an admin to log in and access dashboard features
TypeError: Failed to parse URL from /api/auth/register
src/tests/e2e/admin-dashboard.e2e.test.ts:29:30
27| it('should allow an admin to log in and access dashboard features', …
28| // 1. Register a new user (initially a regular user)
29| const registerResponse = await apiClient.registerUser(
| ^
30| adminEmail,
31| adminPassword,
 
Caused by: TypeError: Invalid URL
publicPost src/services/apiClient.ts:186:10
Module.registerUser src/services/apiClient.ts:829:10
src/tests/e2e/admin-dashboard.e2e.test.ts:29:46
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_INVALID_URL', input: '/api/auth/register' }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[29/63]⎯
 
FAIL src/tests/e2e/budget-journey.e2e.test.ts > E2E Budget Management Journey > should complete budget journey: Register -> Create Budget -> Track Spending -> Update -> Delete
TypeError: Failed to parse URL from /api/auth/register
src/tests/e2e/budget-journey.e2e.test.ts:86:30
84| it('should complete budget journey: Register -> Create Budget -> Tra…
85| // Step 1: Register a new user
86| const registerResponse = await apiClient.registerUser(
| ^
87| userEmail,
88| userPassword,
 
Caused by: TypeError: Invalid URL
publicPost src/services/apiClient.ts:186:10
Module.registerUser src/services/apiClient.ts:829:10
src/tests/e2e/budget-journey.e2e.test.ts:86:46
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_INVALID_URL', input: '/api/auth/register' }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[30/63]⎯
 
FAIL src/tests/e2e/deals-journey.e2e.test.ts > E2E Deals and Price Tracking Journey > should complete deals journey: Register -> Watch Items -> View Prices -> Check Deals
TypeError: Failed to parse URL from /api/auth/register
src/tests/e2e/deals-journey.e2e.test.ts:96:30
94| it('should complete deals journey: Register -> Watch Items -> View P…
95| // Step 1: Register a new user
96| const registerResponse = await apiClient.registerUser(
| ^
97| userEmail,
98| userPassword,
 
Caused by: TypeError: Invalid URL
publicPost src/services/apiClient.ts:186:10
Module.registerUser src/services/apiClient.ts:829:10
src/tests/e2e/deals-journey.e2e.test.ts:96:46
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_INVALID_URL', input: '/api/auth/register' }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[31/63]⎯
 
FAIL src/tests/e2e/flyer-upload.e2e.test.ts > E2E Flyer Upload and Processing Workflow > should allow a user to upload a flyer and wait for processing to complete
TypeError: Failed to parse URL from /api/auth/register
src/tests/e2e/flyer-upload.e2e.test.ts:36:30
34| it('should allow a user to upload a flyer and wait for processing to…
35| // 1. Register a new user
36| const registerResponse = await apiClient.registerUser(
| ^
37| userEmail,
38| userPassword,
 
Caused by: TypeError: Invalid URL
publicPost src/services/apiClient.ts:186:10
Module.registerUser src/services/apiClient.ts:829:10
src/tests/e2e/flyer-upload.e2e.test.ts:36:46
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_INVALID_URL', input: '/api/auth/register' }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[32/63]⎯
 
FAIL src/tests/e2e/inventory-journey.e2e.test.ts > E2E Inventory/Expiry Management Journey > should complete inventory journey: Register -> Add Items -> Track Expiry -> Consume -> Configure Alerts
TypeError: Failed to parse URL from /api/auth/register
src/tests/e2e/inventory-journey.e2e.test.ts:79:30
77| it('should complete inventory journey: Register -> Add Items -> Trac…
78| // Step 1: Register a new user
79| const registerResponse = await apiClient.registerUser(
| ^
80| userEmail,
81| userPassword,
 
Caused by: TypeError: Invalid URL
publicPost src/services/apiClient.ts:186:10
Module.registerUser src/services/apiClient.ts:829:10
src/tests/e2e/inventory-journey.e2e.test.ts:79:46
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_INVALID_URL', input: '/api/auth/register' }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[33/63]⎯
 
FAIL src/tests/e2e/receipt-journey.e2e.test.ts > E2E Receipt Processing Journey > should complete receipt journey: Register -> Upload -> View -> Manage Items -> Add to Inventory
TypeError: Failed to parse URL from /api/auth/register
src/tests/e2e/receipt-journey.e2e.test.ts:95:30
93| it('should complete receipt journey: Register -> Upload -> View -> M…
94| // Step 1: Register a new user
95| const registerResponse = await apiClient.registerUser(
| ^
96| userEmail,
97| userPassword,
 
Caused by: TypeError: Invalid URL
publicPost src/services/apiClient.ts:186:10
Module.registerUser src/services/apiClient.ts:829:10
src/tests/e2e/receipt-journey.e2e.test.ts:95:46
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_INVALID_URL', input: '/api/auth/register' }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[34/63]⎯
 
FAIL src/tests/e2e/upc-journey.e2e.test.ts > E2E UPC Scanning Journey > should complete full UPC scanning journey: Register -> Scan -> Lookup -> History -> Stats
TypeError: Failed to parse URL from /api/auth/register
src/tests/e2e/upc-journey.e2e.test.ts:74:30
72| it('should complete full UPC scanning journey: Register -> Scan -> L…
73| // Step 1: Register a new user
74| const registerResponse = await apiClient.registerUser(userEmail, u…
| ^
75| expect(registerResponse.status).toBe(201);
76|
 
Caused by: TypeError: Invalid URL
publicPost src/services/apiClient.ts:186:10
Module.registerUser src/services/apiClient.ts:829:10
src/tests/e2e/upc-journey.e2e.test.ts:74:46
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_INVALID_URL', input: '/api/auth/register' }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[35/63]⎯
 
FAIL src/tests/e2e/user-journey.e2e.test.ts > E2E User Journey > should complete a full user lifecycle: Register -> Login -> Manage List -> Delete Account
TypeError: Failed to parse URL from /api/auth/register
src/tests/e2e/user-journey.e2e.test.ts:31:30
29| it('should complete a full user lifecycle: Register -> Login -> Mana…
30| // 1. Register a new user
31| const registerResponse = await apiClient.registerUser(userEmail, u…
| ^
32|
33| expect(registerResponse.status).toBe(201);
 
Caused by: TypeError: Invalid URL
publicPost src/services/apiClient.ts:186:10
Module.registerUser src/services/apiClient.ts:829:10
src/tests/e2e/user-journey.e2e.test.ts:31:46
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_INVALID_URL', input: '/api/auth/register' }
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[36/63]⎯
 
FAIL src/services/db/flyer.db.test.ts > Flyer DB Service > getFlyerById > should return a flyer if found
AssertionError: expected "vi.fn()" to be called with arguments: [ …(2) ]
 
Received:
 
1st vi.fn() call:
 
[
- "SELECT * FROM public.flyers WHERE flyer_id = $1",
+ "
+ SELECT
+ f.*,
+ json_build_object(
+ 'store_id', s.store_id,
+ 'name', s.name,
+ 'logo_url', s.logo_url,
+ 'locations', COALESCE(
+ (SELECT json_agg(
+ json_build_object(
+ 'address_line_1', a.address_line_1,
+ 'city', a.city,
+ 'province_state', a.province_state,
+ 'postal_code', a.postal_code
+ )
+ )
+ FROM public.store_locations sl
+ JOIN public.addresses a ON sl.address_id = a.address_id
+ WHERE sl.store_id = s.store_id),
+ '[]'::json
+ )
+ ) as store
+ FROM public.flyers f
+ LEFT JOIN public.stores s ON f.store_id = s.store_id
+ WHERE f.flyer_id = $1
+ ",
[
123,
],
]
 
 
Number of calls: 1
 
src/services/db/flyer.db.test.ts:644:38
642|
643| expect(result).toEqual(mockFlyer);
644| expect(mockPoolInstance.query).toHaveBeenCalledWith(
| ^
645| 'SELECT * FROM public.flyers WHERE flyer_id = $1',
646| [123],
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[37/63]⎯
 
FAIL src/services/db/store.db.test.ts > StoreRepository > createStore > should create a store with just a name
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/store.db.test.ts:41:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[38/63]⎯
 
FAIL src/services/db/store.db.test.ts > StoreRepository > createStore > should create a store with name and logo URL
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/store.db.test.ts:56:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[39/63]⎯
 
FAIL src/services/db/store.db.test.ts > StoreRepository > createStore > should create a store with created_by user ID
TypeError: Cannot read properties of undefined (reading 'user_id')
src/services/db/store.db.test.ts:77:41
75| ['test@example.com', 'hash', 'Test User'],
76| );
77| const userId = userResult.rows[0].user_id;
| ^
78|
79| const storeId = await repo.createStore('User Store', logger, nul…
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[40/63]⎯
 
FAIL src/services/db/store.db.test.ts > StoreRepository > createStore > should reject duplicate store names
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/store.db.test.ts:92:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[41/63]⎯
 
FAIL src/services/db/store.db.test.ts > StoreRepository > getStoreById > should retrieve a store by ID
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/store.db.test.ts:101:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[42/63]⎯
 
FAIL src/services/db/store.db.test.ts > StoreRepository > getAllStores > should retrieve all stores
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/store.db.test.ts:120:19
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[43/63]⎯
 
FAIL src/services/db/store.db.test.ts > StoreRepository > updateStore > should update store name
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/store.db.test.ts:140:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[44/63]⎯
 
FAIL src/services/db/store.db.test.ts > StoreRepository > updateStore > should update store logo URL
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/store.db.test.ts:150:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[45/63]⎯
 
FAIL src/services/db/store.db.test.ts > StoreRepository > updateStore > should update both name and logo
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/store.db.test.ts:164:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[46/63]⎯
 
FAIL src/services/db/store.db.test.ts > StoreRepository > deleteStore > should delete a store
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/store.db.test.ts:185:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[47/63]⎯
 
FAIL src/services/db/store.db.test.ts > StoreRepository > searchStoresByName > should find stores by partial name match
FAIL src/services/db/store.db.test.ts > StoreRepository > searchStoresByName > should be case-insensitive
FAIL src/services/db/store.db.test.ts > StoreRepository > searchStoresByName > should return empty array for no matches
FAIL src/services/db/store.db.test.ts > StoreRepository > searchStoresByName > should limit results to 10 by default
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/store.db.test.ts:206:19
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[48/63]⎯
 
FAIL src/services/db/storeLocation.db.test.ts > StoreLocationRepository > createStoreLocation > should link a store to an address
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/storeLocation.db.test.ts:75:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[49/63]⎯
 
FAIL src/services/db/storeLocation.db.test.ts > StoreLocationRepository > createStoreLocation > should prevent duplicate store-address pairs
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/storeLocation.db.test.ts:109:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[50/63]⎯
 
FAIL src/services/db/storeLocation.db.test.ts > StoreLocationRepository > getLocationsByStoreId > should retrieve all locations for a store
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/storeLocation.db.test.ts:134:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[51/63]⎯
 
FAIL src/services/db/storeLocation.db.test.ts > StoreLocationRepository > getLocationsByStoreId > should return empty array for store with no locations
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/storeLocation.db.test.ts:180:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[52/63]⎯
 
FAIL src/services/db/storeLocation.db.test.ts > StoreLocationRepository > getStoreWithLocations > should retrieve store with all its locations
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/storeLocation.db.test.ts:191:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[53/63]⎯
 
FAIL src/services/db/storeLocation.db.test.ts > StoreLocationRepository > getStoreWithLocations > should work for stores with no locations
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/storeLocation.db.test.ts:218:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[54/63]⎯
 
FAIL src/services/db/storeLocation.db.test.ts > StoreLocationRepository > deleteStoreLocation > should delete a store location link
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/storeLocation.db.test.ts:229:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[55/63]⎯
 
FAIL src/services/db/storeLocation.db.test.ts > StoreLocationRepository > updateStoreLocation > should update a store location to point to a different address
DatabaseError: Failed to create store.
handleDbError src/services/db/errors.db.ts:198:9
196| // Use the consistent DatabaseError from the processing errors modul…
197| const errorMessage = options.defaultMessage || `Failed to perform op…
198| throw new ProcessingDatabaseError(errorMessage);
| ^
199| }
200|
StoreRepository.createStore src/services/db/store.db.ts:40:7
src/services/db/storeLocation.db.test.ts:269:23
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[56/63]⎯
 
FAIL src/tests/integration/db.integration.test.ts > Database Service Integration Tests > should create a new user and have a corresponding profile
FAIL src/tests/integration/db.integration.test.ts > Database Service Integration Tests > should be able to find the created user by email
TypeError: __vite_ssr_import_1__.userRepo.createUser is not a function
src/tests/integration/db.integration.test.ts:23:34
21|
22| // Act: Call the createUser function
23| testUser = await db.userRepo.createUser(
| ^
24| testUserEmail,
25| passwordHash,
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[57/63]⎯
 
FAIL src/tests/integration/shopping-list.integration.test.ts > Shopping List DB Service Tests > should create and retrieve a shopping list for a user
TypeError: __vite_ssr_import_1__.userRepo.createUser is not a function
src/tests/integration/shopping-list.integration.test.ts:15:43
13| const email = `list-user-${Date.now()}@example.com`;
14| const passwordHash = await bcrypt.hash('password123', 10);
15| const userprofile = await db.userRepo.createUser(
| ^
16| email,
17| passwordHash,
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[58/63]⎯
 
FAIL src/tests/integration/shopping-list.integration.test.ts > Shopping List DB Service Tests > should not retrieve shopping lists belonging to another user
TypeError: __vite_ssr_import_1__.userRepo.createUser is not a function
src/tests/integration/shopping-list.integration.test.ts:53:43
51| const email = `privacy-user-${Date.now()}@example.com`;
52| const passwordHash = await bcrypt.hash('password123', 10);
53| const userprofile = await db.userRepo.createUser(
| ^
54| email,
55| passwordHash,
 
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[59/63]⎯
 
 
Test Files 38 failed | 204 passed (242)
Tests 35 failed | 3215 passed | 310 skipped (3560)
Start at 07:51:47
Duration 365.44s (transform 298.87s, setup 509.98s, import 589.63s, tests 508.17s, environment 604.34s)
 
npm notice
npm notice New major version of npm available! 10.8.2 -> 11.7.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.7.0
npm notice To update run: npm install -g npm@11.7.0
npm notice