feat(front) : util httpExternal + autocomplete adresse BAN (ERP-66)
- httpExternal : client dedie aux API publiques externes (URL absolue, sans cookie de session, timeout), seul point d'entree autorise pour un $fetch externe (regle frontend n°4). - useAddressAutocomplete : implementation BAN (api-adresse.data.gouv.fr), recherche ville (type=municipality) et adresse, mapping GeoJSON, throw en cas d'erreur/timeout (mode degrade cote composant). La recherche d'adresse n'impose pas type=housenumber (sinon 0 resultat tant qu'aucun numero n'est saisi) — spec-front mise a jour en consequence. - Tests Vitest : httpExternal, useAddressAutocomplete, et cas limites supplementaires pour formatPhoneFR.
This commit is contained in:
@@ -20,4 +20,27 @@ describe('formatPhoneFR', () => {
|
||||
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')
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user