Kundenliste: Schalter Kundenart fehlt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
58bb956645
commit
5e59ad44bd
3 files changed
+58
-11
No files matched your search
@@ -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 })
|
||||
})
|
||||
Reference in new issue
Block a user