The following Vite config options will be overridden by SvelteKit:
  - base

[1m[46m RUN [49m[22m [36mv4.0.14 [39m[90m/home/moze/Sources/insta-recipe[39m

The following Vite config options will be overridden by SvelteKit:
  - base
 [32m✓[39m [30m[42m server [49m[39m src/tests/sse-extraction.spec.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 5[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/tests/scheduler.integration.spec.ts [2m([22m[2m10 tests[22m[2m)[22m[32m 7[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/tests/thumbnail-validation.spec.ts [2m([22m[2m31 tests[22m[2m)[22m[32m 11[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/tests/extraction-url-validation.integration.spec.ts [2m([22m[2m17 tests[22m[2m)[22m[32m 6[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/tests/favicon.spec.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 8[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/tests/icon-512.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 9[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/tests/favicon-ico.spec.ts [2m([22m[2m3 tests[22m[2m)[22m[32m 6[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/tests/instagram-url-validation.spec.ts [2m([22m[2m22 tests[22m[2m)[22m[32m 5[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/tests/logger.spec.ts [2m([22m[2m13 tests[22m[2m)[22m[32m 11[2mms[22m[39m
[90mstdout[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould return available: true when model is found
[22m[39m[LLM] Checking model availability: test-model
[LLM] Initializing client...
[LLM] Base URL: http://localhost:1234/v1
[LLM] Model: test-model

[90mstdout[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould return available: true when model is found
[22m[39m[LLM] Model available: test-model

[90mstdout[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould return available: false with message when model not found
[22m[39m[LLM] Checking model availability: missing-model
[LLM] Initializing client...
[LLM] Base URL: http://localhost:1234/v1
[LLM] Model: test-model

[90mstderr[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould return available: false with message when model not found
[22m[39m[LLM] Model not found: missing-model
[LLM] Available models: gpt-4o, llama2

[90mstdout[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould handle API errors gracefully
[22m[39m[LLM] Checking model availability: test-model
[LLM] Initializing client...
[LLM] Base URL: http://localhost:1234/v1
[LLM] Model: test-model

[90mstderr[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould handle API errors gracefully
[22m[39m[LLM] Model availability check failed API connection failed
Stack: Error: API connection failed
    at /home/moze/Sources/insta-recipe/src/lib/server/llm.spec.ts:63:36
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:37
    at Traces.$ (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
    at trace (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/test.DqQZzsWf.js:234:21)
    at runTest (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:12)

[90mstdout[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould match models by exact ID (case-sensitive)
[22m[39m[LLM] Checking model availability: test-model
[LLM] Initializing client...
[LLM] Base URL: http://localhost:1234/v1
[LLM] Model: test-model

[90mstdout[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould match models by exact ID (case-sensitive)
[22m[39m[LLM] Model available: test-model

[90mstdout[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould match models by exact ID (case-sensitive)
[22m[39m[LLM] Checking model availability: TEST-MODEL
[LLM] Initializing client...
[LLM] Base URL: http://localhost:1234/v1
[LLM] Model: test-model

[90mstderr[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould match models by exact ID (case-sensitive)
[22m[39m[LLM] Model not found: TEST-MODEL
[LLM] Available models: test-model, Test-Model

[90mstdout[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould handle empty model list
[22m[39m[LLM] Checking model availability: any-model
[LLM] Initializing client...
[LLM] Base URL: http://localhost:1234/v1
[LLM] Model: test-model

[90mstderr[2m | src/lib/server/llm.spec.ts[2m > [22m[2mcheckModelAvailability[2m > [22m[2mshould handle empty model list
[22m[39m[LLM] Model not found: any-model
[LLM] Available models: 

 [32m✓[39m [30m[42m server [49m[39m src/lib/server/llm.spec.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 8[2mms[22m[39m
[90mstdout[2m | src/tests/llm-logging.spec.ts[2m > [22m[2mllm.ts logging[2m > [22m[2mshould use logError on health check failure
[22m[39m[LLM] Initializing client...
[LLM] Base URL: http://192.168.1.10:1234/v1
[LLM] Model: google/gemma-3-4b

[90mstderr[2m | src/tests/llm-logging.spec.ts[2m > [22m[2mllm.ts logging[2m > [22m[2mshould use logError on health check failure
[22m[39m[vitest] The vi.fn() mock did not use 'function' or 'class' in its implementation, see https://vitest.dev/api/vi#vi-spyon for examples.

[90mstdout[2m | src/tests/scheduler-logging.spec.ts[2m > [22m[2mscheduler.ts logging[2m > [22m[2mshould use logError when auth renewal fails
[22m[39m[Scheduler] Scheduler is not running

[90mstderr[2m | src/tests/scheduler-logging.spec.ts[2m > [22m[2mscheduler.ts logging[2m > [22m[2mlogError should properly serialize error objects
[22m[39m[Scheduler] Instagram authentication renewal failed Test renewal failure
Stack: Error stack trace here

[90mstderr[2m | src/tests/scheduler-logging.spec.ts[2m > [22m[2mscheduler.ts logging[2m > [22m[2mlogError should handle complex error objects
[22m[39m[Scheduler] Instagram authentication renewal failed {
  "code": "AUTH_FAILED",
  "message": "Session expired",
  "details": {
    "timestamp": 1771285716731,
    "authPath": "/app/secrets/auth.json"
  }
}

[90mstderr[2m | src/tests/scheduler-logging.spec.ts[2m > [22m[2mscheduler.ts logging[2m > [22m[2mlogged errors should not contain [object Object]
[22m[39m[Scheduler] Test error message Test error
Stack: Error: Test error
    at /home/moze/Sources/insta-recipe/src/tests/scheduler-logging.spec.ts:75:17
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:37
    at Traces.$ (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
    at trace (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/test.DqQZzsWf.js:234:21)
    at runTest (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:12)

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mConfiguration[2m > [22m[2mshould use default interval when AUTH_SCHEDULER_INTERVAL_MINUTES is not set
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mConfiguration[2m > [22m[2mshould use default interval when AUTH_SCHEDULER_INTERVAL_MINUTES is not set
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mConfiguration[2m > [22m[2mshould parse custom interval minutes from environment
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mConfiguration[2m > [22m[2mshould parse custom interval minutes from environment
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mConfiguration[2m > [22m[2mshould disable scheduler when AUTH_SCHEDULER_ENABLED is not true
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mConfiguration[2m > [22m[2mshould disable scheduler when AUTH_SCHEDULER_ENABLED is not true
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mConfiguration[2m > [22m[2mshould parse AUTH_SCHEDULER_ENABLED as true when set to "true"
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mConfiguration[2m > [22m[2mshould parse AUTH_SCHEDULER_ENABLED as true when set to "true"
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/llm-logging.spec.ts[2m > [22m[2mllm.ts logging[2m > [22m[2mshould use logError on model availability check failure
[22m[39m[LLM] Checking model availability: test-model
[LLM] Initializing client...
[LLM] Base URL: http://192.168.1.10:1234/v1
[LLM] Model: google/gemma-3-4b

[90mstderr[2m | src/tests/llm-logging.spec.ts[2m > [22m[2mllm.ts logging[2m > [22m[2mshould use logError on model availability check failure
[22m[39m[vitest] The vi.fn() mock did not use 'function' or 'class' in its implementation, see https://vitest.dev/api/vi#vi-spyon for examples.

[90mstdout[2m | src/tests/llm-logging.spec.ts[2m > [22m[2mllm.ts logging[2m > [22m[2mshould not log [object Object] for errors
[22m[39m[LLM] Initializing client...
[LLM] Base URL: http://192.168.1.10:1234/v1
[LLM] Model: google/gemma-3-4b

[90mstderr[2m | src/tests/llm-logging.spec.ts[2m > [22m[2mllm.ts logging[2m > [22m[2mshould not log [object Object] for errors
[22m[39m[vitest] The vi.fn() mock did not use 'function' or 'class' in its implementation, see https://vitest.dev/api/vi#vi-spyon for examples.

[90mstdout[2m | src/tests/llm-logging.spec.ts[2m > [22m[2mllm.ts logging[2m > [22m[2mshould serialize error details properly
[22m[39m[LLM] Checking model availability: test-model
[LLM] Initializing client...
[LLM] Base URL: http://192.168.1.10:1234/v1
[LLM] Model: google/gemma-3-4b

[90mstderr[2m | src/tests/llm-logging.spec.ts[2m > [22m[2mllm.ts logging[2m > [22m[2mshould serialize error details properly
[22m[39m[vitest] The vi.fn() mock did not use 'function' or 'class' in its implementation, see https://vitest.dev/api/vi#vi-spyon for examples.

 [32m✓[39m [30m[42m server [49m[39m src/tests/scheduler-logging.spec.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 43[2mms[22m[39m
[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould not start when disabled
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould not start when disabled
[22m[39m[Scheduler] Authentication scheduler is disabled (set AUTH_SCHEDULER_ENABLED=true to enable)

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould not start when disabled
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould start when enabled
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould start when enabled
[22m[39m[Scheduler] Starting authentication scheduler with 720min interval

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould start when enabled
[22m[39m[Scheduler] Stopping authentication scheduler...

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould not start twice
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould not start twice
[22m[39m[Scheduler] Starting authentication scheduler with 720min interval

[90mstderr[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould not start twice
[22m[39m[Scheduler] Scheduler is already running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould not start twice
[22m[39m[Scheduler] Stopping authentication scheduler...

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould stop the scheduler
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould stop the scheduler
[22m[39m[Scheduler] Starting authentication scheduler with 720min interval

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould stop the scheduler
[22m[39m[Scheduler] Stopping authentication scheduler...

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould stop the scheduler
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould handle stopping when not running
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould handle stopping when not running
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mScheduler Lifecycle[2m > [22m[2mshould handle stopping when not running
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mStatus Reporting[2m > [22m[2mshould return scheduler status with default values
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mStatus Reporting[2m > [22m[2mshould return scheduler status with default values
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mStatus Reporting[2m > [22m[2mshould report running state correctly
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mStatus Reporting[2m > [22m[2mshould report running state correctly
[22m[39m[Scheduler] Starting authentication scheduler with 720min interval

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mStatus Reporting[2m > [22m[2mshould report running state correctly
[22m[39m[Scheduler] Stopping authentication scheduler...

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mStatus Reporting[2m > [22m[2mshould track configuration
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mStatus Reporting[2m > [22m[2mshould track configuration
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mAuth Renewal[2m > [22m[2mshould skip renewal if no auth.json exists
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mAuth Renewal[2m > [22m[2mshould skip renewal if no auth.json exists
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mAuth Renewal[2m > [22m[2mshould prevent concurrent renewal attempts
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mAuth Renewal[2m > [22m[2mshould prevent concurrent renewal attempts
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mEnvironment Variables[2m > [22m[2mshould handle empty AUTH_SCHEDULER_INTERVAL_MINUTES with default
[22m[39m[Scheduler] Scheduler is not running

[90mstdout[2m | src/tests/scheduler.spec.ts[2m > [22m[2mScheduler Service[2m > [22m[2mEnvironment Variables[2m > [22m[2mshould handle empty AUTH_SCHEDULER_INTERVAL_MINUTES with default
[22m[39m[Scheduler] Scheduler is not running

 [31m❯[39m [30m[42m server [49m[39m src/tests/llm-logging.spec.ts [2m([22m[2m4 tests[22m[2m | [22m[31m3 failed[39m[2m)[22m[32m 18[2mms[22m[39m
[31m     [31m×[31m should use logError on health check failure[39m[32m 10[2mms[22m[39m
[31m     [31m×[31m should use logError on model availability check failure[39m[32m 3[2mms[22m[39m
     [32m✓[39m should not log [object Object] for errors[32m 2[2mms[22m[39m
[31m     [31m×[31m should serialize error details properly[39m[32m 2[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/tests/scheduler.spec.ts [2m([22m[2m15 tests[22m[2m)[22m[32m 13[2mms[22m[39m
[90mstderr[2m | src/tests/queue-manager.spec.ts[2m > [22m[2mQueueManager[2m > [22m[2msubscribe[2m > [22m[2mshould handle subscriber errors gracefully
[22m[39m[QueueManager] Subscriber error Subscriber error
Stack: Error: Subscriber error
    at /home/moze/Sources/insta-recipe/src/tests/queue-manager.spec.ts:325:15
    at Mock (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/spy/dist/index.js:280:34)
    at QueueManager.notifySubscribers (/home/moze/Sources/insta-recipe/src/lib/server/queue/QueueManager.ts:429:9)
    at QueueManager.enqueue (/home/moze/Sources/insta-recipe/src/lib/server/queue/QueueManager.ts:83:10)
    at /home/moze/Sources/insta-recipe/src/tests/queue-manager.spec.ts:333:22
    at Proxy.assertThrows (file:///home/moze/Sources/insta-recipe/node_modules/chai/index.js:2798:5)
    at Proxy.methodWrapper (file:///home/moze/Sources/insta-recipe/node_modules/chai/index.js:1700:25)
    at Proxy.<anonymous> (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/expect/dist/index.js:1149:12)
    at Proxy.overwritingMethodWrapper (file:///home/moze/Sources/insta-recipe/node_modules/chai/index.js:1750:33)
    at Proxy.<anonymous> (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/expect/dist/index.js:1485:16)

 [32m✓[39m [30m[42m server [49m[39m src/tests/queue-manager-logging.spec.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 8[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/demo.spec.ts [2m([22m[2m1 test[22m[2m)[22m[32m 2[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/tests/queue-manager.spec.ts [2m([22m[2m28 tests[22m[2m)[22m[32m 18[2mms[22m[39m
[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould have VAPID public key configured
[22m[39m[PushService] Clearing all subscriptions

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould send notification with web-push
[22m[39m[PushService] Clearing all subscriptions

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould send notification with web-push
[22m[39m[PushService] Subscribing client client-1

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould send notification with web-push
[22m[39m[PushService] Sending notification to 1 subscribers
[PushService] Notification payload: { type: [32m'success'[39m, itemId: [32m'test-123'[39m, body: [32m'Test notification'[39m }

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould send notification with web-push
[22m[39m[PushService] ✓ Sent notification to https://push.example.com/test...

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould send notification with web-push
[22m[39m[PushService] ✓ Sent notification to client client-1

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle subscription expiration (410)
[22m[39m[PushService] Clearing all subscriptions

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle subscription expiration (410)
[22m[39m[PushService] Subscribing client client-1

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle subscription expiration (410)
[22m[39m[PushService] Sending notification to 1 subscribers
[PushService] Notification payload: { type: [32m'error'[39m, itemId: [32m'test'[39m, body: [32m'Test'[39m }

[90mstderr[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle subscription expiration (410)
[22m[39m[PushService] Subscription expired: https://push.example.com/expired...

[90mstderr[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle subscription expiration (410)
[22m[39m[PushService] ✗ Failed to send to client client-1: Error: Subscription expired
    at PushNotificationService.sendToSubscription [90m(/home/moze/Sources/insta-recipe/[39msrc/lib/server/notifications/PushNotificationService.ts:142:15[90m)[39m
[90m    at processTicksAndRejections (node:internal/process/task_queues:103:5)[39m
    at PushNotificationService.sendNotification [90m(/home/moze/Sources/insta-recipe/[39msrc/lib/server/notifications/PushNotificationService.ts:106:9[90m)[39m
    at [90m/home/moze/Sources/insta-recipe/[39msrc/tests/push-notification-service.spec.ts:76:5
    at [90mfile:///home/moze/Sources/insta-recipe/[39mnode_modules/[4m@vitest/runner[24m/dist/index.js:919:20

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould send notification with TTL of 24 hours
[22m[39m[PushService] Clearing all subscriptions

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould send notification with TTL of 24 hours
[22m[39m[PushService] Subscribing client client-2

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould send notification with TTL of 24 hours
[22m[39m[PushService] Sending notification to 1 subscribers
[PushService] Notification payload: { type: [32m'progress'[39m, itemId: [32m'test-456'[39m, body: [32m'Progress update'[39m }

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould send notification with TTL of 24 hours
[22m[39m[PushService] ✓ Sent notification to https://push.example.com/test-ttl...

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould send notification with TTL of 24 hours
[22m[39m[PushService] ✓ Sent notification to client client-2

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould serialize notification data as JSON
[22m[39m[PushService] Clearing all subscriptions

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould serialize notification data as JSON
[22m[39m[PushService] Subscribing client client-3

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould serialize notification data as JSON
[22m[39m[PushService] Sending notification to 1 subscribers
[PushService] Notification payload: {
  type: [32m'success'[39m,
  itemId: [32m'test-789'[39m,
  body: [32m'JSON test'[39m,
  recipeName: [32m'Test Recipe'[39m
}

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould serialize notification data as JSON
[22m[39m[PushService] ✓ Sent notification to https://push.example.com/test-json...

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould serialize notification data as JSON
[22m[39m[PushService] ✓ Sent notification to client client-3

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle multiple subscriptions
[22m[39m[PushService] Clearing all subscriptions

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle multiple subscriptions
[22m[39m[PushService] Subscribing client client-1

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle multiple subscriptions
[22m[39m[PushService] Subscribing client client-2

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle multiple subscriptions
[22m[39m[PushService] Sending notification to 2 subscribers
[PushService] Notification payload: {
  type: [32m'success'[39m,
  itemId: [32m'test-multi'[39m,
  body: [32m'Multi-subscriber test'[39m
}

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle multiple subscriptions
[22m[39m[PushService] ✓ Sent notification to https://push.example.com/client1...

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle multiple subscriptions
[22m[39m[PushService] ✓ Sent notification to client client-1

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle multiple subscriptions
[22m[39m[PushService] ✓ Sent notification to https://push.example.com/client2...

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould handle multiple subscriptions
[22m[39m[PushService] ✓ Sent notification to client client-2

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould log endpoint prefix only (privacy)
[22m[39m[PushService] Clearing all subscriptions

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould log endpoint prefix only (privacy)
[22m[39m[PushService] Subscribing client client-privacy

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould log endpoint prefix only (privacy)
[22m[39m[PushService] Sending notification to 1 subscribers
[PushService] Notification payload: { type: [32m'success'[39m, itemId: [32m'test-privacy'[39m, body: [32m'Privacy test'[39m }

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould log endpoint prefix only (privacy)
[22m[39m[PushService] ✓ Sent notification to https://push.example.com/very-long-endpoint-with-s...

[90mstdout[2m | src/tests/push-notification-service.spec.ts[2m > [22m[2mPushNotificationService web-push integration[2m > [22m[2mshould log endpoint prefix only (privacy)
[22m[39m[PushService] ✓ Sent notification to client client-privacy

 [32m✓[39m [30m[42m server [49m[39m src/tests/push-notification-service.spec.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 15[2mms[22m[39m
[90mstdout[2m | src/tests/notification-test-api.spec.ts[2m > [22m[2mPOST /api/notifications/test[2m > [22m[2mshould send test success notification
[22m[39m[NotificationTestAPI] Sent test success notification

[90mstdout[2m | src/tests/notification-test-api.spec.ts[2m > [22m[2mPOST /api/notifications/test[2m > [22m[2mshould send test error notification
[22m[39m[NotificationTestAPI] Sent test error notification

[90mstdout[2m | src/tests/notification-test-api.spec.ts[2m > [22m[2mPOST /api/notifications/test[2m > [22m[2mshould send test progress notification
[22m[39m[NotificationTestAPI] Sent test progress notification

[90mstdout[2m | src/tests/notification-test-api.spec.ts[2m > [22m[2mPOST /api/notifications/test[2m > [22m[2mshould return subscriber count in response
[22m[39m[NotificationTestAPI] Sent test success notification

[90mstderr[2m | src/tests/notification-test-api.spec.ts[2m > [22m[2mPOST /api/notifications/test[2m > [22m[2mshould handle sendNotification errors
[22m[39m[NotificationTestAPI] Error sending test notification: Push service error

[90mstdout[2m | src/tests/notification-test-api.spec.ts[2m > [22m[2mPOST /api/notifications/test[2m > [22m[2mshould generate unique itemId for each request
[22m[39m[NotificationTestAPI] Sent test success notification

[90mstdout[2m | src/tests/notification-test-api.spec.ts[2m > [22m[2mPOST /api/notifications/test[2m > [22m[2mshould generate unique itemId for each request
[22m[39m[NotificationTestAPI] Sent test success notification

 [32m✓[39m [30m[42m server [49m[39m src/tests/notification-test-api.spec.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 35[2mms[22m[39m
[90mstdout[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mdetectRecipe should use logError on failure
[22m[39m[LLM] Starting recipe detection...
[LLM] Model: test-model
[LLM] Text length: [33m9[39m

[90mstderr[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mdetectRecipe should use logError on failure
[22m[39m[LLM] Recipe detection error LLM detection error
Stack: Error: LLM detection error
    at /home/moze/Sources/insta-recipe/src/tests/parser-logging.spec.ts:19:41
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at runHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1515:51)
    at callSuiteHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1521:25)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at runTest (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1646:26)
    at runSuite (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1818:8)

[90mstdout[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mparseRecipe should use logError on failure
[22m[39m[LLM] Starting recipe parsing...
[LLM] Model: test-model

[90mstderr[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mparseRecipe should use logError on failure
[22m[39m[LLM] Recipe parsing error LLM parse error
Stack: Error: LLM parse error
    at /home/moze/Sources/insta-recipe/src/tests/parser-logging.spec.ts:25:41
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at runHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1515:51)
    at callSuiteHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1521:25)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at runTest (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1646:26)
    at runSuite (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1818:8)

[90mstdout[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mshould not log stack trace separately
[22m[39m[LLM] Starting recipe detection...
[LLM] Model: test-model
[LLM] Text length: [33m4[39m

[90mstderr[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mshould not log stack trace separately
[22m[39m[LLM] Recipe detection error LLM detection error
Stack: Error: LLM detection error
    at /home/moze/Sources/insta-recipe/src/tests/parser-logging.spec.ts:19:41
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at runHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1515:51)
    at callSuiteHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1521:25)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at runTest (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1646:26)
    at runSuite (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1818:8)

[90mstdout[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mlogs should not contain [object Object]
[22m[39m[LLM] Starting recipe detection...
[LLM] Model: test-model
[LLM] Text length: [33m9[39m

[90mstderr[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mlogs should not contain [object Object]
[22m[39m[LLM] Recipe detection error LLM detection error
Stack: Error: LLM detection error
    at /home/moze/Sources/insta-recipe/src/tests/parser-logging.spec.ts:19:41
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at runHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1515:51)
    at callSuiteHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1521:25)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at runTest (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1646:26)
    at runSuite (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1818:8)

[90mstdout[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mlogs should not contain [object Object]
[22m[39m[LLM] Starting recipe parsing...
[LLM] Model: test-model

[90mstderr[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mlogs should not contain [object Object]
[22m[39m[LLM] Recipe parsing error LLM parse error
Stack: Error: LLM parse error
    at /home/moze/Sources/insta-recipe/src/tests/parser-logging.spec.ts:25:41
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at runHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1515:51)
    at callSuiteHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1521:25)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at runTest (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1646:26)
    at runSuite (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1818:8)

[90mstdout[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mlogError should serialize error properly
[22m[39m[LLM] Starting recipe detection...
[LLM] Model: test-model
[LLM] Text length: [33m4[39m

[90mstderr[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mlogError should serialize error properly
[22m[39m[LLM] Recipe detection error LLM detection error
Stack: Error: LLM detection error
    at /home/moze/Sources/insta-recipe/src/tests/parser-logging.spec.ts:19:41
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at runHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1515:51)
    at callSuiteHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1521:25)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at runTest (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1646:26)
    at runSuite (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1818:8)

[90mstdout[2m | src/tests/queue-sse.spec.ts[2m > [22m[2mQueue SSE Stream Endpoint[2m > [22m[2mGET /api/queue/stream[2m > [22m[2mshould return SSE response with correct headers
[22m[39m[SSE] Stream started

[90mstdout[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mboth detectRecipe and parseRecipe should use logError
[22m[39m[LLM] Starting recipe detection...
[LLM] Model: test-model
[LLM] Text length: [33m9[39m

[90mstderr[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mboth detectRecipe and parseRecipe should use logError
[22m[39m[LLM] Recipe detection error LLM detection error
Stack: Error: LLM detection error
    at /home/moze/Sources/insta-recipe/src/tests/parser-logging.spec.ts:19:41
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at runHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1515:51)
    at callSuiteHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1521:25)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at runTest (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1646:26)
    at runSuite (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1818:8)

[90mstdout[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mboth detectRecipe and parseRecipe should use logError
[22m[39m[LLM] Starting recipe parsing...
[LLM] Model: test-model

[90mstderr[2m | src/tests/parser-logging.spec.ts[2m > [22m[2mparser.ts logging[2m > [22m[2mboth detectRecipe and parseRecipe should use logError
[22m[39m[LLM] Recipe parsing error LLM parse error
Stack: Error: LLM parse error
    at /home/moze/Sources/insta-recipe/src/tests/parser-logging.spec.ts:25:41
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at runHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1515:51)
    at callSuiteHook (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1521:25)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at runTest (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1646:26)
    at runSuite (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1818:8)

[90mstdout[2m | src/tests/queue-sse.spec.ts[2m > [22m[2mQueue SSE Stream Endpoint[2m > [22m[2mGET /api/queue/stream[2m > [22m[2mshould accept valid status filter
[22m[39m[SSE] Stream started

[90mstdout[2m | src/tests/queue-sse.spec.ts[2m > [22m[2mQueue SSE Stream Endpoint[2m > [22m[2mGET /api/queue/stream[2m > [22m[2mshould accept valid item ID filter
[22m[39m[SSE] Stream started

 [32m✓[39m [30m[42m server [49m[39m src/tests/parser-logging.spec.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 17[2mms[22m[39m
[90mstdout[2m | src/tests/queue-sse.spec.ts[2m > [22m[2mQueue SSE Stream Endpoint[2m > [22m[2mGET /api/queue/stream[2m > [22m[2mshould handle stream initialization without errors
[22m[39m[SSE] Stream started

[90mstdout[2m | src/tests/queue-sse.spec.ts[2m > [22m[2mQueue SSE Stream Endpoint[2m > [22m[2mGET /api/queue/stream[2m > [22m[2mshould handle stream initialization without errors
[22m[39m[SSE] Client disconnected (abort signal)
[SSE] Cleaning up stream connection

 [32m✓[39m [30m[42m server [49m[39m src/tests/queue-sse.spec.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 29[2mms[22m[39m
 [32m✓[39m [30m[42m server [49m[39m src/tests/error-handler-logging.spec.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 29[2mms[22m[39m
[90mstdout[2m | src/tests/queue-processor.spec.ts
[22m[39m[QueueProcessor] Started with concurrency 2

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould process item through all phases when Tandoor is configured
[22m[39m[QueueProcessor] New item enqueued: 5b9dcfd2-9323-4dba-a7d4-ecebcef0a9ce, triggering processing

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould process item through all phases when Tandoor is configured
[22m[39m[QueueProcessor] Starting item 5b9dcfd2-9323-4dba-a7d4-ecebcef0a9ce (1/2 active)
[QueueProcessor] Processing https://instagram.com/p/test-tandoor
[QueueProcessor] Extracting: https://instagram.com/p/test-tandoor

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould process item through all phases when Tandoor is configured
[22m[39m[QueueProcessor] ✓ Extraction complete: 5b9dcfd2-9323-4dba-a7d4-ecebcef0a9ce

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould process item through all phases when Tandoor is configured
[22m[39m[QueueProcessor] Parsing recipe: 5b9dcfd2-9323-4dba-a7d4-ecebcef0a9ce

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould process item through all phases when Tandoor is configured
[22m[39m[QueueProcessor] ✓ Parsing complete: 5b9dcfd2-9323-4dba-a7d4-ecebcef0a9ce - Test Recipe

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould process item through all phases when Tandoor is configured
[22m[39m[QueueProcessor] Uploading to Tandoor: 5b9dcfd2-9323-4dba-a7d4-ecebcef0a9ce

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould process item through all phases when Tandoor is configured
[22m[39m[QueueProcessor] ✓ Recipe uploaded: 5b9dcfd2-9323-4dba-a7d4-ecebcef0a9ce → Tandoor #123

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould process item through all phases when Tandoor is configured
[22m[39m[QueueProcessor] ✓ Success: 5b9dcfd2-9323-4dba-a7d4-ecebcef0a9ce
[PushService] No subscriptions, skipping notification

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould process item through all phases when Tandoor is configured
[22m[39m[QueueProcessor] Finished item 5b9dcfd2-9323-4dba-a7d4-ecebcef0a9ce (0/2 active)

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue[2m > [22m[2mshould reject HTTP (non-HTTPS) URLs
[22m[39m[API Error] Instagram URL must use HTTPS protocol
Stack: ValidationError: Instagram URL must use HTTPS protocol
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:50:13)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:127:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue[2m > [22m[2mshould reject invalid Instagram URL formats
[22m[39m[API Error] URL must be from instagram.com domain
Stack: ValidationError: URL must be from instagram.com domain
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:50:13)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:154:28
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue[2m > [22m[2mshould reject invalid Instagram URL formats
[22m[39m[API Error] Invalid URL format
Stack: ValidationError: Invalid URL format
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:50:13)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:154:28
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue[2m > [22m[2mshould reject invalid Instagram URL formats
[22m[39m[API Error] URL must be from instagram.com domain
Stack: ValidationError: URL must be from instagram.com domain
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:50:13)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:154:28
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue[2m > [22m[2mshould reject non-Instagram domains
[22m[39m[API Error] URL must be from instagram.com domain
Stack: ValidationError: URL must be from instagram.com domain
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:50:13)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:187:28
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue[2m > [22m[2mshould reject non-Instagram domains
[22m[39m[API Error] URL must be from instagram.com domain
Stack: ValidationError: URL must be from instagram.com domain
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:50:13)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:187:28
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue[2m > [22m[2mshould reject non-Instagram domains
[22m[39m[API Error] URL must be from instagram.com domain
Stack: ValidationError: URL must be from instagram.com domain
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:50:13)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:187:28
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue[2m > [22m[2mshould reject non-Instagram domains
[22m[39m[API Error] URL must be from instagram.com domain
Stack: ValidationError: URL must be from instagram.com domain
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:50:13)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:187:28
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue[2m > [22m[2mshould reject missing URL
[22m[39m[API Error] URL is required and must be a string
Stack: ValidationError: URL is required and must be a string
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:44:13)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:208:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue[2m > [22m[2mshould reject non-JSON body
[22m[39m[API Error] Invalid JSON in request body
Stack: ValidationError: Invalid JSON in request body
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:32:13)
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:228:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mGET /api/queue[2m > [22m[2mshould validate query parameters
[22m[39m[API Error] Invalid status filter. Must be one of: pending, in_progress, success, unhealthy, error
Stack: ValidationError: Invalid status filter. Must be one of: pending, in_progress, success, unhealthy, error
    at GET (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:114:13)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:321:30
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:37
    at Traces.$ (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
    at trace (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/test.DqQZzsWf.js:234:21)

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mGET /api/queue[2m > [22m[2mshould validate query parameters
[22m[39m[API Error] Limit must be a positive integer
Stack: ValidationError: Limit must be a positive integer
    at GET (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:93:15)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:334:30
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mGET /api/queue[2m > [22m[2mshould validate query parameters
[22m[39m[API Error] Offset must be a non-negative integer
Stack: ValidationError: Offset must be a non-negative integer
    at GET (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:106:15)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:347:30
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mGET /api/queue[2m > [22m[2mshould validate query parameters
[22m[39m[API Error] Limit cannot exceed 200
Stack: ValidationError: Limit cannot exceed 200
    at GET (/home/moze/Sources/insta-recipe/src/routes/api/queue/+server.ts:96:15)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:360:30
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mGET /api/queue/[id][2m > [22m[2mshould return 404 for non-existent ID
[22m[39m[API Error] Queue item not found
Stack: NotFoundError: Queue item not found
    at GET (/home/moze/Sources/insta-recipe/src/routes/api/queue/[id]/+server.ts:40:13)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:390:32
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:37
    at Traces.$ (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
    at trace (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/test.DqQZzsWf.js:234:21)

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mGET /api/queue/[id][2m > [22m[2mshould validate ID format
[22m[39m[API Error] Invalid queue item ID format
Stack: ValidationError: Invalid queue item ID format
    at GET (/home/moze/Sources/insta-recipe/src/routes/api/queue/[id]/+server.ts:33:13)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:404:32
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:37
    at Traces.$ (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
    at trace (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/test.DqQZzsWf.js:234:21)

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue/[id]/retry[2m > [22m[2mshould reject retry for non-retryable statuses
[22m[39m[API Error] Cannot retry item with status 'pending'. Only 'error' and 'unhealthy' items can be retried.
Stack: ConflictError: Cannot retry item with status 'pending'. Only 'error' and 'unhealthy' items can be retried.
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/[id]/retry/+server.ts:46:13)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:482:32
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:37
    at Traces.$ (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
    at trace (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/test.DqQZzsWf.js:234:21)

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mPOST /api/queue/[id]/retry[2m > [22m[2mshould return 404 for non-existent item
[22m[39m[API Error] Queue item not found
Stack: NotFoundError: Queue item not found
    at POST (/home/moze/Sources/insta-recipe/src/routes/api/queue/[id]/retry/+server.ts:41:13)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:502:32
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:37
    at Traces.$ (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
    at trace (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/test.DqQZzsWf.js:234:21)

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mDELETE /api/queue/[id][2m > [22m[2mshould return 404 for non-existent item
[22m[39m[API Error] Queue item not found
Stack: NotFoundError: Queue item not found
    at DELETE (/home/moze/Sources/insta-recipe/src/routes/api/queue/[id]/+server.ts:76:13)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:549:32
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:37
    at Traces.$ (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
    at trace (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/test.DqQZzsWf.js:234:21)

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mDELETE /api/queue/[id][2m > [22m[2mshould return 409 for in-progress items
[22m[39m[API Error] Cannot delete item that is currently being processed
Stack: ConflictError: Cannot delete item that is currently being processed
    at DELETE (/home/moze/Sources/insta-recipe/src/routes/api/queue/[id]/+server.ts:81:13)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:572:32
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:37
    at Traces.$ (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
    at trace (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/test.DqQZzsWf.js:234:21)

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mDELETE /api/queue/[id][2m > [22m[2mshould validate ID format
[22m[39m[API Error] Invalid queue item ID format
Stack: ValidationError: Invalid queue item ID format
    at DELETE (/home/moze/Sources/insta-recipe/src/routes/api/queue/[id]/+server.ts:70:13)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:597:34
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:145:11
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:26
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1244:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1210:10)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:1654:37
    at Traces.$ (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/traces.U4xDYhzZ.js:115:27)
    at trace (file:///home/moze/Sources/insta-recipe/node_modules/vitest/dist/chunks/test.DqQZzsWf.js:234:21)

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mDELETE /api/queue/[id][2m > [22m[2mshould validate ID format
[22m[39m[API Error] Invalid queue item ID format
Stack: ValidationError: Invalid queue item ID format
    at DELETE (/home/moze/Sources/insta-recipe/src/routes/api/queue/[id]/+server.ts:70:13)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:597:34
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

[90mstderr[2m | src/tests/queue-api.spec.ts[2m > [22m[2mQueue API Endpoints[2m > [22m[2mDELETE /api/queue/[id][2m > [22m[2mshould validate ID format
[22m[39m[API Error] Invalid queue item ID format
Stack: ValidationError: Invalid queue item ID format
    at DELETE (/home/moze/Sources/insta-recipe/src/routes/api/queue/[id]/+server.ts:70:13)
    at /home/moze/Sources/insta-recipe/src/tests/queue-api.spec.ts:597:34
    at processTicksAndRejections (node:internal/process/task_queues:103:5)
    at file:///home/moze/Sources/insta-recipe/node_modules/@vitest/runner/dist/index.js:919:20

 [32m✓[39m [30m[42m server [49m[39m src/tests/queue-api.spec.ts [2m([22m[2m26 tests[22m[2m)[22m[32m 57[2mms[22m[39m
 [31m❯[39m [30m[42m server [49m[39m src/tests/queue-processor-logging.spec.ts [2m([22m[2m4 tests[22m[2m | [22m[31m4 failed[39m[2m)[22m[32m 6[2mms[22m[39m
[31m     [31m×[31m should use logError for processing errors[39m[32m 4[2mms[22m[39m
[31m     [31m×[31m should use logError for push notification failures[39m[32m 1[2mms[22m[39m
[31m     [31m×[31m error logs should be properly serialized (no [object Object])[39m[32m 0[2mms[22m[39m
[31m     [31m×[31m should distinguish between recoverable and non-recoverable errors[39m[32m 0[2mms[22m[39m
[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould skip Tandoor upload when not configured
[22m[39m[QueueProcessor] New item enqueued: a36691d9-5b93-44cd-bd1a-dbccce51beb0, triggering processing

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould skip Tandoor upload when not configured
[22m[39m[QueueProcessor] Starting item a36691d9-5b93-44cd-bd1a-dbccce51beb0 (1/2 active)
[QueueProcessor] Processing https://instagram.com/p/no-tandoor
[QueueProcessor] Extracting: https://instagram.com/p/no-tandoor

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould skip Tandoor upload when not configured
[22m[39m[QueueProcessor] ✓ Extraction complete: a36691d9-5b93-44cd-bd1a-dbccce51beb0

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould skip Tandoor upload when not configured
[22m[39m[QueueProcessor] Parsing recipe: a36691d9-5b93-44cd-bd1a-dbccce51beb0

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould skip Tandoor upload when not configured
[22m[39m[QueueProcessor] ✓ Parsing complete: a36691d9-5b93-44cd-bd1a-dbccce51beb0 - No Tandoor Recipe

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould skip Tandoor upload when not configured
[22m[39m[QueueProcessor] Tandoor not configured, skipping: a36691d9-5b93-44cd-bd1a-dbccce51beb0

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould skip Tandoor upload when not configured
[22m[39m[QueueProcessor] ✓ Success: a36691d9-5b93-44cd-bd1a-dbccce51beb0
[PushService] No subscriptions, skipping notification

[90mstdout[2m | src/tests/queue-processor.spec.ts[2m > [22m[2mQueueProcessor Integration Tests[2m > [22m[2mshould skip Tandoor upload when not configured
[22m[39m[QueueProcessor] Finished item a36691d9-5b93-44cd-bd1a-dbccce51beb0 (0/2 active)

 [32m✓[39m [30m[43m client (chromium) [49m[39m src/routes/page.svelte.spec.ts [2m([22m[2m1 test[22m[2m)[22m[32m 19[2mms[22m[39m
