From bb110a734eae4ea4bd605a7dbfe69a763efddeff Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 5 Oct 2026 07:59:27 +0000 Subject: [PATCH] Ticketstatus: statusTone fuer die neuen Badge-Toene Co-Authored-By: Claude Haiku 4.5 --- src/lib/ticketStatus.js | 13 +++++++++++++ tests/unit/ticketStatus.test.mjs | 14 ++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 tests/unit/ticketStatus.test.mjs diff --git a/src/lib/ticketStatus.js b/src/lib/ticketStatus.js index 3468feb..d6eccbf 100644 --- a/src/lib/ticketStatus.js +++ b/src/lib/ticketStatus.js @@ -49,6 +49,19 @@ export function statusGroup(status) { return STATUS_GROUPS.find((group) => group.values.includes(status))?.id || null } +const GROUP_TONE = { + open: '', + working: 'blue', + waiting: 'orange', + review: 'violet', + done: 'green', + cancelled: 'plain', +} + +export function statusTone(status) { + return GROUP_TONE[statusGroup(status)] || '' +} + export function statusValuesFor(groupIds) { return STATUS_GROUPS.filter((group) => groupIds.includes(group.id)).flatMap((group) => group.values) } diff --git a/tests/unit/ticketStatus.test.mjs b/tests/unit/ticketStatus.test.mjs new file mode 100644 index 0000000..1575309 --- /dev/null +++ b/tests/unit/ticketStatus.test.mjs @@ -0,0 +1,14 @@ +import test from 'node:test' +import assert from 'node:assert/strict' +import { loadModule } from './load.mjs' + +const { statusTone } = await loadModule('src/lib/ticketStatus.js') + +test('statusTone: Ton je gespeichertem Wert', () => { + for (const s of ['Open', '', undefined, null, 'Completed']) assert.equal(statusTone(s), '') + for (const s of ['Occupied', 'Assigned', 'Added Info', 'In Kontakt']) assert.equal(statusTone(s), 'blue') + for (const s of ['Awaiting', 'Halted']) assert.equal(statusTone(s), 'orange') + assert.equal(statusTone('In Test'), 'violet') + for (const s of ['Closed', 'Zugesagt']) assert.equal(statusTone(s), 'green') + for (const s of ['Cancelled', 'Aborted', 'Abgesagt']) assert.equal(statusTone(s), 'plain') +})