Anruf-Popup auch für Kuriere: Rufnummernsuche findet Kunden und Kuriere

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-09-03 15:21:31 +02:00
co-authored by Claude Fable 5.1
parent ab5e402ee9
commit afd6d03a71
4 changed files with 49 additions and 27 deletions
+26 -8
View File
@@ -1,5 +1,5 @@
import { describe, expect, it } from 'vitest'
import { pickCustomer, sameNumber, type StoredAddress } from './addresses'
import { pickCaller, sameNumber, type StoredAddress } from './addresses'
/**
* SwyxIt! meldet Rufnummern mit Amtsholung ("001602107449"), die Webhooks
@@ -32,7 +32,7 @@ describe('sameNumber', () => {
})
})
describe('pickCustomer', () => {
describe('pickCaller', () => {
const entries: StoredAddress[] = [
{ number: '5215', name: 'Abdul, Rokhsareh', description: 'Globales Telefonbuch' },
{
@@ -43,21 +43,39 @@ describe('pickCustomer', () => {
cscId: 100164,
url: 'https://test.sb.assecutor.de/admin/tapi_wrapper.php?phoneNo=01602107449',
},
{ number: '+49171677xxxx', name: 'Rainer Peters (HH1003)', role: 'courier' },
{
number: '+49171677xxxx',
name: 'Rainer Peters (HH1003)',
role: 'courier',
jobIds: [21891233],
},
]
it('findet den Kunden zur gemeldeten Rufnummer', () => {
const match = pickCustomer(entries, '001602107449')
const match = pickCaller(entries, '001602107449')
expect(match?.name).toBe('SYSGEN GmbH')
expect(match?.url).toContain('tapi_wrapper')
})
it('übergeht Telefonbuch-Einträge und Kuriere', () => {
expect(pickCustomer(entries, '5215')).toBeNull()
expect(pickCustomer(entries, '+49171677xxxx')).toBeNull()
it('findet auch den Kurier zur gemeldeten Rufnummer', () => {
const match = pickCaller(entries, '+49171677xxxx')
expect(match?.name).toBe('Rainer Peters (HH1003)')
expect(match?.jobIds).toEqual([21891233])
})
it('übergeht Telefonbuch-Einträge (ohne Rolle)', () => {
expect(pickCaller(entries, '5215')).toBeNull()
})
it('bevorzugt bei doppelter Rufnummer den Kunden vor dem Kurier', () => {
const both: StoredAddress[] = [
{ number: '+49404711', name: 'Kurier', role: 'courier' },
{ number: '+49404711', name: 'Kunde', role: 'customer' },
]
expect(pickCaller(both, '+49404711')?.name).toBe('Kunde')
})
it('liefert null, wenn keine Rufnummer passt', () => {
expect(pickCustomer(entries, '+49404711')).toBeNull()
expect(pickCaller(entries, '+49404711')).toBeNull()
})
})