[1A[2K[2m[WebServer] [22m
[2m[WebServer] [22m> chore-app-frontend@0.0.0 dev
[2m[WebServer] [22m> vite
[2m[WebServer] [22m

[1A[2K[2m[WebServer] [22m
[2m[WebServer] [22m  [32m[1mVITE[22m v7.2.2[39m  [2mready in [0m[1m3718[22m[2m[0m ms[22m
[2m[WebServer] [22m

[1A[2K[2m[WebServer] [22m  [32mΓ₧£[39m  [1mLocal[22m:   [36mhttps://localhost:[1m5173[22m/[39m
[2m[WebServer] [22m  [32mΓ₧£[39m  [1mNetwork[22m: [36mhttps://100.91.0.87:[1m5173[22m/[39m

[1A[2K[2m[WebServer] [22m  [32mΓ₧£[39m  [1mNetwork[22m: [36mhttps://192.168.1.102:[1m5173[22m/[39m
[2m[WebServer] [22m  [32mΓ₧£[39m  [1mNetwork[22m: [36mhttps://192.168.17.1:[1m5173[22m/[39m
[2m[WebServer] [22m  [32mΓ₧£[39m  [1mNetwork[22m: [36mhttps://192.168.44.1:[1m5173[22m/[39m

[1A[2K[2m[WebServer] [22mPlatform: win32 


[1A[2K[WebServer] INFO:config.deletion_config:Account deletion threshold: 720 hours
[1A[2K[2m[WebServer] [22m2026-04-12 10:24:51 - db.default - INFO - Initializing images. Ensuring directory exists: D:\Python Utilities\Reward\backend\test_data\images\default


[1A[2K[WebServer] 2026-04-12 10:24:51,693 - account_deletion_scheduler - INFO - Starting account deletion scheduler
[1A[2K[2m[WebServer] [22m2026-04-12 10:24:51 - account_deletion_scheduler - INFO - Starting account deletion scheduler
[2m[WebServer] [22m2026-04-12 10:24:51 - account_deletion_scheduler - INFO - Checking for interrupted deletions from previous runs

[1A[2K[WebServer] 2026-04-12 10:24:51,693 - account_deletion_scheduler - INFO - Checking for interrupted deletions from previous runs

[1A[2K[2m[WebServer] [22m2026-04-12 10:24:51 - apscheduler.scheduler - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts

[1A[2K[2m[WebServer] [22m2026-04-12 10:24:51 - apscheduler.scheduler - INFO - Added job "Account Deletion Scheduler" to job store "default"

[1A[2K[2m[WebServer] [22m2026-04-12 10:24:51 - apscheduler.scheduler - INFO - Scheduler started


[1A[2K[WebServer] 2026-04-12 10:24:51,706 - account_deletion_scheduler - INFO - Account deletion scheduler started (runs every 1 hour)
[1A[2K[2m[WebServer] [22m2026-04-12 10:24:51 - account_deletion_scheduler - INFO - Account deletion scheduler started (runs every 1 hour)

[1A[2K[2m[WebServer] [22m * Serving Flask app 'main.py'

[1A[2K[2m[WebServer] [22m * Debug mode: on


Running 19 tests using 6 workers

[1A[2K[1/19] [setup] ΓÇ║ e2e\auth.setup.ts:4:1 ΓÇ║ authenticate
[1A[2K[2m[WebServer] [22m2026-04-12 10:24:54 - db.default - INFO - Initializing images. Ensuring directory exists: D:\Python Utilities\Reward\backend\test_data\images\default

[1A[2K[2/19] [chromium-task-modification] ΓÇ║ e2e\mode_parent\task-modification\scroll-to-edited-task.spec.ts:105:3 ΓÇ║ Scroll to edited task after save ΓÇ║ Edited chore card scrolls into viewport after override save
[1A[2K[3/19] [chromium-tasks-rewards] ΓÇ║ e2e\mode_parent\tasks\penalty-cancel.spec.ts:32:3 ΓÇ║ Penalty creation/edit cancellation ΓÇ║ Cancel penalty edit
[1A[2K[4/19] [chromium-user-profile-pin] ΓÇ║ e2e\mode_parent\user-profile\change-pin.spec.ts:26:3 ΓÇ║ User Profile ΓÇô Change Parent PIN ΓÇ║ Change Parent PIN link navigates to PIN setup page
[1A[2K[5/19] [chromium-tasks-rewards] ΓÇ║ e2e\mode_parent\tasks\penalty-cancel.spec.ts:11:3 ΓÇ║ Penalty creation/edit cancellation ΓÇ║ Cancel penalty creation
[1A[2K[6/19] [chromium-tasks-rewards] ΓÇ║ e2e\mode_parent\notifications\notification-click-scroll.spec.ts:125:3 ΓÇ║ Notification click navigates and scrolls to task ΓÇ║ Clicking a chore notification navigates and scrolls to the chore card
[1A[2K[7/19] [chromium-tasks-rewards] ΓÇ║ e2e\mode_parent\task-sorting\child-sort-order.spec.ts:179:3 ΓÇ║ Child mode sort order ΓÇ║ Child chore sort: scheduled today (earliest deadline) ΓåÆ general ΓåÆ pending
[1A[2K[8/19] [chromium-user-profile-pin] ΓÇ║ e2e\mode_parent\user-profile\change-pin.spec.ts:35:3 ΓÇ║ User Profile ΓÇô Change Parent PIN ΓÇ║ Back from PIN setup page returns to profile
[1A[2K[9/19] [chromium-user-profile-pin] ΓÇ║ e2e\mode_parent\user-profile\change-pin.spec.ts:46:3 ΓÇ║ User Profile ΓÇô Change Parent PIN ΓÇ║ Send Verification Code advances to step 2
[1A[2K[10/19] [chromium-user-profile-pin] ΓÇ║ e2e\mode_parent\user-profile\change-pin.spec.ts:60:3 ΓÇ║ User Profile ΓÇô Change Parent PIN ΓÇ║ Resend Code button appears after delay
[1A[2K[2m[WebServer] [22m2026-04-12 10:25:08 - db.tracking - INFO - Tracking event created: confirmed chore eafea3ca-72e9-4286-b70c-9b205be8fe4f for child e55f3361-b7ef-4e2d-9318-86d8887702f6

[1A[2K[2m[WebServer] [22m2026-04-12 10:25:09 - api.child_api - INFO - Child ChildSortChild has 50 points, reward CSortRewardPending costs 10 points

[1A[2K[2m[WebServer] [22m2026-04-12 10:25:09 - api.child_api - INFO - Pending reward request created for child ChildSortChild for reward CSortRewardPending

[1A[2K[2m[WebServer] [22m2026-04-12 10:25:09 - db.tracking - INFO - Tracking event created: requested reward dc7c5584-e425-4d21-ad53-5b0eb30597fb for child e55f3361-b7ef-4e2d-9318-86d8887702f6

[1A[2K[11/19] [chromium-tasks-rewards] ΓÇ║ e2e\mode_parent\task-sorting\child-sort-order.spec.ts:214:3 ΓÇ║ Child mode sort order ΓÇ║ Child reward sort: pending first, then ascending by points needed
[1A[2K[2m[WebServer] [22m2026-04-12 10:25:10 - db.tracking - INFO - Tracking event created: confirmed chore 1bcb0b2b-c1b9-4d48-b795-cd5b91f5ea2d for child a4bfda72-f28b-4da8-a0b9-7868fa78febd

[1A[2K[2m[WebServer] [22m2026-04-12 10:25:11 - api.child_api - INFO - Child NotifScrollChild has 50 points, reward NotifScrollReward costs 10 points

[1A[2K[2m[WebServer] [22m2026-04-12 10:25:11 - api.child_api - INFO - Pending reward request created for child NotifScrollChild for reward NotifScrollReward

[1A[2K[2m[WebServer] [22m2026-04-12 10:25:11 - db.tracking - INFO - Tracking event created: requested reward ab631c51-d8bc-43f5-9fa9-5deeb0182351 for child a4bfda72-f28b-4da8-a0b9-7868fa78febd

[1A[2K[12/19] [chromium-user-profile-pin] ΓÇ║ e2e\mode_parent\user-profile\change-pin.spec.ts:70:3 ΓÇ║ User Profile ΓÇô Change Parent PIN ΓÇ║ Invalid code shows error
[1A[2K[13/19] [chromium-user-profile-pin] ΓÇ║ e2e\mode_parent\user-profile\change-pin.spec.ts:81:3 ΓÇ║ User Profile ΓÇô Change Parent PIN ΓÇ║ Valid code advances to step 3 (Create PIN)
[1A[2K[14/19] [chromium-tasks-rewards] ΓÇ║ e2e\mode_parent\notifications\notification-click-scroll.spec.ts:149:3 ΓÇ║ Notification click navigates and scrolls to task ΓÇ║ Clicking a reward notification scrolls reward card into viewport
[1A[2K[15/19] [chromium-user-profile-pin] ΓÇ║ e2e\mode_parent\user-profile\change-pin.spec.ts:99:3 ΓÇ║ User Profile ΓÇô Change Parent PIN ΓÇ║ Set PIN disabled when PINs do not match
[1A[2K[16/19] [chromium-user-profile-pin] ΓÇ║ e2e\mode_parent\user-profile\change-pin.spec.ts:116:3 ΓÇ║ User Profile ΓÇô Change Parent PIN ΓÇ║ Set PIN disabled for fewer than 4 digits
[1A[2K[17/19] [chromium-user-profile-pin] ΓÇ║ e2e\mode_parent\user-profile\change-pin.spec.ts:133:3 ΓÇ║ User Profile ΓÇô Change Parent PIN ΓÇ║ Set PIN succeeds with matching 4-digit PIN ΓÇô shows success step
[1A[2K[18/19] [chromium-user-profile-pin] ΓÇ║ e2e\mode_parent\user-profile\change-pin.spec.ts:156:3 ΓÇ║ User Profile ΓÇô Change Parent PIN ΓÇ║ Back from success step exits parent mode and goes to child selector
[1A[2K[2m[WebServer] [22m2026-04-12 10:25:18 - db.child_overrides - INFO - Override created: child=8c6a8c65-f46c-4012-9d59-643dd09a28de, entity=179fda1f-2b7f-4c1d-82ce-ed152718b628, value=99

[1A[2K[19/19] [chromium-task-modification] ΓÇ║ e2e\mode_parent\task-modification\scroll-to-edited-task.spec.ts:135:3 ΓÇ║ Scroll to edited task after save ΓÇ║ Edited reward card scrolls into viewport after override save
[1A[2K[2m[WebServer] [22m2026-04-12 10:25:19 - db.child_overrides - INFO - Override created: child=8c6a8c65-f46c-4012-9d59-643dd09a28de, entity=229028d2-efa7-49b5-a8f4-cd450ec40526, value=77

[1A[2K[2m[WebServer] [22m2026-04-12 10:25:19 - db.child_overrides - INFO - Overrides cascade deleted for child: child_id=8c6a8c65-f46c-4012-9d59-643dd09a28de, count=2

[1A[2K[2m[WebServer] [22m2026-04-12 10:25:19 - api.child_api - INFO - Cascade deleted 2 overrides for child 8c6a8c65-f46c-4012-9d59-643dd09a28de

[1A[2K  1) [chromium-task-modification] ΓÇ║ e2e\mode_parent\task-modification\scroll-to-edited-task.spec.ts:135:3 ΓÇ║ Scroll to edited task after save ΓÇ║ Edited reward card scrolls into viewport after override save 

    Error: [2mexpect([22m[31mreceived[39m[2m).[22mtoBe[2m([22m[32mexpected[39m[2m) // Object.is equality[22m

    Expected: [32mtrue[39m
    Received: [31mfalse[39m

      159 |     // After SSE override event ΓåÆ list refreshes ΓåÆ card scrolls into view
      160 |     await expect(targetCard).toBeVisible({ timeout: 5000 })
    > 161 |     expect(await isInViewport(targetCard)).toBe(true)
          |                                            ^
      162 |   })
      163 | })
      164 |
        at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\task-modification\scroll-to-edited-task.spec.ts:161:44

    Error Context: test-results\mode_parent-task-modificat-7e620-iewport-after-override-save-chromium-task-modification\error-context.md


[1A[2K  1 failed
    [chromium-task-modification] ΓÇ║ e2e\mode_parent\task-modification\scroll-to-edited-task.spec.ts:135:3 ΓÇ║ Scroll to edited task after save ΓÇ║ Edited reward card scrolls into viewport after override save 
  18 passed (41.1s)
