Design P6: reine Helfer fuer Gutschrift-, Angebots- und Speicherzeilen mit Tests

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-06 14:36:10 +00:00
1 parent 910fa0ff30
commit b81e53eef5
6 files changed
+146 -2

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
import test from 'node:test'
import assert from 'node:assert/strict'
import { loadModule } from './load.mjs'
// P6: Faelligkeitsspalte der E-Mail-Speicher-Aufgaben als reiner Helfer
const { storageDue, isOverdue } = await loadModule('src/lib/storageFormat.js')
const t0 = Date.parse('2026-10-05T08:00:00Z')
test('storageDue: Einrichten sofort, Verringern zum Periodenende (ueberfaellig = warn)', () => {
assert.deepEqual(
storageDue({ kind: 'einrichten', createdAt: '2026-10-01T08:30:00.000Z' }, t0),
{ tone: 'warn', label: 'jetzt einrichten', sub: 'bestellt 01.10.26, 10:30', subMuted: true },
)
assert.deepEqual(
storageDue({ kind: 'senken', dueAt: '2026-10-04T00:00:00.000Z' }, t0),
{ tone: 'warn', label: 'zum Periodenende', sub: '04.10.2026', subMuted: false },
)
const later = storageDue({ kind: 'senken', dueAt: '2026-10-20T00:00:00.000Z' }, t0)
assert.equal(later.tone, 'muted')
assert.equal(later.sub, '20.10.2026')
})
test('isOverdue: vergangenes dueAt ja, zukuenftiges oder fehlendes nein', () => {
assert.equal(isOverdue({ dueAt: '2026-10-04T00:00:00.000Z' }, t0), true)
assert.equal(isOverdue({ dueAt: '2026-10-20T00:00:00.000Z' }, t0), false)
assert.equal(isOverdue({}, t0), false)
})