Add initial test results file with failed status
All checks were successful
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 2m56s

This commit is contained in:
2026-04-12 12:32:16 -04:00
parent bb7c4c469c
commit 759a1c745e
10 changed files with 700 additions and 21 deletions

View File

@@ -2,7 +2,7 @@
# file: config/version.py # file: config/version.py
import os import os
BASE_VERSION = "1.0.8" # update manually when releasing features BASE_VERSION = "1.0.9" # update manually when releasing features
def get_full_version() -> str: def get_full_version() -> str:
""" """

View File

@@ -0,0 +1,4 @@
{
"status": "failed",
"failedTests": []
}

View File

@@ -2,20 +2,20 @@
"cookies": [ "cookies": [
{ {
"name": "refresh_token", "name": "refresh_token",
"value": "pjakYk7dm_bGf-VXaBpRXFNNq08FH0csnh3nBhCqWGw", "value": "jvA7pfHaKU5t0mzLmz2tEsWpCPk92LNv8TiBbPqQPr4",
"domain": "localhost", "domain": "localhost",
"path": "/api/auth", "path": "/api/auth",
"expires": 1783633314.818346, "expires": 1783780502.776691,
"httpOnly": true, "httpOnly": true,
"secure": true, "secure": true,
"sameSite": "Strict" "sameSite": "Strict"
}, },
{ {
"name": "access_token", "name": "access_token",
"value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZS1jY0B0ZXN0LmNvbSIsInVzZXJfaWQiOiI3NWQ3NGU4OC1jMjY0LTQ3MGMtOThiNC02ZTQ0YTBkYzkyOTMiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzU4NTgyMTR9.lXWnj-O3MszrJ_GIwp6ViN0W5-5XEpSDVlAQIQSll-Q", "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZS1jY0B0ZXN0LmNvbSIsInVzZXJfaWQiOiI1YTI0NTY3Ny00YzRiLTRmMWUtODVjZi0zOWVkZmEwMjIwNjQiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzYwMDU0MDJ9.qPwnX1ZvCqaeuKblbD4y5CSNFfwDVSuR0ow_Eks2-DA",
"domain": "localhost", "domain": "localhost",
"path": "/", "path": "/",
"expires": 1775858214.818293, "expires": 1776005402.775975,
"httpOnly": true, "httpOnly": true,
"secure": true, "secure": true,
"sameSite": "Lax" "sameSite": "Lax"
@@ -27,11 +27,11 @@
"localStorage": [ "localStorage": [
{ {
"name": "authSyncEvent", "name": "authSyncEvent",
"value": "{\"type\":\"logout\",\"at\":1775857314645}" "value": "{\"type\":\"logout\",\"at\":1776004502483}"
}, },
{ {
"name": "parentAuth", "name": "parentAuth",
"value": "{\"expiresAt\":1776030114975}" "value": "{\"expiresAt\":1776177303116}"
} }
] ]
} }

View File

@@ -2,20 +2,20 @@
"cookies": [ "cookies": [
{ {
"name": "refresh_token", "name": "refresh_token",
"value": "sTFHvjZ5hJxJrlNHoxdWkNJ6vxdDzrZwTRFz55JxWKs", "value": "4eQQgcHp1arsl2u0kVDy5k19v75GcVFjYMGYNjSt9sE",
"domain": "localhost", "domain": "localhost",
"path": "/api/auth", "path": "/api/auth",
"expires": 1783633314.820088, "expires": 1783780502.644833,
"httpOnly": true, "httpOnly": true,
"secure": true, "secure": true,
"sameSite": "Strict" "sameSite": "Strict"
}, },
{ {
"name": "access_token", "name": "access_token",
"value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZS1kZWxldGVAdGVzdC5jb20iLCJ1c2VyX2lkIjoiY2U4MmI2MzMtMDUwMy00MmMxLWFlNjMtZmEzNzcxMmMxODZiIiwidG9rZW5fdmVyc2lvbiI6MCwiZXhwIjoxNzc1ODU4MjE0fQ.meuVUYIk9NFuo66KDhLPZHoXgHRLWmRDGyR23doTLIw", "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZS1kZWxldGVAdGVzdC5jb20iLCJ1c2VyX2lkIjoiZjNjZDUyOWMtZjFiNy00ZDNhLTlhNDYtMzAyYzg4YWQzNmUzIiwidG9rZW5fdmVyc2lvbiI6MCwiZXhwIjoxNzc2MDA1NDAyfQ.Y5NLYXHVRwNd4h5K1VwY9TrzaS-caMyaEey5xd4t5-0",
"domain": "localhost", "domain": "localhost",
"path": "/", "path": "/",
"expires": 1775858214.820046, "expires": 1776005402.6442,
"httpOnly": true, "httpOnly": true,
"secure": true, "secure": true,
"sameSite": "Lax" "sameSite": "Lax"
@@ -27,11 +27,11 @@
"localStorage": [ "localStorage": [
{ {
"name": "authSyncEvent", "name": "authSyncEvent",
"value": "{\"type\":\"logout\",\"at\":1775857314657}" "value": "{\"type\":\"logout\",\"at\":1776004502341}"
}, },
{ {
"name": "parentAuth", "name": "parentAuth",
"value": "{\"expiresAt\":1776030114992}" "value": "{\"expiresAt\":1776177303038}"
} }
] ]
} }

View File

@@ -2,20 +2,20 @@
"cookies": [ "cookies": [
{ {
"name": "refresh_token", "name": "refresh_token",
"value": "nbOCYWuMXIGNyjN2uc6uohUFqkl-Bv1d01YjAOirGi8", "value": "ZV9WVFXOwIOdnTD5Xw3hSQAUmfpNdmVtDPpwz6IhCjc",
"domain": "localhost", "domain": "localhost",
"path": "/api/auth", "path": "/api/auth",
"expires": 1783633312.982067, "expires": 1783780499.040639,
"httpOnly": true, "httpOnly": true,
"secure": true, "secure": true,
"sameSite": "Strict" "sameSite": "Strict"
}, },
{ {
"name": "access_token", "name": "access_token",
"value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZUB0ZXN0LmNvbSIsInVzZXJfaWQiOiJlNjM1MjRiOS03NmIzLTRiMmQtODc1Ni05ZmNkNTk0MDRhYTkiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzU4NTgyMTJ9.ztnqGJFbFDSze0GvK-2G37v5HaDdWRK392T7vsUpnhw", "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZUB0ZXN0LmNvbSIsInVzZXJfaWQiOiJiOTQxMDVkZS1hNmIyLTQxMGEtODA1YS00YzhkYjc2NGU0ZWIiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzYwMDUzOTl9.XFDt0AnIgliNVOJOfNubRJgu1RI-LA2i95cfCwn6QEk",
"domain": "localhost", "domain": "localhost",
"path": "/", "path": "/",
"expires": 1775858212.982022, "expires": 1776005399.040139,
"httpOnly": true, "httpOnly": true,
"secure": true, "secure": true,
"sameSite": "Lax" "sameSite": "Lax"
@@ -27,11 +27,11 @@
"localStorage": [ "localStorage": [
{ {
"name": "authSyncEvent", "name": "authSyncEvent",
"value": "{\"type\":\"logout\",\"at\":1775857312837}" "value": "{\"type\":\"logout\",\"at\":1776004498844}"
}, },
{ {
"name": "parentAuth", "name": "parentAuth",
"value": "{\"expiresAt\":1776030113109}" "value": "{\"expiresAt\":1776177299216}"
} }
] ]
} }

View File

@@ -128,8 +128,9 @@ test.describe('Scroll to edited task after save', () => {
await page.getByRole('button', { name: 'Save' }).click() await page.getByRole('button', { name: 'Save' }).click()
// After SSE override event → list refreshes → card scrolls into view // After SSE override event → list refreshes → card scrolls into view
// Use expect.poll to retry, allowing scroll animation to complete
await expect(targetCard).toBeVisible({ timeout: 5000 }) await expect(targetCard).toBeVisible({ timeout: 5000 })
expect(await isInViewport(targetCard)).toBe(true) await expect.poll(() => isInViewport(targetCard), { timeout: 3000 }).toBe(true)
}) })
test('Edited reward card scrolls into viewport after override save', async ({ page }) => { test('Edited reward card scrolls into viewport after override save', async ({ page }) => {
@@ -157,7 +158,8 @@ test.describe('Scroll to edited task after save', () => {
await page.getByRole('button', { name: 'Save' }).click() await page.getByRole('button', { name: 'Save' }).click()
// After SSE override event → list refreshes → card scrolls into view // After SSE override event → list refreshes → card scrolls into view
// Use expect.poll to retry, allowing scroll animation to complete
await expect(targetCard).toBeVisible({ timeout: 5000 }) await expect(targetCard).toBeVisible({ timeout: 5000 })
expect(await isInViewport(targetCard)).toBe(true) await expect.poll(() => isInViewport(targetCard), { timeout: 3000 }).toBe(true)
}) })
}) })

View File

View File

@@ -0,0 +1,113 @@
[WebServer] 
[WebServer] > chore-app-frontend@0.0.0 dev
[WebServer] > vite
[WebServer] 
[WebServer] 
[WebServer]  VITE v7.2.2 ready in 3718 ms
[WebServer] 
[WebServer]  Γ₧£ Local: https://localhost:5173/
[WebServer]  Γ₧£ Network: https://100.91.0.87:5173/
[WebServer]  Γ₧£ Network: https://192.168.1.102:5173/
[WebServer]  Γ₧£ Network: https://192.168.17.1:5173/
[WebServer]  Γ₧£ Network: https://192.168.44.1:5173/
[WebServer] Platform: win32
[WebServer] INFO:config.deletion_config:Account deletion threshold: 720 hours
[WebServer] 2026-04-12 10:24:51 - db.default - INFO - Initializing images. Ensuring directory exists: D:\Python Utilities\Reward\backend\test_data\images\default
[WebServer] 2026-04-12 10:24:51,693 - account_deletion_scheduler - INFO - Starting account deletion scheduler
[WebServer] 2026-04-12 10:24:51 - account_deletion_scheduler - INFO - Starting account deletion scheduler
[WebServer] 2026-04-12 10:24:51 - account_deletion_scheduler - INFO - Checking for interrupted deletions from previous runs
[WebServer] 2026-04-12 10:24:51,693 - account_deletion_scheduler - INFO - Checking for interrupted deletions from previous runs
[WebServer] 2026-04-12 10:24:51 - apscheduler.scheduler - INFO - Adding job tentatively -- it will be properly scheduled when the scheduler starts
[WebServer] 2026-04-12 10:24:51 - apscheduler.scheduler - INFO - Added job "Account Deletion Scheduler" to job store "default"
[WebServer] 2026-04-12 10:24:51 - apscheduler.scheduler - INFO - Scheduler started
[WebServer] 2026-04-12 10:24:51,706 - account_deletion_scheduler - INFO - Account deletion scheduler started (runs every 1 hour)
[WebServer] 2026-04-12 10:24:51 - account_deletion_scheduler - INFO - Account deletion scheduler started (runs every 1 hour)
[WebServer]  * Serving Flask app 'main.py'
[WebServer]  * Debug mode: on
Running 19 tests using 6 workers
[1/19] [setup] › e2e\auth.setup.ts:4:1 › authenticate
[WebServer] 2026-04-12 10:24:54 - db.default - INFO - Initializing images. Ensuring directory exists: D:\Python Utilities\Reward\backend\test_data\images\default
[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
[3/19] [chromium-tasks-rewards] › e2e\mode_parent\tasks\penalty-cancel.spec.ts:32:3 › Penalty creation/edit cancellation › Cancel penalty edit
[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
[5/19] [chromium-tasks-rewards] › e2e\mode_parent\tasks\penalty-cancel.spec.ts:11:3 › Penalty creation/edit cancellation › Cancel penalty creation
[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
[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
[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
[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
[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
[WebServer] 2026-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
[WebServer] 2026-04-12 10:25:09 - api.child_api - INFO - Child ChildSortChild has 50 points, reward CSortRewardPending costs 10 points
[WebServer] 2026-04-12 10:25:09 - api.child_api - INFO - Pending reward request created for child ChildSortChild for reward CSortRewardPending
[WebServer] 2026-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
[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
[WebServer] 2026-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
[WebServer] 2026-04-12 10:25:11 - api.child_api - INFO - Child NotifScrollChild has 50 points, reward NotifScrollReward costs 10 points
[WebServer] 2026-04-12 10:25:11 - api.child_api - INFO - Pending reward request created for child NotifScrollChild for reward NotifScrollReward
[WebServer] 2026-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
[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
[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)
[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
[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
[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
[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
[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
[WebServer] 2026-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
[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
[WebServer] 2026-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
[WebServer] 2026-04-12 10:25:19 - db.child_overrides - INFO - Overrides cascade deleted for child: child_id=8c6a8c65-f46c-4012-9d59-643dd09a28de, count=2
[WebServer] 2026-04-12 10:25:19 - api.child_api - INFO - Cascade deleted 2 overrides for child 8c6a8c65-f46c-4012-9d59-643dd09a28de
 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: expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
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
 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)

View File

@@ -0,0 +1,556 @@
Running 287 tests using 6 workers
[1/287] [setup-no-pin] › e2e\auth-no-pin.setup.ts:11:7 › authenticate without parent pin
[2/287] [setup] › e2e\auth.setup.ts:4:1 › authenticate
[3/287] [chromium-child-options] › e2e\mode_parent\child-options\delete-child.spec.ts:23:3 › Child kebab menu – Delete Child › Confirm deletes the child from the list
[4/287] [setup-cc] › e2e\auth-cc.setup.ts:6:1 › authenticate create-child isolated user
[5/287] [setup-delete] › e2e\auth-delete.setup.ts:11:1 › authenticate delete user
[6/287] [chromium-child-options] › e2e\mode_parent\child-options\edit-child.spec.ts:24:3 › Child kebab menu – Edit Child › Edit Child menu item navigates to the child editor
[7/287] [chromium-default-tasks] › e2e\mode_parent\tasks\chore-convert-default.spec.ts:6:1 › Convert a default chore to a user item by editing
[8/287] [chromium-child-options] › e2e\mode_parent\child-options\delete-points.spec.ts:25:3 › Child kebab menu – Delete Points › Delete Points resets child points to 0
[9/287] [chromium-default-tasks] › e2e\mode_parent\tasks\chore-delete-default.spec.ts:6:1 › Edit default chore "Take out trash" and verify system chore restoration on delete
[10/287] [chromium-child-options] › e2e\mode_parent\child-options\delete-child.spec.ts:39:3 › Child kebab menu – Delete Child › Cancel does not delete the child
[11/287] [chromium-default-tasks] › e2e\mode_parent\tasks\penalty-default.spec.ts:28:3 › Default penalty management › Convert a default penalty to a user item by editing
[12/287] [chromium-default-tasks] › e2e\mode_parent\tasks\kindness-default.spec.ts:31:3 › Default kindness act management › Convert a default kindness act to a user item by editing
[13/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\assign-title-shows-child-name.spec.ts:28:3 › Assign view heading shows child name › "Assign Chores" heading contains child name
[14/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\assign-title-shows-child-name.spec.ts:35:3 › Assign view heading shows child name › "Assign Rewards" heading contains child name
[15/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\assign-title-shows-child-name.spec.ts:42:3 › Assign view heading shows child name › "Assign Kindness Acts" heading contains child name
[16/287] [chromium-default-tasks] › e2e\mode_parent\tasks\kindness-default.spec.ts:63:3 › Default kindness act management › Edit default kindness act "Be good for the day" and verify system act restoration on delete
[17/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\assign-title-shows-child-name.spec.ts:49:3 › Assign view heading shows child name › "Assign Penalties" heading contains child name
[18/287] [chromium-default-tasks] › e2e\mode_parent\tasks\penalty-default.spec.ts:65:3 › Default penalty management › Edit default penalty "Fighting" and verify system penalty restoration on delete
[19/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\chore-assignment.spec.ts:64:3 › Chore assignment › "Assign Chores" button navigates to the chore assign view
[20/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\kindness-assignment.spec.ts:54:3 › Kindness act assignment › "Assign Kindness Acts" button navigates to the kindness assign view
[21/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\penalty-assignment.spec.ts:64:3 › Penalty assignment › "Assign Penalties" button navigates to the penalty assign view
[22/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\reward-assignment.spec.ts:60:3 › Reward assignment › "Assign Rewards" button navigates to the reward assign view
[23/287] [chromium-task-activation] › e2e\mode_parent\task-activation\chore-activation.spec.ts:94:3 › Chore activation › Kebab button appears after first chore click
[24/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\kindness-assignment.spec.ts:72:3 › Kindness act assignment › Select a kindness act and submit — item appears in ParentView
[25/287] [chromium-task-activation] › e2e\mode_parent\task-activation\general-chore-no-completed.spec.ts:85:3 › General chore — no COMPLETED stamp › Approving a general chore awards points
[26/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\chore-assignment.spec.ts:83:3 › Chore assignment › Select chores and submit — items appear in ParentView chores section
[27/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\kindness-assignment.spec.ts:90:3 › Kindness act assignment › Re-opening assign view shows the assigned item as pre-checked
[28/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\penalty-assignment.spec.ts:83:3 › Penalty assignment › Select penalties and submit — items appear in ParentView penalties section
[29/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\kindness-assignment.spec.ts:99:3 › Kindness act assignment › Uncheck the kindness act and submit — item is removed from ParentView
[30/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\chore-assignment.spec.ts:108:3 › Chore assignment › Re-opening assign view shows assigned items as pre-checked
[31/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\chore-assignment.spec.ts:126:3 › Chore assignment › Uncheck all chores and submit — items are removed from ParentView
[32/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\penalty-assignment.spec.ts:110:3 › Penalty assignment › Re-opening assign view shows assigned penalties as pre-checked
[33/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\kindness-assignment.spec.ts:120:3 › Kindness act assignment › Cancel does not persist selection changes
[34/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\penalty-assignment.spec.ts:128:3 › Penalty assignment › Uncheck all penalties and submit — items are removed from ParentView
[35/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\reward-assignment.spec.ts:79:3 › Reward assignment › Select rewards and submit — items appear in ParentView rewards section
[36/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\chore-assignment.spec.ts:151:3 › Chore assignment › Cancel does not persist selection changes
[37/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\penalty-assignment.spec.ts:153:3 › Penalty assignment › Cancel does not persist selection changes
[38/287] [chromium-task-activation] › e2e\mode_parent\task-activation\chore-activation.spec.ts:108:3 › Chore activation › Kebab button disappears when clicking a non-chore item
[39/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\reward-assignment.spec.ts:106:3 › Reward assignment › Re-opening assign view shows assigned rewards as pre-checked
[40/287] [chromium-task-activation] › e2e\mode_parent\task-activation\chore-activation.spec.ts:125:3 › Chore activation › Cancel chore confirmation — no points awarded
[41/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\reward-assignment.spec.ts:124:3 › Reward assignment › Uncheck all rewards and submit — items are removed from ParentView
[42/287] [chromium-task-activation] › e2e\mode_parent\task-activation\general-chore-no-completed.spec.ts:99:3 › General chore — no COMPLETED stamp › General chore does NOT show COMPLETED stamp after approval
[43/287] [chromium-task-activation] › e2e\mode_parent\task-activation\kindness-activation.spec.ts:74:3 › Kindness act activation › Edit button appears on first kindness act click
[44/287] [chromium-task-assignment] › e2e\mode_parent\task-assignment\reward-assignment.spec.ts:149:3 › Reward assignment › Cancel does not persist selection changes
[45/287] [chromium-task-activation] › e2e\mode_parent\task-activation\general-chore-no-completed.spec.ts:107:3 › General chore — no COMPLETED stamp › General chore can be triggered again immediately after approval
[46/287] [chromium-task-activation] › e2e\mode_parent\task-activation\chore-activation.spec.ts:140:3 › Chore activation › Confirm chore activation — points awarded
[47/287] [chromium-task-activation] › e2e\mode_parent\task-activation\general-chore-no-completed.spec.ts:117:3 › General chore — no COMPLETED stamp › Scheduled chore DOES show COMPLETED after approval
[48/287] [chromium-task-activation] › e2e\mode_parent\task-activation\penalty-activation.spec.ts:81:3 › Penalty activation › Edit button appears on first penalty click
[49/287] [chromium-task-activation] › e2e\mode_parent\task-activation\chore-activation.spec.ts:154:3 › Chore activation › Confirmed chore shows COMPLETED stamp
[50/287] [chromium-task-activation] › e2e\mode_parent\task-activation\pending-reward-warning.spec.ts:161:3 › Pending reward warning dialog › Pending reward card shows PENDING banner
[51/287] [chromium-task-activation] › e2e\mode_parent\task-activation\chore-activation.spec.ts:161:3 › Chore activation › Clicking a completed chore does not open confirmation
[52/287] [chromium-task-activation] › e2e\mode_parent\task-activation\kindness-activation.spec.ts:88:3 › Kindness act activation › Edit button disappears when clicking a different kindness card
[53/287] [chromium-task-activation] › e2e\mode_parent\task-activation\scroll-and-flow.spec.ts:76:3 › Scroll and flow › Kindness list is horizontally scrollable when many items are assigned
[54/287] [chromium-task-activation] › e2e\mode_parent\task-activation\reward-redemption.spec.ts:73:3 › Reward redemption › Locked reward shows correct points needed text
[55/287] [chromium-task-activation] › e2e\mode_parent\task-activation\kindness-activation.spec.ts:106:3 › Kindness act activation › Cancel kindness act confirmation — no points awarded
[56/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-edit-points.spec.ts:83:3 › Chore edit points › Kebab button is hidden initially, visible after first click, hidden after deselect
[57/287] [chromium-task-activation] › e2e\mode_parent\task-activation\penalty-activation.spec.ts:95:3 › Penalty activation › Edit button disappears when clicking a different penalty card
[58/287] [chromium-task-activation] › e2e\mode_parent\task-activation\kindness-activation.spec.ts:121:3 › Kindness act activation › Confirm kindness act activation — points awarded
[59/287] [chromium-task-activation] › e2e\mode_parent\task-activation\penalty-activation.spec.ts:113:3 › Penalty activation › Cancel penalty confirmation — no points deducted
[60/287] [chromium-task-activation] › e2e\mode_parent\task-activation\kindness-activation.spec.ts:135:3 › Kindness act activation › Kindness act can be activated a second time — points awarded again
[61/287] [chromium-task-activation] › e2e\mode_parent\task-activation\penalty-activation.spec.ts:128:3 › Penalty activation › Confirm penalty activation — points deducted
[62/287] [chromium-task-activation] › e2e\mode_parent\task-activation\reward-redemption.spec.ts:83:3 › Reward redemption › Clicking a locked reward does not open confirmation dialog
[63/287] [chromium-task-activation] › e2e\mode_parent\task-activation\reward-redemption.spec.ts:98:3 › Reward redemption › Reward shows REWARD READY when child has sufficient points
[64/287] [chromium-task-activation] › e2e\mode_parent\task-activation\penalty-activation.spec.ts:144:3 › Penalty activation › Penalty can be activated multiple times — points deducted again
[65/287] [chromium-task-activation] › e2e\mode_parent\task-activation\reward-redemption.spec.ts:110:3 › Reward redemption › Edit button appears on first click of a ready reward
[66/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-edit-points.spec.ts:106:3 › Chore edit points › Kebab menu contains "Edit Points" and "Schedule"
[67/287] [chromium-task-activation] › e2e\mode_parent\task-activation\reward-redemption.spec.ts:125:3 › Reward redemption › Edit button disappears when clicking a different reward card
[68/287] [chromium-task-activation] › e2e\mode_parent\task-activation\penalty-activation.spec.ts:160:3 › Penalty activation › Points floor at 0 — penalty cannot make points negative
[69/287] [chromium-task-activation] › e2e\mode_parent\task-activation\pending-reward-warning.spec.ts:172:3 › Pending reward warning dialog › Chore activation — Cancel on pending dialog leaves state unchanged
[70/287] [chromium-task-activation] › e2e\mode_parent\task-activation\reward-redemption.spec.ts:144:3 › Reward redemption › Cancel reward redemption — points not deducted
[71/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-edit-points.spec.ts:120:3 › Chore edit points › "Edit Points" opens override modal pre-populated with current points
[72/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-reset.spec.ts:90:3 › Chore reset › "Reset" is absent from kebab menu when chore is not yet completed
[73/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-edit-points.spec.ts:136:3 › Chore edit points › Clicking outside the modal does not close it
[74/287] [chromium-task-activation] › e2e\mode_parent\task-activation\reward-redemption.spec.ts:162:3 › Reward redemption › Confirm reward redemption — points deducted and reward locks again
[75/287] [chromium-task-activation] › e2e\mode_parent\task-activation\scroll-and-flow.spec.ts:103:3 › Scroll and flow › Scrolling the list reveals hidden items
[76/287] [chromium-task-activation] › e2e\mode_parent\task-activation\pending-reward-warning.spec.ts:196:3 › Pending reward warning dialog › Chore activation — Confirm on pending dialog cancels pending reward and triggers chore
[77/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-edit-points.spec.ts:150:3 › Chore edit points › Cancel does not save — card still shows original points, no ⭐ badge
[78/287] [chromium-task-activation] › e2e\mode_parent\task-activation\scroll-and-flow.spec.ts:133:3 › Scroll and flow › First click on an off-screen item scrolls it into view and marks it ready
[79/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-edit-points.spec.ts:164:3 › Chore edit points › Saving a valid new value updates the displayed points on the card
[80/287] [chromium-task-modification] › e2e\mode_parent\task-modification\kindness-edit-points.spec.ts:72:3 › Kindness act edit points › Edit button appears on first click of a kindness card
[81/287] [chromium-task-activation] › e2e\mode_parent\task-activation\pending-reward-warning.spec.ts:222:3 › Pending reward warning dialog › Kindness activation — Cancel on pending dialog leaves state unchanged
[82/287] [chromium-task-activation] › e2e\mode_parent\task-activation\scroll-and-flow.spec.ts:163:3 › Scroll and flow › Scrolling does not prevent first-click centering on a partially visible item
[83/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-edit-points.spec.ts:177:3 › Chore edit points › ⭐ override badge appears on the card after saving a custom value
[84/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-edit-points.spec.ts:185:3 › Chore edit points › ⭐ badge persists after changing value back to the original default
[85/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-reset.spec.ts:100:3 › Chore reset › Chore shows COMPLETED stamp after activation and confirmation
[86/287] [chromium-task-modification] › e2e\mode_parent\task-modification\modified-points-activation.spec.ts:147:3 › Modified points take effect on activation › Modified chore points are awarded on activation (override 25, default 10)
[87/287] [chromium-task-activation] › e2e\mode_parent\task-activation\pending-reward-warning.spec.ts:238:3 › Pending reward warning dialog › Kindness activation — Confirm on pending dialog cancels pending reward and triggers kindness
[88/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-edit-points.spec.ts:200:3 › Chore edit points › Negative value disables the Save button
[89/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-reset.spec.ts:112:3 › Chore reset › "Reset" appears in kebab menu after chore is completed
[90/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-edit-points.spec.ts:211:3 › Chore edit points › Value above 10000 disables Save; exactly 10000 enables it
[91/287] [chromium-task-modification] › e2e\mode_parent\task-modification\kindness-edit-points.spec.ts:83:3 › Kindness act edit points › Edit button disappears when clicking a different kindness card
[92/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-reset.spec.ts:122:3 › Chore reset › Clicking "Reset" removes the COMPLETED stamp
[93/287] [chromium-task-activation] › e2e\mode_parent\task-activation\pending-reward-warning.spec.ts:261:3 › Pending reward warning dialog › Penalty activation — Cancel on pending dialog leaves state unchanged
[94/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-edit-points.spec.ts:224:3 › Chore edit points › Zero is a valid value — card shows "0 Points" with ⭐ badge
[95/287] [chromium-task-modification] › e2e\mode_parent\task-modification\kindness-edit-points.spec.ts:99:3 › Kindness act edit points › Edit button opens modal with kindness name and "Assign new points" subtitle
[96/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-reset.spec.ts:134:3 › Chore reset › Chore is re-activatable after reset — returns to COMPLETED on confirm
[97/287] [chromium-task-modification] › e2e\mode_parent\task-modification\kindness-edit-points.spec.ts:115:3 › Kindness act edit points › Input is pre-populated with the current point value
[98/287] [chromium-task-activation] › e2e\mode_parent\task-activation\pending-reward-warning.spec.ts:277:3 › Pending reward warning dialog › Penalty activation — Confirm on pending dialog cancels pending reward and triggers penalty
[99/287] [chromium-task-modification] › e2e\mode_parent\task-modification\penalty-edit-points.spec.ts:72:3 › Penalty edit points › Edit button appears on first click of a penalty card
[100/287] [chromium-task-modification] › e2e\mode_parent\task-modification\kindness-edit-points.spec.ts:125:3 › Kindness act edit points › Cancel does not save — points remain unchanged, no ⭐ badge
[101/287] [chromium-task-modification] › e2e\mode_parent\task-modification\chore-reset.spec.ts:151:3 › Chore reset › Reset → activate cycle is repeatable without error
[102/287] [chromium-task-modification] › e2e\mode_parent\task-modification\override-sse-child-update.spec.ts:89:3 › Override SSE updates child view › Changing chore override points updates child view in real time
[103/287] [chromium-task-modification] › e2e\mode_parent\task-modification\kindness-edit-points.spec.ts:139:3 › Kindness act edit points › Saving a new value updates displayed points and shows ⭐ badge
[104/287] [chromium-task-activation] › e2e\mode_parent\task-activation\pending-reward-warning.spec.ts:301:3 › Pending reward warning dialog › Other reward activation — Cancel on pending dialog leaves state unchanged
[105/287] [chromium-task-modification] › e2e\mode_parent\task-modification\kindness-edit-points.spec.ts:153:3 › Kindness act edit points › Negative value disables the Save button
[106/287] [chromium-task-modification] › e2e\mode_parent\task-modification\modified-points-activation.spec.ts:172:3 › Modified points take effect on activation › Modified kindness points are awarded on activation (override 8, default 10)
[107/287] [chromium-task-modification] › e2e\mode_parent\task-modification\penalty-edit-points.spec.ts:83:3 › Penalty edit points › Edit button disappears when clicking a different penalty card
[108/287] [chromium-task-modification] › e2e\mode_parent\task-modification\pending-reset-on-edit.spec.ts:107:3 › Pending status resets on task/reward modification › 10.1 Editing chore points clears pending status
[109/287] [chromium-task-modification] › e2e\mode_parent\task-modification\kindness-edit-points.spec.ts:164:3 › Kindness act edit points › Value above 10000 disables Save; exactly 10000 enables it
[110/287] [chromium-task-activation] › e2e\mode_parent\task-activation\pending-reward-warning.spec.ts:333:3 › Pending reward warning dialog › Other reward activation — Confirm on pending dialog cancels the pending reward
[111/287] [chromium-task-modification] › e2e\mode_parent\task-modification\penalty-edit-points.spec.ts:99:3 › Penalty edit points › Edit button opens modal with penalty name and "Assign new points" subtitle
[112/287] [chromium-task-modification] › e2e\mode_parent\task-modification\penalty-edit-points.spec.ts:115:3 › Penalty edit points › Input is pre-populated with the raw point value (positive, not negated)
[113/287] [chromium-task-modification] › e2e\mode_parent\task-modification\modified-points-activation.spec.ts:197:3 › Modified points take effect on activation › Modified penalty points are deducted at override rate (override 3, default 10)
[114/287] [chromium-task-modification] › e2e\mode_parent\task-modification\reward-edit-cost.spec.ts:67:3 › Reward edit cost › Edit button appears on first click of a reward card
[115/287] [chromium-task-modification] › e2e\mode_parent\task-modification\penalty-edit-points.spec.ts:128:3 › Penalty edit points › Cancel does not change the display
[116/287] [chromium-task-modification] › e2e\mode_parent\task-modification\override-sse-child-update.spec.ts:109:3 › Override SSE updates child view › Changing kindness override points updates child view
[117/287] [chromium-task-modification] › e2e\mode_parent\task-modification\penalty-edit-points.spec.ts:143:3 › Penalty edit points › Saving a new value updates card to show negated override and ⭐ badge
[118/287] [chromium-task-modification] › e2e\mode_parent\task-modification\modified-points-activation.spec.ts:222:3 › Modified points take effect on activation › Modified reward cost is reflected in points needed display (override 30)
[119/287] [chromium-task-modification] › e2e\mode_parent\task-modification\override-sse-child-update.spec.ts:123:3 › Override SSE updates child view › Changing penalty override points updates child view
[120/287] [chromium-task-modification] › e2e\mode_parent\task-modification\penalty-edit-points.spec.ts:159:3 › Penalty edit points › Negative value disables the Save button
[121/287] [chromium-task-modification] › e2e\mode_parent\task-modification\override-sse-child-update.spec.ts:137:3 › Override SSE updates child view › Deleting an override reverts child view to original points
[122/287] [chromium-task-modification] › e2e\mode_parent\task-modification\reward-edit-cost.spec.ts:78:3 › Reward edit cost › Edit button opens modal with reward name and "Assign new cost" subtitle
[123/287] [chromium-task-modification] › e2e\mode_parent\task-modification\pending-reset-on-edit.spec.ts:128:3 › Pending status resets on task/reward modification › 10.2 Changing chore schedule clears pending status
[124/287] [chromium-task-modification] › e2e\mode_parent\task-modification\penalty-edit-points.spec.ts:170:3 › Penalty edit points › Value above 10000 disables Save; exactly 10000 enables it
[125/287] [chromium-task-modification] › e2e\mode_parent\task-modification\reward-edit-cost.spec.ts:94:3 › Reward edit cost › Input is pre-populated with the current cost
[126/287] [chromium-task-modification] › e2e\mode_parent\task-modification\pending-reset-on-edit.spec.ts:154:3 › Pending status resets on task/reward modification › 10.5 Editing task name only does NOT clear pending
[127/287] [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
[128/287] [chromium-task-modification] › e2e\mode_parent\task-modification\reward-edit-cost.spec.ts:104:3 › Reward edit cost › Cancel does not change the points needed display
[129/287] [chromium-task-modification] › e2e\mode_parent\task-modification\reward-edit-cost.spec.ts:119:3 › Reward edit cost › Saving a new cost updates the points needed and shows ⭐ badge
[130/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\child-card-states.spec.ts:68:3 › Child Mode — Chore Visibility and Schedule States › 6.1 Chore with no schedule — visible normally in child mode
[131/287] [chromium-task-modification] › e2e\mode_parent\task-modification\reward-edit-cost.spec.ts:134:3 › Reward edit cost › Setting cost to 0 makes the reward immediately redeemable
[132/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\extend-time.spec.ts:49:3 › Extend Time › 8.1 "Extend Time" appears in kebab menu only when chore is expired
[133/287] [chromium-task-modification] › e2e\mode_parent\task-modification\pending-reset-on-edit.spec.ts:180:3 › Pending status resets on task/reward modification › 10.4 Completed chores remain completed after point edit
[134/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\interval-anchor.spec.ts:36:3 › Schedule Interval Mode — Anchor Date Logic › 9.1 Interval every 1 day starting today — chore active today
[135/287] [chromium-task-modification] › e2e\mode_parent\task-modification\reward-edit-cost.spec.ts:147:3 › Reward edit cost › Negative value disables the Save button
[136/287] [chromium-task-modification] › e2e\mode_parent\task-modification\reward-edit-cost.spec.ts:158:3 › Reward edit cost › Value above 10000 disables Save; exactly 10000 enables it
[137/287] [chromium-task-modification] › e2e\mode_parent\task-modification\reward-edit-cost.spec.ts:171:3 › Reward edit cost › Editing a pending reward shows a warning dialog — Cancel aborts the edit
[138/287] [chromium-task-modification] › e2e\mode_parent\task-modification\pending-reset-on-edit.spec.ts:201:3 › Pending status resets on task/reward modification › 10.3 Editing reward cost clears pending reward request
[139/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\interval-anchor.spec.ts:56:3 › Schedule Interval Mode — Anchor Date Logic › 9.2 Interval every 2 days starting yesterday — chore NOT active today
[140/287] [chromium-task-modification] › e2e\mode_parent\task-modification\reward-edit-cost.spec.ts:198:3 › Reward edit cost › Editing a pending reward — confirming the warning opens the override modal
[141/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\extend-time.spec.ts:61:3 › Extend Time › 8.2 "Extend Time" is absent when chore is not expired
[142/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\interval-anchor.spec.ts:83:3 › Schedule Interval Mode — Anchor Date Logic › 9.3 Interval every 2 days starting today — active today
[143/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\extend-time.spec.ts:70:3 › Extend Time › 8.3 Clicking "Extend Time" removes the TOO LATE badge
[144/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\interval-anchor.spec.ts:101:3 › Schedule Interval Mode — Anchor Date Logic › 9.4 Interval "Anytime" deadline — no "Due by" label
[145/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\extend-time.spec.ts:84:3 › Extend Time › 8.4 Extended chore no longer shows "Due by" label
[146/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\child-card-states.spec.ts:75:3 › Child Mode — Chore Visibility and Schedule States › 6.2 Chore scheduled for today — visible with "Due by" label
[147/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\extend-time.spec.ts:94:3 › Extend Time › 8.5 "Extend Time" disappears from kebab after extension
[148/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\child-card-states.spec.ts:83:3 › Child Mode — Chore Visibility and Schedule States › 6.3 Chore not scheduled for today — HIDDEN in child mode
[149/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-card-states.spec.ts:66:3 › Parent Mode — Chore Card Schedule States › 5.1 Chore with no schedule — normal appearance, no annotations
[150/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-days-mode.spec.ts:40:3 › Schedule Modal — Specific Days mode › 2.1 Clicking day chips toggles them active/inactive
[151/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\extend-time.spec.ts:104:3 › Extend Time › 8.6 Extension effect visible in child mode
[152/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-vs-child.spec.ts:51:3 › Parent vs Child Mode Comparison › 7.1 Parent mode shows all chores including off-day ones
[153/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\child-card-states.spec.ts:96:3 › Child Mode — Chore Visibility and Schedule States › 6.4 Chore with expired deadline — grayed out with TOO LATE badge (not hidden)
[154/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\extend-time.spec.ts:114:3 › Extend Time › 8.6b Extending same chore twice via API returns 409
[155/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\child-card-states.spec.ts:108:3 › Child Mode — Chore Visibility and Schedule States › 6.5 Chore with "Anytime" — visible, no badge, no "Due by"
[156/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\child-card-states.spec.ts:117:3 › Child Mode — Chore Visibility and Schedule States › 6.6 No kebab menu or schedule controls in child mode
[157/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-enable-disable.spec.ts:41:3 › Schedule Enable/Disable Toggle › 4.1 Toggle row is visible in the schedule modal
[158/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-days-mode.spec.ts:54:3 › Schedule Modal — Specific Days mode › 2.2 Default deadline row appears when at least one day is selected
[159/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-vs-child.spec.ts:69:3 › Parent vs Child Mode Comparison › 7.2 Child mode hides off-day chores
[160/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-days-mode.spec.ts:67:3 › Schedule Modal — Specific Days mode › 2.3 Default deadline "Anytime" toggle hides and restores time picker
[161/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-interval-mode.spec.ts:42:3 › Schedule Modal — Every X Days mode › 3.1 Interval stepper increments and decrements within 1–7
[162/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-vs-child.spec.ts:81:3 › Parent vs Child Mode Comparison › 7.3 Adding a schedule via parent mode hides chore in child mode on wrong day
[163/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-enable-disable.spec.ts:55:3 › Schedule Enable/Disable Toggle › 4.2 Toggling OFF shows "Paused" label and dims the form body
[164/287] [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
[165/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-days-mode.spec.ts:102:3 › Schedule Modal — Specific Days mode › 2.4 Exception time — "Set different time" creates per-day override
[166/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-vs-child.spec.ts:98:3 › Parent vs Child Mode Comparison › 7.4 Removing a schedule via parent mode shows chore in child mode again
[167/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-card-states.spec.ts:76:3 › Parent Mode — Chore Card Schedule States › 5.2 Chore scheduled for today — shows "Due by" label, not grayed out
[168/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-enable-disable.spec.ts:81:3 › Schedule Enable/Disable Toggle › 4.3 Toggling ON restores "Enabled" label and form body
[169/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-card-states.spec.ts:85:3 › Parent Mode — Chore Card Schedule States › 5.3 Chore not scheduled for today — grayed out in parent mode but visible
[170/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-days-mode.spec.ts:129:3 › Schedule Modal — Specific Days mode › 2.5 Exception time — "Reset to default" removes the override
[171/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-vs-child.spec.ts:112:3 › Parent vs Child Mode Comparison › 7.5 Paused schedule — chore visible in both modes
[172/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-card-states.spec.ts:100:3 › Parent Mode — Chore Card Schedule States › 5.4 Chore with expired deadline — grayed out with TOO LATE badge
[173/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-interval-mode.spec.ts:66:3 › Schedule Modal — Every X Days mode › 3.2 Anchor date field shows today's date by default
[174/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-card-states.spec.ts:110:3 › Parent Mode — Chore Card Schedule States › 5.5 Chore with "Anytime" deadline — no "Due by" label, no TOO LATE badge
[175/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-enable-disable.spec.ts:99:3 › Schedule Enable/Disable Toggle › 4.4 Save paused state — persists on reopen
[176/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-days-mode.spec.ts:150:3 › Schedule Modal — Specific Days mode › 2.6 Save with specific days — schedule persists on reopen
[177/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-card-states.spec.ts:122:3 › Parent Mode — Chore Card Schedule States › 5.6 Kebab menu always accessible on grayed-out chores
[178/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-interval-mode.spec.ts:76:3 › Schedule Modal — Every X Days mode › 3.3 Next occurrence preview label updates correctly
[179/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-load.spec.ts:40:3 › Schedule Loading — Backward Compatibility › 11.1 Schedule without "enabled" field defaults to enabled in modal
[180/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\parent-card-states.spec.ts:139:3 › Parent Mode — Chore Card Schedule States › 5.7 Expired chore cannot be triggered by tapping — no confirm dialog
[181/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-days-mode.spec.ts:183:3 › Schedule Modal — Specific Days mode › 2.7 Save with zero days deletes the schedule
[182/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-enable-disable.spec.ts:122:3 › Schedule Enable/Disable Toggle › 4.5 Dirty detection — toggling enabled state enables/disables Save
[183/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-interval-mode.spec.ts:96:3 › Schedule Modal — Every X Days mode › 3.4 Interval deadline "Anytime" toggle works
 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: expect(received).toBe(expected) // Object.is equality
Expected: true
Received: false
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
[184/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-interval-mode.spec.ts:122:3 › Schedule Modal — Every X Days mode › 3.5 Save interval schedule — persists on reopen
[185/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-enable-disable.spec.ts:145:3 › Schedule Enable/Disable Toggle › 4.6 Paused schedule in parent mode — chore is visible and not grayed out
[186/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-load.spec.ts:66:3 › Schedule Loading — Backward Compatibility › 11.2 Schedule with interval_has_deadline=false shows "Anytime" in modal
[187/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-sse.spec.ts:40:3 › SSE Real-Time Updates › 10.1 Setting a schedule via API reflects in an already-open parent view
[188/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-days-mode.spec.ts:212:3 › Schedule Modal — Specific Days mode › 2.8 Dirty detection — changing days enables Save
[189/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-enable-disable.spec.ts:162:3 › Schedule Enable/Disable Toggle › 4.7 Paused schedule in child mode — chore is visible
[190/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-modal.spec.ts:38:3 › Schedule Modal — Opening & Structure › 1.1 Schedule option appears in kebab menu
[191/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-load.spec.ts:89:3 › Schedule Loading — Backward Compatibility › 11.3 Days schedule with per-day exception loads deadline rows correctly
[192/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-interval-mode.spec.ts:158:3 › Schedule Modal — Every X Days mode › 3.6 Dirty detection — changing interval enables Save
[193/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-enable-disable.spec.ts:172:3 › Schedule Enable/Disable Toggle › 4.8 Paused schedule shows no "Due by" label
[194/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-load.spec.ts:145:3 › Schedule Loading — Backward Compatibility › 11.4 Interval schedule restores anchor date and interval on reopen
[195/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-sse.spec.ts:58:3 › SSE Real-Time Updates › 10.2 Deleting a schedule via API un-grays the chore in parent view
[196/287] [chromium-profile-button] › e2e\mode_parent\profile-button\profile-button-temporary.spec.ts:22:3 › Parent profile button – temporary parent mode › Badge – no 🔒 badge in temporary parent mode
[197/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-modal.spec.ts:46:3 › Schedule Modal — Opening & Structure › 1.2 Schedule modal opens with correct title and subtitle
[198/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-sse.spec.ts:77:3 › SSE Real-Time Updates › 10.3 Extending time via API reflects in an already-open parent view
[199/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-modal.spec.ts:55:3 › Schedule Modal — Opening & Structure › 1.3 Default state: Specific Days mode, no chips selected, toggle Enabled
[200/287] [chromium-profile-button] › e2e\mode_parent\profile-button\profile-button.spec.ts:29:3 › Parent profile button – permanent parent mode › Menu – Child Mode exits parent mode
[201/287] [chromium-profile-button] › e2e\mode_parent\profile-button\profile-button.spec.ts:9:3 › Parent profile button – permanent parent mode › Badge – shows 🔒 in permanent parent mode
[202/287] [chromium-profile-button] › e2e\mode_parent\profile-button\profile-button.spec.ts:14:3 › Parent profile button – permanent parent mode › Menu – shows user name and email
[203/287] [chromium-profile-button] › e2e\mode_parent\profile-button\profile-button.spec.ts:39:3 › Parent profile button – permanent parent mode › Menu – Child Mode re-entry without checkbox enters temporary mode
[204/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-modal.spec.ts:78:3 › Schedule Modal — Opening & Structure › 1.4 Mode toggle switches between Specific Days and Every X Days
[205/287] [chromium-profile-button] › e2e\mode_parent\profile-button\profile-button.spec.ts:58:3 › Parent profile button – permanent parent mode › Menu – Child Mode re-entry with checkbox enters permanent mode
[206/287] [chromium-profile-button] › e2e\mode_parent\profile-button\profile-button.spec.ts:21:3 › Parent profile button – permanent parent mode › Menu – Profile option navigates to the User Profile page
[207/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-modal.spec.ts:95:3 › Schedule Modal — Opening & Structure › 1.5 Cancel closes the modal without saving
[208/287] [chromium-profile-button] › e2e\mode_parent\profile-button\profile-button.spec.ts:77:3 › Parent profile button – permanent parent mode › Menu – Sign Out navigates to landing page
[209/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:48:3 › User Profile – editing › Profile page loads with correct data
[210/287] [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
[211/287] [chromium-chore-scheduler] › e2e\mode_parent\chore-scheduler\schedule-modal.spec.ts:120:3 › Schedule Modal — Opening & Structure › 1.6 Save is disabled when form is not dirty
[212/287] [chromium-tasks-rewards] › e2e\example.spec.ts:3:1 › has title
[213/287] [chromium-tasks-rewards] › e2e\example.spec.ts:10:1 › get started link
[214/287] [chromium-tasks-rewards] › e2e\mode_parent\notifications\notification-card-overflow.spec.ts:76:3 › Notification card overflow › Long notification entity name wraps or clips within card
[215/287] [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
[216/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:58:3 › User Profile – editing › Back button navigates back
[217/287] [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
[218/287] [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
[219/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:70:3 › User Profile – editing › Save is disabled when form is clean (not dirty)
[220/287] [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
[221/287] [chromium-tasks-rewards] › e2e\mode_parent\notifications\notification-card-overflow.spec.ts:56:3 › Notification card overflow › Notification text does not overflow card boundaries
[222/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:76:3 › User Profile – editing › Save is disabled when First Name is empty
[223/287] [chromium-tasks-rewards] › e2e\mode_parent\rewards\reward-cancel.spec.ts:13:3 › Reward cancellation › Cancel reward creation
[224/287] [chromium-tasks-rewards] › e2e\mode_parent\rewards\reward-cancel.spec.ts:39:3 › Reward cancellation › Cancel reward edit
[225/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:85:3 › User Profile – editing › Save is disabled when Last Name is empty
[226/287] [chromium-tasks-rewards] › e2e\mode_parent\rewards\reward-convert-default.spec.ts:13:3 › Convert default reward › Convert a default reward to a user item
[227/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:94:3 › User Profile – editing › Save is disabled when both name fields are empty
[228/287] [chromium-tasks-rewards] › e2e\mode_parent\rewards\reward-create-edit.spec.ts:13:3 › Reward management › Create a new reward
[229/287] [chromium-tasks-rewards] › e2e\mode_parent\rewards\reward-delete-default.spec.ts:13:3 › Default reward cost edit and restore › Edit default cost and verify restoration on delete
[230/287] [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
[231/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:103:3 › User Profile – editing › Save enables when a name is changed
[232/287] [chromium-tasks-rewards] › e2e\mode_parent\rewards\reward-create-edit.spec.ts:50:3 › Reward management › Edit an existing reward
[233/287] [chromium-tasks-rewards] › e2e\mode_parent\task-sorting\parent-sort-order.spec.ts:182:3 › Parent mode sort order › Parent chore sort: pending → general → expired → completed → unscheduled
[234/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:111:3 › User Profile – editing › Save persists name changes and shows confirmation modal
[235/287] [chromium-tasks-rewards] › e2e\mode_parent\rewards\reward-create-edit.spec.ts:107:3 › Reward management › Delete a reward
[236/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\chore-cancel.spec.ts:11:3 › Chore creation/edit cancellation › Cancel chore creation
[237/287] [chromium-user-profile-pin] › e2e\mode_parent\user-profile\change-pin.spec.ts:70:3 › User Profile – Change Parent PIN › Invalid code shows error
[238/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:129:3 › User Profile – editing › Cancel discards unsaved changes
[239/287] [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)
[240/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:141:3 › User Profile – editing › Email field is read-only
[241/287] [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
[242/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:149:3 › User Profile – editing › Change profile image (built-in)
[243/287] [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
[244/287] [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
[245/287] [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
[246/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:193:3 › User Profile – editing › Upload a custom profile image
 2) [chromium-tasks-rewards] › e2e\mode_parent\tasks\chore-cancel.spec.ts:11:3 › Chore creation/edit cancellation › Cancel chore creation
Error: expect(locator).toHaveCount(expected) failed
Locator: locator('text=Test')
Expected: 0
Received: 1
Timeout: 5000ms
Call log:
 - Expect "toHaveCount" with timeout 5000ms
 - waiting for locator('text=Test')
 9 × locator resolved to 1 element
 - unexpected value "1"
33 | await expect(page.getByText('Clean your mess', { exact: true })).toBeVisible()
34 | // expect: No chore named 'Test' exists
> 35 | await expect(page.locator('text=Test')).toHaveCount(0)
| ^
36 | })
37 |
38 | test('Cancel chore edit', async ({ page }) => {
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\tasks\chore-cancel.spec.ts:35:45
Error Context: test-results\mode_parent-tasks-chore-ca-9c64e-ation-Cancel-chore-creation-chromium-tasks-rewards\error-context.md
[247/287] [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
[248/287] [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
[249/287] [chromium-user-profile] › e2e\mode_parent\user-profile\profile-editing.spec.ts:216:3 › User Profile – editing › Change Password shows email-sent modal
[250/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\chore-cancel.spec.ts:38:3 › Chore creation/edit cancellation › Cancel chore edit
[251/287] [chromium-tasks-rewards] › e2e\mode_parent\task-sorting\parent-sort-order.spec.ts:210:3 › Parent mode sort order › Parent reward sort: pending requests appear first
 3) [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
Error: apiRequestContext.post: connect ECONNREFUSED ::1:5000
Call log:
 - → POST http://localhost:5000/user/set-pin
 - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - content-type: application/json
 - content-length: 14
 - cookie: access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZUB0ZXN0LmNvbSIsInVzZXJfaWQiOiJlZTk5MGEzOC1kYmVkLTRlNzEtYTQzYi0yOTQxNWI0OWE1MWYiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzU5Njc2NjN9.SdtrcRmhNT7O4Zqv2h94RJdsPuFe5haX0yYu2RRkrSg
at apiRequestContext.post: connect ECONNREFUSED ::1:5000
at setPinDirectly (D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\user-profile\change-pin.spec.ts:15:17)
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\user-profile\change-pin.spec.ts:23:5
 4) [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
Error: apiRequestContext.delete: read ECONNRESET
Call log:
 - → DELETE https://localhost:5173/api/task/2519b537-1af6-44c4-b6c4-cde6d7bde1db
 - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZUB0ZXN0LmNvbSIsInVzZXJfaWQiOiJlZTk5MGEzOC1kYmVkLTRlNzEtYTQzYi0yOTQxNWI0OWE1MWYiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzU5Njc2NjN9.SdtrcRmhNT7O4Zqv2h94RJdsPuFe5haX0yYu2RRkrSg
170 | if (childId) await request.delete(`/api/child/${childId}`)
171 | for (const id of [schedEarlyId, schedLateId, generalChoreId, pendingChoreId, nonTodayChoreId]) {
> 172 | if (id) await request.delete(`/api/task/${id}`)
| ^
173 | }
174 | for (const id of [pendingRewardId, cheapRewardId, expensiveRewardId]) {
175 | if (id) await request.delete(`/api/reward/${id}`)
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\task-sorting\child-sort-order.spec.ts:172:35
 5) [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
Error: apiRequestContext.delete: read ECONNRESET
Call log:
 - → DELETE https://localhost:5173/api/task/502b34cf-b21f-4510-b0bb-cd2fc871db04
 - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZUB0ZXN0LmNvbSIsInVzZXJfaWQiOiJlZTk5MGEzOC1kYmVkLTRlNzEtYTQzYi0yOTQxNWI0OWE1MWYiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzU5Njc2NjN9.SdtrcRmhNT7O4Zqv2h94RJdsPuFe5haX0yYu2RRkrSg
119 | test.afterAll(async ({ request }) => {
120 | if (childId) await request.delete(`/api/child/${childId}`)
> 121 | for (const id of choreIds) await request.delete(`/api/task/${id}`)
| ^
122 | if (rewardId) await request.delete(`/api/reward/${rewardId}`)
123 | })
124 |
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\notifications\notification-click-scroll.spec.ts:121:52
[252/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\chore-create-edit.spec.ts:12:3 › Chore management › Create a new chore (parent mode)
[253/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\kindness-cancel.spec.ts:11:3 › Kindness act cancellation › Cancel kindness act creation
[254/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\kindness-cancel.spec.ts:31:3 › Kindness act cancellation › Cancel kindness act edit
[255/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\kindness-create-edit.spec.ts:13:3 › Kindness act management › Create a new kindness act (parent mode)
 6) [chromium-tasks-rewards] › e2e\mode_parent\task-sorting\parent-sort-order.spec.ts:210:3 › Parent mode sort order › Parent reward sort: pending requests appear first
Error: page.goto: net::ERR_CONNECTION_REFUSED at https://localhost:5173/parent/213673b4-d3f7-4dca-9c4d-dab039195cf1
Call log:
 - navigating to "https://localhost:5173/parent/213673b4-d3f7-4dca-9c4d-dab039195cf1", waiting until "load"
209 |
210 | test('Parent reward sort: pending requests appear first', async ({ page }) => {
> 211 | await page.goto(`/parent/${childId}`)
| ^
212 | const section = rewardSection(page)
213 | await section.locator('.item-card').first().waitFor({ state: 'visible' })
214 |
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\task-sorting\parent-sort-order.spec.ts:211:16
Error: apiRequestContext.delete: connect ECONNREFUSED ::1:5173
Call log:
 - → DELETE https://localhost:5173/api/child/213673b4-d3f7-4dca-9c4d-dab039195cf1
 - user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.7632.6 Safari/537.36
 - accept: */*
 - accept-encoding: gzip,deflate,br
 - cookie: access_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZUB0ZXN0LmNvbSIsInVzZXJfaWQiOiJlZTk5MGEzOC1kYmVkLTRlNzEtYTQzYi0yOTQxNWI0OWE1MWYiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzU5Njc2NjN9.SdtrcRmhNT7O4Zqv2h94RJdsPuFe5haX0yYu2RRkrSg
at apiRequestContext.delete: connect ECONNREFUSED ::1:5173
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\task-sorting\parent-sort-order.spec.ts:167:38
[256/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\penalty-cancel.spec.ts:11:3 › Penalty creation/edit cancellation › Cancel penalty creation
 7) [chromium-tasks-rewards] › e2e\mode_parent\tasks\chore-create-edit.spec.ts:12:3 › Chore management › Create a new chore (parent mode)
Error: page.goto: net::ERR_CONNECTION_REFUSED at https://localhost:5173/parent/tasks/chores
Call log:
 - navigating to "https://localhost:5173/parent/tasks/chores", waiting until "load"
14 | const name = `Wash dishes ${suffix}`
15 | // 1. Navigate to /parent/tasks/chores
> 16 | await page.goto('/parent/tasks/chores')
| ^
17 | // expect: The parent dashboard loads and shows the chores list
18 | await expect(page.getByText('Clean your mess', { exact: true })).toBeVisible()
19 |
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\tasks\chore-create-edit.spec.ts:16:16
[257/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\chore-create-edit.spec.ts:51:3 › Chore management › Edit an existing chore
[258/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\chore-create-edit.spec.ts:107:3 › Chore management › Delete a chore
 8) [chromium-tasks-rewards] › e2e\mode_parent\tasks\kindness-cancel.spec.ts:11:3 › Kindness act cancellation › Cancel kindness act creation
Error: page.goto: net::ERR_CONNECTION_REFUSED at https://localhost:5173/parent/tasks/chores
Call log:
 - navigating to "https://localhost:5173/parent/tasks/chores", waiting until "load"
10 |
11 | test('Cancel kindness act creation', async ({ page }) => {
> 12 | await page.goto('/parent/tasks/chores')
| ^
13 | await page.click('text=Kindness Acts')
14 | await page.getByRole('button', { name: 'Create Kindness Act' }).click()
15 | await page.evaluate(() => {
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\tasks\kindness-cancel.spec.ts:12:16
 9) [chromium-tasks-rewards] › e2e\mode_parent\tasks\kindness-cancel.spec.ts:31:3 › Kindness act cancellation › Cancel kindness act edit
Error: page.goto: net::ERR_CONNECTION_REFUSED at https://localhost:5173/parent/tasks/chores
Call log:
 - navigating to "https://localhost:5173/parent/tasks/chores", waiting until "load"
30 |
31 | test('Cancel kindness act edit', async ({ page }) => {
> 32 | await page.goto('/parent/tasks/chores')
| ^
33 | await page.click('text=Kindness Acts')
34 | if (!(await page.getByText('Share toys', { exact: true }).count())) {
35 | await page.getByRole('button', { name: 'Create Kindness Act' }).click()
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\tasks\kindness-cancel.spec.ts:32:16
 10) [chromium-tasks-rewards] › e2e\mode_parent\tasks\kindness-create-edit.spec.ts:13:3 › Kindness act management › Create a new kindness act (parent mode)
Error: page.goto: net::ERR_CONNECTION_REFUSED at https://localhost:5173/parent/tasks/chores
Call log:
 - navigating to "https://localhost:5173/parent/tasks/chores", waiting until "load"
17 |
18 | // 1. navigate once and switch to kindness tab
> 19 | await page.goto('/parent/tasks/chores')
| ^
20 | await page.click('text=Kindness Acts')
21 | await expect(page.locator('text=Kindness Acts')).toBeVisible()
22 |
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\tasks\kindness-create-edit.spec.ts:19:16
[259/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\kindness-create-edit.spec.ts:48:3 › Kindness act management › Edit an existing kindness act
[260/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\kindness-create-edit.spec.ts:98:3 › Kindness act management › Delete a kindness act
[261/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\penalty-cancel.spec.ts:32:3 › Penalty creation/edit cancellation › Cancel penalty edit
[262/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\penalty-create-edit.spec.ts:13:3 › Penalty management › Create a new penalty (parent mode)
[263/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\test-simple-chore.spec.ts:3:1 › Simple chore creation test
[264/287] [chromium-no-pin] › e2e\example.spec.ts:3:1 › has title
[265/287] [chromium-no-pin] › e2e\example.spec.ts:10:1 › get started link
[266/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\penalty-create-edit.spec.ts:37:3 › Penalty management › Edit an existing penalty
 11) [chromium-tasks-rewards] › e2e\mode_parent\tasks\penalty-cancel.spec.ts:32:3 › Penalty creation/edit cancellation › Cancel penalty edit
Error: expect(locator).toBeVisible() failed
Locator: getByText('No screen time', { exact: true })
Expected: visible
Error: strict mode violation: getByText('No screen time', { exact: true }) resolved to 2 elements:
1) <span class="name" data-v-392076e6="">No screen time</span> aka getByText('No screen time').first()
2) <span class="name" data-v-392076e6="">No screen time</span> aka getByText('No screen time').nth(1)
Call log:
 - Expect "toBeVisible" with timeout 5000ms
 - waiting for getByText('No screen time', { exact: true })
38 | await page.locator('#points').fill('10')
39 | await page.getByRole('button', { name: 'Create' }).click()
> 40 | await expect(page.getByText('No screen time', { exact: true })).toBeVisible()
| ^
41 | }
42 | // open edit by clicking row
43 | await page.getByText('No screen time', { exact: true }).click()
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\tasks\penalty-cancel.spec.ts:40:71
Error Context: test-results\mode_parent-tasks-penalty--56070-llation-Cancel-penalty-edit-chromium-tasks-rewards\error-context.md
[267/287] [chromium-tasks-rewards] › e2e\mode_parent\tasks\penalty-create-edit.spec.ts:84:3 › Penalty management › Delete a penalty
 12) [chromium-tasks-rewards] › e2e\mode_parent\tasks\chore-cancel.spec.ts:38:3 › Chore creation/edit cancellation › Cancel chore edit
Test timeout of 30000ms exceeded.
Error: locator.click: Test timeout of 30000ms exceeded.
Call log:
 - waiting for getByText('Wash dishes', { exact: true })
56 | await page.getByRole('button', { name: 'Create' }).click()
57 | }
> 58 | await page.getByText('Wash dishes', { exact: true }).click()
| ^
59 |
60 | // 2. Modify the name then cancel
61 | await page.evaluate(() => {
at D:\Python Utilities\Reward\frontend\vue-app\e2e\mode_parent\tasks\chore-cancel.spec.ts:58:58
Error Context: test-results\mode_parent-tasks-chore-ca-ef6a3-cellation-Cancel-chore-edit-chromium-tasks-rewards\error-context.md
[268/287] [chromium-create-child] › e2e\mode_parent\create-child\authorization.spec.ts:9:3 › Create Child › Add Child FAB is hidden when parent auth is expired
[269/287] [chromium-create-child] › e2e\mode_parent\create-child\validation.spec.ts:15:3 › Create Child › Reject submission when Name is empty
[270/287] [chromium-create-child] › e2e\mode_parent\create-child\navigation.spec.ts:6:3 › Create Child › Cancel navigates back without saving
[271/287] [chromium-create-child] › e2e\mode_parent\create-child\sse.spec.ts:9:3 › Create Child › New child appears in list without page reload
[272/287] [chromium-create-child] › e2e\mode_parent\create-child\happy-path.spec.ts:37:3 › Create Child › Create a child with name and age only
[273/287] [chromium-create-child] › e2e\mode_parent\create-child\validation.spec.ts:24:3 › Create Child › Reject submission when Name is whitespace only
[274/287] [chromium-create-child] › e2e\mode_parent\create-child\validation.spec.ts:34:3 › Create Child › Reject submission when Age is empty
[275/287] [chromium-create-child] › e2e\mode_parent\create-child\validation.spec.ts:43:3 › Create Child › Reject negative age
[276/287] [chromium-create-child] › e2e\mode_parent\create-child\validation.spec.ts:53:3 › Create Child › Enforce maximum Name length of 64 characters
[277/287] [chromium-create-child] › e2e\mode_parent\create-child\validation.spec.ts:80:3 › Create Child › Reject age greater than 120
[278/287] [chromium-create-child] › e2e\mode_parent\create-child\happy-path.spec.ts:80:3 › Create Child › Create a child via the inline Create button in empty state
[279/287] [chromium-create-child] › e2e\mode_parent\create-child\sse.spec.ts:52:3 › Create Child › New child appears in child mode list without page reload
[280/287] [chromium-user-profile-delete] › e2e\mode_parent\user-profile\delete-account.spec.ts:9:3 › User Profile – Delete Account › Delete My Account opens confirmation dialog
[281/287] [chromium-create-child] › e2e\mode_parent\create-child\happy-path.spec.ts:122:3 › Create Child › Create a child with a custom uploaded image
[282/287] [chromium-user-profile-delete] › e2e\mode_parent\user-profile\delete-account.spec.ts:25:3 › User Profile – Delete Account › Delete button stays disabled for incomplete email
[283/287] [chromium-user-profile-delete] › e2e\mode_parent\user-profile\delete-account.spec.ts:37:3 › User Profile – Delete Account › Delete button enables when matching email is entered
[284/287] [chromium-user-profile-delete] › e2e\mode_parent\user-profile\delete-account.spec.ts:49:3 › User Profile – Delete Account › Cancel closes the dialog without deleting the account
[285/287] [chromium-user-profile-delete] › e2e\mode_parent\user-profile\delete-account.spec.ts:64:3 › User Profile – Delete Account › Backdrop click does NOT close the delete dialog
[286/287] [chromium-user-profile-delete] › e2e\mode_parent\user-profile\delete-account.spec.ts:76:3 › User Profile – Delete Account › Successful deletion: confirmation modal appears then redirects to landing page
[287/287] [chromium-user-profile-delete] › e2e\mode_parent\user-profile\delete-account.spec.ts:97:3 › User Profile – Delete Account › Login after deletion is blocked with an appropriate error
 12 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
[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
[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
[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
[chromium-tasks-rewards] › e2e\mode_parent\task-sorting\parent-sort-order.spec.ts:210:3 › Parent mode sort order › Parent reward sort: pending requests appear first
[chromium-tasks-rewards] › e2e\mode_parent\tasks\chore-cancel.spec.ts:11:3 › Chore creation/edit cancellation › Cancel chore creation
[chromium-tasks-rewards] › e2e\mode_parent\tasks\chore-cancel.spec.ts:38:3 › Chore creation/edit cancellation › Cancel chore edit
[chromium-tasks-rewards] › e2e\mode_parent\tasks\chore-create-edit.spec.ts:12:3 › Chore management › Create a new chore (parent mode)
[chromium-tasks-rewards] › e2e\mode_parent\tasks\kindness-cancel.spec.ts:11:3 › Kindness act cancellation › Cancel kindness act creation
[chromium-tasks-rewards] › e2e\mode_parent\tasks\kindness-cancel.spec.ts:31:3 › Kindness act cancellation › Cancel kindness act edit
[chromium-tasks-rewards] › e2e\mode_parent\tasks\kindness-create-edit.spec.ts:13:3 › Kindness act management › Create a new kindness act (parent mode)
[chromium-tasks-rewards] › e2e\mode_parent\tasks\penalty-cancel.spec.ts:32:3 › Penalty creation/edit cancellation › Cancel penalty edit
1 skipped
4 did not run
270 passed (3.0m)

View File

@@ -0,0 +1,4 @@
{
"status": "failed",
"failedTests": []
}