import { describe, expect, it } from 'vitest' import { ALLGEMEINE_ANREDE, anredeZeile, nachnameAus } from '@/lib/kontakte/anrede' /** * Die Briefanrede. * * Zwei Zusagen werden hier gepruft: Es wird nie geraten, und ein halb * gefuellter Name fuehrt nie zu einer verstuemmelten Anrede. */ describe('Nachname', () => { it('nimmt das letzte Wort', () => { expect(nachnameAus('Anna Schmitt')).toBe('Schmitt') }) it('lässt Titel und Vornamen weg', () => { expect(nachnameAus('Dr. Anna Maria Schmitt')).toBe('Schmitt') }) it('hält einen Doppelnamen zusammen', () => { expect(nachnameAus('Anna Schmitt-Berger')).toBe('Schmitt-Berger') }) it('verträgt überzählige Leerzeichen', () => { expect(nachnameAus(' Anna Schmitt ')).toBe('Schmitt') }) }) describe('Anredezeile', () => { it('redet eine Frau mit Nachnamen an', () => { expect(anredeZeile({ name: 'Anna Schmitt', anrede: 'FRAU' })).toBe( 'Sehr geehrte Frau Schmitt,', ) }) it('redet einen Herrn mit Nachnamen an', () => { expect(anredeZeile({ name: 'Peter Vogel', anrede: 'HERR' })).toBe( 'Sehr geehrter Herr Vogel,', ) }) it('rät nicht, wenn die Anrede fehlt', () => { // Lieber die etwas steife Form als ein falsch geratenes "Frau". expect(anredeZeile({ name: 'Kim Berger', anrede: 'OHNE' })).toBe( 'Sehr geehrte(r) Kim Berger,', ) }) it('bleibt ohne Ansprechpartner allgemein', () => { expect(anredeZeile(null)).toBe(ALLGEMEINE_ANREDE) }) it('wird bei leerem Namen nicht verstümmelt', () => { // Der Fehler, der hier nie passieren darf: "Sehr geehrte Frau ,". expect(anredeZeile({ name: ' ', anrede: 'FRAU' })).toBe(ALLGEMEINE_ANREDE) }) })