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:
1 parent
910fa0ff30
commit
b81e53eef5
6 files changed
+146
-2
No files matched your search
@@ -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)
|
||||
})
|
||||
Reference in new issue
Block a user