import { describe, it, expect } from 'vitest' import { formatPhoneFR } from '../phone' describe('formatPhoneFR', () => { it('formate un numero 10 chiffres en XX XX XX XX XX', () => { expect(formatPhoneFR('0612345678')).toBe('06 12 34 56 78') }) it('tolere une saisie deja pointee ou espacee', () => { expect(formatPhoneFR('06.12.34.56.78')).toBe('06 12 34 56 78') expect(formatPhoneFR('06 12 34 56 78')).toBe('06 12 34 56 78') }) it('retourne une chaine vide pour une valeur vide ou nulle', () => { expect(formatPhoneFR('')).toBe('') expect(formatPhoneFR(null)).toBe('') expect(formatPhoneFR(undefined)).toBe('') }) it('groupe par 2 meme un nombre impair de chiffres (dernier groupe seul)', () => { expect(formatPhoneFR('123')).toBe('12 3') }) it('formate une saisie courte (<= 4 chiffres) sans planter', () => { expect(formatPhoneFR('1')).toBe('1') expect(formatPhoneFR('12')).toBe('12') expect(formatPhoneFR('1234')).toBe('12 34') }) it('strip les caracteres non numeriques (lettres, espaces, ponctuation)', () => { expect(formatPhoneFR('abc')).toBe('') expect(formatPhoneFR('Tel : 06.12')).toBe('06 12') expect(formatPhoneFR(' 06 12 ')).toBe('06 12') }) it('conserve l\'indicatif international (+33) sans le transformer', () => { // Comportement fige : on retire seulement le `+`, on ne deduit pas le // prefixe pays. Le `+33...` est donc groupe brut par paquets de 2. expect(formatPhoneFR('+33612345678')).toBe('33 61 23 45 67 8') }) it('groupe sans tronquer une saisie plus longue que 10 chiffres', () => { // Aucune troncature silencieuse : on figure tous les chiffres groupes par 2. expect(formatPhoneFR('061234567899')).toBe('06 12 34 56 78 99') }) })