643 — Cascade project and client when only the task is bulk-replaced¶
Description¶
Verifies the backend cascade: when bulk-editing only the Task field (Project and Client left as "Keep as is"), the patch carries just the task, yet every selected record ends up with the task's project and that project's client. Exercised across three records that each start on a totally different client/project/task.
Preconditions¶
- Signed in to a freshly seeded test organization.
- Three time records seeded via the GraphQL API, each totally distinct (own client/project/task, own time window, own billable ratio).
- Time Records page open in the Reports view.
Steps¶
- Confirm the three records start on different clients, projects and tasks. Expected: all three client/project/task titles appear in their columns.
- Tick the selection checkbox on all three rows. Expected: the floating bar shows "3 selected".
- Open the bulk-edit modal via the pencil action.
- Set Task → Replace and pick the first record's task. Leave Project on "Keep as is".
- Click Save. Expected: "Success" popup appears.
- Inspect all three rows. Expected: Task equals the chosen task, and Project + Client have cascaded to that task's project and client — on every row.
Related¶
- Spec:
playwright/tests/integration/timerecord.spec.ts(describe "Timerecord - Bulk edit") - Backend cascade:
TimeRecordBaseService(patch resolves task → project → client)