super-productivity/e2e/tests
Johannes Millan 0923fe66b2
fix(planner): don't erase day-scheduled subtasks on parent plan (#9019) (#9027)
* fix(planner): don't erase day-scheduled subtasks on parent plan (#9019)

Planning a parent task ran removeTasksFromPlannerDays(task.subTaskIds),
which stripped its subtasks from EVERY planner day. As a result, any
day-scheduling the user had given a subtask was silently wiped the moment
its parent was planned anywhere, so those subtasks disappeared from the
planner and schedule (timed subtasks survived via a separate, plannerDays-
independent path).

handlePlanTaskForDay now collapses the parent's subtasks on the target day
only, matching the target-day-only behaviour handleTransferTask already
had. Subtasks scheduled for other days keep their scheduling and stay
visible. Add removeTasksFromSinglePlannerDay helper (reuses removeTasksFromList)
for this; the explicit "SinglePlannerDay" name keeps it from being confused
with the all-days removeTasksFromPlannerDays (the mix-up that caused the bug).

Same-day subtasks still fold into the parent by design: showing them as
siblings would double-count their time (the parent estimate rolls up its
subtasks) in the day total and on the schedule timeline.

No schema barrier: the op payload and planner.days/dueDay shapes are
unchanged, so this is a pure reducer behaviour fix, not a new payload
semantic (op-log rules 2.5). In a mixed-version fleet a not-yet-upgraded
client still applies the old all-days removal for these ops, but the task's
dueDay is preserved either way and state re-converges once clients upgrade.

* test(planner): e2e for day-scheduled subtask visibility (#9019)

Drives the real UI: add a task + subtask, schedule the subtask for a
day (day-only, via the 'S' shortcut + quick-access Tomorrow), plan the
parent for a different day, then assert the subtask is still visible on
its own day in the planner. Fails against the pre-fix all-days removal,
passes with the target-day-only fix (both verified locally).
2026-07-15 14:28:24 +02:00
..
add-task-bar feat(tasks): redesign add-task-bar layout, toggles, note field & a11y (#8812) 2026-07-07 16:26:36 +02:00
app-features feat(focus-mode): focus screen UX overhaul (#7586) 2026-06-12 11:59:56 +02:00
autocomplete Merge branch 'master' into feat/operation-logs 2026-01-03 18:51:51 +01:00
boards feat(tasks): redesign add-task-bar layout, toggles, note field & a11y (#8812) 2026-07-07 16:26:36 +02:00
break test(e2e): use correct route /#/tag/TODAY/tasks instead of /#/tag/TODAY 2026-03-15 18:48:00 +01:00
calendar fix(calendar): hide archived event banners 2026-06-05 13:39:31 +02:00
daily-summary test(daily-summary): guard /active/daily-summary route resolution (#8449) 2026-06-17 14:29:12 +02:00
focus-mode fix(focus-mode): preserve flowtime break settings across mode switch (#8489) 2026-06-19 13:02:01 +02:00
import-export test(e2e): dismiss add-task-bar backdrop before finish day (#8014) 2026-06-04 22:53:11 +02:00
issue-provider-panel test(e2e): strengthen assertions across reviewed specs (#7747) 2026-05-23 13:40:17 +02:00
keyboard test(e2e): add comprehensive E2E test coverage for core features 2026-01-12 15:11:27 +01:00
menu chore: address code review feedback 2026-01-15 10:57:43 +01:00
migration test(migration): navigate to project tasks route to de-flake legacy migration e2e 2026-06-15 15:48:34 +02:00
navigation feat(history): merge Quick History and Worklog into a unified History view (#8033) 2026-06-05 18:10:56 +02:00
note test(notes): harden #8434 fix per multi-review 2026-06-17 16:07:54 +02:00
notes fix(note): linkify URLs in locked notes so markdown links stay clickable 2026-04-16 19:47:52 +02:00
onboarding fix(sync): isolate provider encryption settings + enforce critical e2e coverage (#9044) 2026-07-15 14:24:49 +02:00
performance test(e2e): disable failing for now 2025-09-21 00:59:11 +02:00
planner fix(planner): don't erase day-scheduled subtasks on parent plan (#9019) (#9027) 2026-07-15 14:28:24 +02:00
plugins fix(sync): isolate provider encryption settings + enforce critical e2e coverage (#9044) 2026-07-15 14:24:49 +02:00
project fix(sync): isolate provider encryption settings + enforce critical e2e coverage (#9044) 2026-07-15 14:24:49 +02:00
recurring feat(task-repeat): default skip-overdue for new everyday recurring tasks (#8861) 2026-07-08 19:55:37 +02:00
reminders feat(tasks): redesign add-task-bar layout, toggles, note field & a11y (#8812) 2026-07-07 16:26:36 +02:00
schedule test(e2e): strengthen assertions across reviewed specs (#7747) 2026-05-23 13:40:17 +02:00
search fix(sync): isolate provider encryption settings + enforce critical e2e coverage (#9044) 2026-07-15 14:24:49 +02:00
settings test(e2e): strengthen assertions across reviewed specs (#7747) 2026-05-23 13:40:17 +02:00
short-syntax refactor(e2e): replace waitForTimeout with condition-based waits 2026-01-03 15:29:38 +01:00
simple-counter chore: remove unused eslint disables 2026-06-03 21:31:06 +02:00
sync fix(sync): isolate provider encryption settings + enforce critical e2e coverage (#9044) 2026-07-15 14:24:49 +02:00
tags test(e2e): add comprehensive E2E test coverage for core features 2026-01-12 15:11:27 +01:00
task-basic fix(tasks): add sub-task submit button and commit-on-blur on touch (#8860) 2026-07-08 17:16:42 +02:00
task-detail Update recurrent task calendar and general calendar design (#8017) 2026-06-09 16:30:22 +02:00
task-dragdrop test(e2e): fix done-toggle selector to use element instead of class 2026-03-24 16:25:42 +01:00
task-list-basic fix(tasks): make "Add subtask" work in the Planner detail panel (#8617) (#8630) 2026-06-29 15:57:44 +02:00
work-view fix(sync): isolate provider encryption settings + enforce critical e2e coverage (#9044) 2026-07-15 14:24:49 +02:00
workflow fix(tasks): record only doneOn on completion, never auto-schedule to today (#8463) (#8472) 2026-06-18 16:15:27 +02:00
worklog test(e2e): fix worklog finish-day navigation race #8033 2026-06-06 20:09:59 +02:00
all-basic-routes-without-error.spec.ts feat(history): merge Quick History and Worklog into a unified History view (#8033) 2026-06-05 18:10:56 +02:00