Finanzen: Einstellung Steuernummer für die Auftragsbestätigung
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e9e198e53c
commit
4f467fa9c5
2 files changed
+37
-3
No files matched your search
@@ -43,7 +43,7 @@ const storedSettings = () => aw.docs(SETTINGS()).get('main')
|
||||
const storedCost = (id) => aw.docs(COSTS()).get(id)
|
||||
const callsTo = (method, path) => st.calls.filter((c) => c.method === method && (path instanceof RegExp ? path.test(c.path) : c.path === path))
|
||||
|
||||
const DEFAULTS = { minBufferCents: 0, taxReservePercent: 30, previousYearRevenueCents: null, estPrepaymentCents: 0, bankDetailsText: '' }
|
||||
const DEFAULTS = { minBufferCents: 0, taxReservePercent: 30, previousYearRevenueCents: null, estPrepaymentCents: 0, bankDetailsText: '', steuernummer: '' }
|
||||
const UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/
|
||||
|
||||
async function reset() {
|
||||
@@ -124,7 +124,7 @@ test('GET /einstellungen: gespeicherte Werte ueberschreiben die Standardwerte, f
|
||||
assert.deepEqual((await getSettings()).einstellungen, { ...DEFAULTS, previousYearRevenueCents: 0, bankDetailsText: 'IBAN DE00' })
|
||||
})
|
||||
|
||||
test('GET /einstellungen: nur die fuenf Felder, nie Appwrite-Metafelder', async () => {
|
||||
test('GET /einstellungen: nur die sechs Felder, nie Appwrite-Metafelder', async () => {
|
||||
aw.seed(SETTINGS(), { $id: 'main', taxReservePercent: 25, secret: 'intern' })
|
||||
const { einstellungen } = await getSettings()
|
||||
assert.deepEqual(Object.keys(einstellungen).sort(), Object.keys(DEFAULTS).sort())
|
||||
@@ -184,6 +184,28 @@ test('PATCH: der Bankverbindungstext wird ohne Rand-Leerraum gespeichert', async
|
||||
assert.equal(storedSettings().bankDetailsText, 'IBAN DE00 0000')
|
||||
})
|
||||
|
||||
test('PATCH steuernummer: Vorgabe leer, getrimmt gespeichert; Buchstaben, Ziffern, Leerzeichen, / - und . bis 40 Zeichen, sonst 400', async () => {
|
||||
assert.equal((await getSettings()).einstellungen.steuernummer, '')
|
||||
const getrimmt = await patchSettings({ steuernummer: ' 12/345/67890 ' })
|
||||
assert.equal(getrimmt.status, 200, JSON.stringify(getrimmt.body))
|
||||
assert.equal(getrimmt.body.einstellungen.steuernummer, '12/345/67890')
|
||||
assert.equal(storedSettings().steuernummer, '12/345/67890')
|
||||
assert.equal((await getSettings()).einstellungen.steuernummer, '12/345/67890')
|
||||
for (const wert of ['DE123456789', 'de 123.456.789', '12 345 67890', '12-345-678', 'A'.repeat(40), ` ${'1'.repeat(40)} `, ' ', '']) {
|
||||
const res = await patchSettings({ steuernummer: wert })
|
||||
assert.equal(res.status, 200, JSON.stringify(wert))
|
||||
assert.equal(res.body.einstellungen.steuernummer, wert.trim())
|
||||
assert.equal(storedSettings().steuernummer, wert.trim())
|
||||
}
|
||||
assert.equal((await patchSettings({ steuernummer: 'DE123456789' })).status, 200)
|
||||
for (const wert of ['<script>', '1'.repeat(41), 'A'.repeat(41), '123_456', '12;34', 'Müller 12', '12\n34', '12\t34', null, 123, ['1'], true]) {
|
||||
const res = await patchSettings({ steuernummer: wert })
|
||||
assert.equal(res.status, 400, JSON.stringify(wert))
|
||||
assert.equal(res.body.error, 'Steuernummer ungültig.')
|
||||
}
|
||||
assert.equal(storedSettings().steuernummer, 'DE123456789', 'ungültige Werte ändern nichts')
|
||||
})
|
||||
|
||||
test('PATCH { previousYearRevenueCents: null } loescht den Wert wieder', async () => {
|
||||
assert.equal((await patchSettings({ previousYearRevenueCents: 4500000 })).body.einstellungen.previousYearRevenueCents, 4500000)
|
||||
assert.equal(storedSettings().previousYearRevenueCents, 4500000)
|
||||
|
||||
Reference in new issue
Block a user