Finanzen: Helfer fuer Vorzeichen-Rot und Meldungsklassen

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-06 14:38:00 +00:00
1 parent a2a6d83b15
commit e1932a2a48
2 files changed
+41

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
import test from 'node:test'
import assert from 'node:assert/strict'
import { loadModule } from './load.mjs'
const { isNegText, noticeProps } = await loadModule('src/lib/financeUi.js')
const { euro, euroWhole, signedEuro } = await loadModule('src/lib/financeFormat.js')
test('isNegText: nur das angezeigte Minus zählt', () => {
assert.equal(isNegText(euro(-449)), true)
assert.equal(isNegText(signedEuro(-449)), true)
assert.equal(isNegText(euroWhole(-123456)), true)
assert.equal(isNegText(euroWhole(-40)), false) // „0 €“: Rundung auf 0 trägt kein Vorzeichen
assert.equal(isNegText(signedEuro(16879)), false)
assert.equal(isNegText(euro(null)), false) // „–“ (U+2013)
for (const v of ['-4,49 €', '', undefined, null, 5]) assert.equal(isNegText(v), false)
})
test('noticeProps: Klasse und Rolle je Ton', () => {
assert.deepEqual(noticeProps('ok'), { className: 'msg ok', role: 'status' })
assert.deepEqual(noticeProps('warn'), { className: 'msg warn', role: 'alert' })
assert.deepEqual(noticeProps('info'), { className: 'msg muted', role: 'status' })
assert.deepEqual(noticeProps(undefined), { className: 'msg muted', role: 'status' })
assert.deepEqual(noticeProps('warn', 'fin-notice'), { className: 'msg warn fin-notice', role: 'alert' })
})