Finanzen: Steuerkarte mit Orientierungshinweis und neuer Anteilsformulierung, Ladetext auf Deutsch
TaxCard zeigt am Ende immer "Orientierungswert, ersetzt keine Steuerberatung."; der Anteil heisst "<x> % der Grenze von 25.000 €" statt "<x> % der 25.000-€-Grenze". AdminRoute zeigt "Wird geladen …" statt "Loading...". Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
0b1101d384
commit
e9cfae28ee
5 files changed
+36
-6
No files matched your search
@@ -0,0 +1,14 @@
|
||||
import test from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import path from 'node:path'
|
||||
import { fileURLToPath } from 'node:url'
|
||||
|
||||
const root = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../..')
|
||||
const source = readFileSync(path.join(root, 'src/components/AdminRoute.jsx'), 'utf8')
|
||||
|
||||
// AdminRoute braucht React und den Auth-Kontext (nicht unter Node ladbar): der Ladetext wird am Quelltext geprüft
|
||||
test('AdminRoute: Ladetext auf Deutsch, kein englisches „Loading...“', () => {
|
||||
assert.match(source, /<p>Wird geladen …<\/p>/)
|
||||
assert.doesNotMatch(source, /Loading/)
|
||||
})
|
||||
@@ -20,6 +20,7 @@ const {
|
||||
forecastRows,
|
||||
forecastNotes,
|
||||
taxView,
|
||||
TAX_NOTE,
|
||||
aboView,
|
||||
productLabel,
|
||||
aboStatus,
|
||||
@@ -453,17 +454,25 @@ test('taxView: Kleinunternehmer-Zähler „<Betrag> von 25.000 € (2026)“ und
|
||||
const v = taxView(steuer())
|
||||
assert.equal(v.small.known, true)
|
||||
assert.equal(v.small.counterText, '80,00 € von 25.000 € (2026)')
|
||||
assert.equal(v.small.shareText, '0,3 % der 25.000-€-Grenze')
|
||||
assert.equal(v.small.shareText, '0,3 % der Grenze von 25.000 €')
|
||||
assert.equal(v.small.limitText, 'Über 25.000 € im Jahr 2026: ab 2027 keine Kleinunternehmerregelung.')
|
||||
assert.equal(
|
||||
v.small.hardText,
|
||||
'Grenze 100.000 €: Ab dem Umsatz, der diese Grenze übersteigt, gilt schon im laufenden Jahr die Regelbesteuerung (Umsatzsteuer).'
|
||||
)
|
||||
assert.equal(v.small.previousText, null)
|
||||
assert.equal(taxView(steuer({}, { anteilFolgejahr: 0.704 })).small.shareText, '70,4 % der 25.000-€-Grenze')
|
||||
assert.equal(taxView(steuer({}, { anteilFolgejahr: 0.704 })).small.shareText, '70,4 % der Grenze von 25.000 €')
|
||||
assert.equal(taxView(steuer({}, { jahrCents: 0, anteilFolgejahr: 0 })).small.counterText, '0,00 € von 25.000 € (2026)')
|
||||
})
|
||||
|
||||
test('taxView: Orientierungshinweis steht immer dabei, Anteil ohne „-€-Grenze“', () => {
|
||||
assert.equal(TAX_NOTE, 'Orientierungswert, ersetzt keine Steuerberatung.')
|
||||
assert.equal(taxView(steuer()).noteText, TAX_NOTE)
|
||||
assert.equal(taxView(null).noteText, TAX_NOTE)
|
||||
assert.equal(taxView(steuer({}, { jahrCents: null, anteilFolgejahr: null })).noteText, TAX_NOTE)
|
||||
for (const t of [taxView(steuer()), taxView(steuer({}, { anteilFolgejahr: 1.2 }))]) assert.doesNotMatch(t.small.shareText, /-€-Grenze/)
|
||||
})
|
||||
|
||||
test('taxView: Stripe nicht erreichbar -> unbekannt statt 0', () => {
|
||||
const v = taxView(steuer({}, { jahrCents: null, anteilFolgejahr: null }))
|
||||
assert.equal(v.small.known, false)
|
||||
@@ -492,7 +501,7 @@ test('taxView: Vorjahr nur wenn gesetzt, über der Grenze mit Hinweis', () => {
|
||||
test('taxView: Grenzen kommen aus dem Server (Rückfall nur ohne Wert), Jahr fehlt -> Folgejahr', () => {
|
||||
const custom = taxView(steuer({ jahr: 2030 }, { grenzeFolgejahrCents: 3000000, grenzeHartCents: 12000000, anteilFolgejahr: 0.5, vorjahrCents: 3000001 }))
|
||||
assert.equal(custom.small.counterText, '80,00 € von 30.000 € (2030)')
|
||||
assert.equal(custom.small.shareText, '50 % der 30.000-€-Grenze')
|
||||
assert.equal(custom.small.shareText, '50 % der Grenze von 30.000 €')
|
||||
assert.equal(custom.small.limitText, 'Über 30.000 € im Jahr 2030: ab 2031 keine Kleinunternehmerregelung.')
|
||||
assert.match(custom.small.hardText, /^Grenze 120\.000 €: Ab dem Umsatz, der diese Grenze übersteigt, gilt schon im laufenden Jahr die Regelbesteuerung \(Umsatzsteuer\)\.$/)
|
||||
assert.equal(custom.small.previousText, 'Vorjahr: 30.000,01 € (über 30.000 €: im laufenden Jahr keine Kleinunternehmerregelung)')
|
||||
|
||||
Reference in new issue
Block a user