Kundenliste: Schalter Kundenart fehlt

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-16 13:32:04 +00:00
1 parent 58bb956645
commit 5e59ad44bd
3 files changed
+58 -11

No files matched your search

+30 -1
View File
@@ -2,7 +2,7 @@ import test from 'node:test'
import assert from 'node:assert/strict'
import { loadModule } from './load.mjs'
const { CUSTOMER_TABS, customerStage, isArchived, filterCustomers, stageCounts, customerBadges, stageLabel, customerEyebrow, customerTitle } =
const { CUSTOMER_TABS, customerStage, isArchived, filterCustomers, stageCounts, customerBadges, stageLabel, customerEyebrow, customerTitle, kundenartFehlt, kundenartFehltAnzahl } =
await loadModule('src/lib/customerList.js')
const A = { $id: 'a', name: 'Alpha GmbH', code: 'K-1', location: 'Kaiserslautern', email: 'info@alpha.de', contactName: 'Anna Alt', customerStatus: 'customer' }
@@ -74,3 +74,32 @@ test('stageLabel, customerEyebrow, customerTitle', () => {
assert.equal(customerTitle({ email: 'x@y.de' }), 'x@y.de')
assert.equal(customerTitle({}), '–')
})
const KA = [
{ $id: 'k1', name: 'Eins', customerStatus: 'customer', kundenart: 'unternehmen' },
{ $id: 'k2', name: 'Zwei', customerStatus: 'customer' },
{ $id: 'k3', name: 'Drei', customerStatus: 'lead', kundenart: '' },
{ $id: 'k4', name: 'Vier', customerStatus: 'lead', kundenart: 'privat' },
{ $id: 'k5', name: 'Fünf', customerStatus: 'lost' },
{ $id: 'k6', name: 'Sechs', customerStatus: 'customer', archived: true },
{ $id: 'k7', name: 'Sieben', customerStatus: 'customer', kundenart: ' unternehmen' },
]
test('kundenartFehlt und kundenartFehltAnzahl: Lead und fester Kunde, ohne Archiv und Abgesagte', () => {
assert.equal(kundenartFehlt({}), true); assert.equal(kundenartFehlt({ kundenart: 'privat' }), false); assert.equal(kundenartFehlt(null), true)
assert.equal(kundenartFehltAnzahl(KA), 3) // k2, k3, k7
assert.equal(kundenartFehltAnzahl([]), 0)
})
test('filterCustomers mit nurKundenartFehlt: je Reiter, mit Suche; ohne Schalter unverändert', () => {
const f = (opts) => ids(filterCustomers(KA, opts))
assert.deepEqual(f({ stage: 'customer', nurKundenartFehlt: true }), ['k2', 'k7'])
assert.deepEqual(f({ stage: 'lead', nurKundenartFehlt: true }), ['k3'])
assert.deepEqual(f({ stage: 'lost', nurKundenartFehlt: true }), ['k5'])
assert.deepEqual(f({ stage: 'archived', nurKundenartFehlt: true }), ['k6'])
assert.deepEqual(f({ stage: 'all', nurKundenartFehlt: true }), ['k2', 'k3', 'k5', 'k7'])
assert.deepEqual(f({ stage: 'all', search: 'zwei', nurKundenartFehlt: true }), ['k2'])
assert.deepEqual(f({ stage: 'customer' }), ['k1', 'k2', 'k7'])
})
test('stageCounts mit nurKundenartFehlt: dieselbe Filterfunktion wie die Liste', () => {
assert.deepEqual(stageCounts(KA, '', { nurKundenartFehlt: true }), { customer: 2, lead: 1, lost: 1, archived: 1, all: 4 })
assert.deepEqual(stageCounts(KA), { customer: 3, lead: 2, lost: 1, archived: 1, all: 6 })
})