super-productivity/e2e/tests
Maikel Hajiabadi 1765a4f74b
feat(boards): enhance project selection with multi-select and sidebar… (#8069)
* feat(boards): enhance project selection with multi-select logic

- Update BoardPanelCfg to use projectIds array instead of single projectId
- Implement multi-project filtering logic in BoardPanelComponent
- Enhance SelectProjectComponent with connected multi-select checkbox logic
- Add migration logic in sanitizePanelCfg to handle legacy board data
- Update and verify all related unit tests

* fix(boards): enhance panel migration and canonicalize project selection

- Prefer legacy projectId during migration even if projectIds is defaulted
- Canonicalize any projectIds containing "" back to [""] (All Projects)
- Add regression tests for migration and canonicalization

* fix(boards): prevent project assignment for All Projects panels

- Ignore project IDs for additionalTaskFields when "" is present in projectIds
- Add regression tests for multi-project filtering and task assignment

* fix(boards): update board form spec to match projectIds changes

* test(e2e): fix outdated keyboard shortcut and comment in add-to-today test

* fix(boards): translate defaultLabel in SelectProjectComponent

* docs(boards): document lossy canonicalization and legacy preference

* refactor(boards): simplify additionalTaskFields and remove redundant test

* feat(boards): add projectIds helper functions

* refactor(boards): use projectIds helpers across board logic

* fix(boards): keep projectIds optional for legacy data validation

Making `projectIds` a required field broke the typia validator on
raw-data paths that run before the boards reducer's `sanitizePanelCfg`
normalizes the shape. Most critically, the one-time legacy PFAPI ->
op-log migration validates, repairs, then re-validates and THROWS on
failure -- and data-repair.ts has no boards handling -- so every legacy
panel (carrying `projectId`, no `projectIds`) would abort that migration
for existing users.

Keep `projectIds` optional (absent/[''] = "All Projects") so legacy data
validates; `sanitizePanelCfg` still normalizes it to a defined array
before it reaches any component. Helpers and the drop() guard handle the
optional type. Adds a regression spec exercising the real typia validator.

---------

Co-authored-by: Johannes Millan <johannes.millan@gmail.com>
2026-06-09 18:33:09 +02:00
..
add-task-bar chore(task-repeat): revert RRULE Phase 1 from master (#7948) Develop the full RFC-5545 RRULE epic on the long-running feat/rrule-epic branch and merge once complete and testable in final form, rather than landing 13 phases into master one half-state at a time. Work preserved on feat/rrule-epic. Not yet shipped (post-v18.9.1), so no user impact. 2026-06-09 13:56:38 +02:00
app-features test(e2e): unbreak boards done-toggle and time-tracking selector 2026-06-06 19:00:50 +02:00
autocomplete Merge branch 'master' into feat/operation-logs 2026-01-03 18:51:51 +01:00
boards test(e2e): tighten boards #7498 regression specs 2026-05-06 21:37:06 +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 - fix(archive): also normalize malformed timeTracking field (#7487) 2026-05-05 15:41:25 +02:00
focus-mode docs: remove outdated and implemented plan docs 2026-06-08 12:38:51 +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): gate on work-context switch to de-flake legacy migration e2e 2026-06-08 19:48:15 +02:00
navigation feat(history): merge Quick History and Worklog into a unified History view (#8033) 2026-06-05 18:10:56 +02:00
notes fix(note): linkify URLs in locked notes so markdown links stay clickable 2026-04-16 19:47:52 +02:00
performance test(e2e): disable failing for now 2025-09-21 00:59:11 +02:00
planner test(e2e): stabilize task visibility specs 2026-05-13 16:27:31 +02:00
plugins perf(plugins): skip no-op doc-mode saves + rename to doc-mode (#7825) 2026-05-27 17:30:38 +02:00
project feat(project): project completion experience (#8036) 2026-06-08 13:43:38 +02:00
recurring Update recurrent task calendar and general calendar design (#8017) 2026-06-09 16:30:22 +02:00
reminders fix(reminder): require action for reminder popup #8051 (#8057) 2026-06-06 17:34:06 +02:00
schedule test(e2e): strengthen assertions across reviewed specs (#7747) 2026-05-23 13:40:17 +02:00
search improve E2E test reliability and add snapshotOpType interface param 2026-01-27 20:55:30 +01: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 chore(task-repeat): revert RRULE Phase 1 from master (#7948) Develop the full RFC-5545 RRULE epic on the long-running feat/rrule-epic branch and merge once complete and testable in final form, rather than landing 13 phases into master one half-state at a time. Work preserved on feat/rrule-epic. Not yet shipped (post-v18.9.1), so no user impact. 2026-06-09 13:56:38 +02:00
tags test(e2e): add comprehensive E2E test coverage for core features 2026-01-12 15:11:27 +01:00
task-basic test(e2e): fix done-toggle selector to use element instead of class 2026-03-24 16:25:42 +01: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): add subtask via "a" shortcut when detail panel is open (#8152) 2026-06-08 16:21:45 +02:00
work-view feat(boards): enhance project selection with multi-select and sidebar… (#8069) 2026-06-09 18:33:09 +02:00
workflow test(e2e): add comprehensive E2E test coverage for core features 2026-01-12 15:11:27 +01: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