From c06a33fb63c6940fad6a6f373a144e3df2b58833 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sat, 11 Apr 2026 17:20:55 +0200 Subject: [PATCH] test(e2e): mirror task id to index in TaskFactory Multiple TaskFactory.create(1, {id: N, ...}, false) calls for the same project were all defaulting to index=1 (from {increment} with count=1), which collides on the newly added UNIQUE(project_id, index) constraint. Mirror the numeric id override to index so each row stays unique and matches the id == index convention used by raw seedTasks helpers. Fixes the e2e playwright seed failures in subtask-duplicates, list/table filter/search, kanban filter/search, and overview specs. --- frontend/tests/factories/task.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/frontend/tests/factories/task.ts b/frontend/tests/factories/task.ts index 9c37ad0f7..87b36f5d8 100644 --- a/frontend/tests/factories/task.ts +++ b/frontend/tests/factories/task.ts @@ -15,7 +15,20 @@ export class TaskFactory extends Factory { created_by_id: 1, index: '{increment}', created: now.toISOString(), - updated: now.toISOString() + updated: now.toISOString(), } } + + // Mirror numeric `id` overrides onto `index` so sequential single-row + // creates don't collide on UNIQUE(project_id, index). Matches the + // id == index convention used by raw seedTasks helpers. + static async create(count = 1, override: Record = {}, truncate = true) { + if ( + typeof override.id === 'number' && + !('index' in override) + ) { + override = {...override, index: override.id} + } + return super.create(count, override, truncate) + } }