diff --git a/web/workspace/src/lib/workspace/console/ConsoleTasks.svelte b/web/workspace/src/lib/workspace/console/ConsoleTasks.svelte index 7b461874..d4db74f1 100644 --- a/web/workspace/src/lib/workspace/console/ConsoleTasks.svelte +++ b/web/workspace/src/lib/workspace/console/ConsoleTasks.svelte @@ -28,6 +28,10 @@ .slice(0, 3), ); + function taskNoun(count: number): "task" | "tasks" { + return count === 1 ? "task" : "tasks"; + } + function mark(status: ConsoleTask["status"]): string { switch (status) { case "pending": @@ -54,7 +58,7 @@ {/each}
- {counts.total} task(s) — pending: {counts.pending}, inprogress: {counts.inprogress}, completed: {counts.completed}, deleted: {counts.deleted} + {counts.total} {taskNoun(counts.total)} — pending: {counts.pending}, inprogress: {counts.inprogress}, completed: {counts.completed} {#if workerViews.length > 1} diff --git a/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts b/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts index 5af0c3d2..89f172fe 100644 --- a/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts +++ b/web/workspace/src/lib/workspace/console/worker-console.ui.test.ts @@ -857,9 +857,10 @@ Deno.test("Web Console renders the client-projected Worker task store", async () tasksComponent.includes("[~]") && tasksComponent.includes("[x]") && tasksComponent.includes("[-]") && - tasksComponent.includes("task(s) — pending:") && + tasksComponent.includes('return count === 1 ? "task" : "tasks"') && + !tasksComponent.includes(", deleted: {counts.deleted}") && tasksComponent.includes("task.description"), - "Tasks UI should mirror the TUI status marks, summary, and descriptions", + "Tasks UI should mirror the TUI status marks, pluralize its summary, omit the deleted count, and show descriptions", ); assert( tasksModel.includes('name === "TaskCreate"') &&