Files
parenthese/frontend/src/utils/nickname.test.js
T
IliesAllaliandClaude Haiku 5.5 ac5997659b feat(surnoms): surnom facultatif sous le nom, dans l'arbre et la fiche
- API : nickname accepté à la création, à la modification et dans les
  propositions de contribution (trim, vide = null, 120 caractères max)
- Mode direct et circuit des contributions : même validation, avant/après
- Édition et ajout : champ « Surnom » facultatif
- Arbre : surnom en italique sous le nom, coupé avec … au-delà de 150 px
- Recherche : trouve une personne par son surnom (libellé « Surnom »)
- Démo : surnoms sur Marie et Robert

Vérifié : lint, tests (front 159, back 224), builds (front, back tsc, landing).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
2026-10-18 19:34:09 +02:00

18 lines
625 B
JavaScript

import { describe, expect, it } from 'vitest'
import { fitNickname } from './nickname.js'
// Mesure fictive : 7 px par caractère, suffisant pour tester la règle de coupe
const ctx = { measureText: (text) => ({ width: text.length * 7 }) }
describe('fitNickname', () => {
it('garde le surnom entier quand il tient', () => {
expect(fitNickname(ctx, 'Loulou', 150)).toBe('Loulou')
})
it('coupe avec … sans dépasser la largeur', () => {
const out = fitNickname(ctx, 'Tonton Jojo de Brive', 70)
expect(out.endsWith('…')).toBe(true)
expect(ctx.measureText(out).width).toBeLessThanOrEqual(70)
})
})