Files
parenthese/frontend/src/utils/dateInput.test.js
T
IliesAllaliandClaude Opus 5.5 f8d4b4113d Mobile : parents séparés en pointillés, barre d'édition allégée, dates au clavier numérique (#82)
- Deux parents d'un même enfant sans couple enregistré sont reliés en pointillés au lieu
  d'avoir chacun un « Inconnu » (couple propre au dessin, rien en base) ; le tri de la
  fratrie le reconnaît.
- Barre d'édition mobile : X, « Ajouter » et « Plus » (dessin, texte, sticker, photo).
  Les outils s'ouvrent depuis « Plus » avec un retour, la corbeille n'apparaît que s'il y a
  quelque chose à effacer, l'outil actif en aplat. La barre ne passe plus sous le zoom.
- Bandeau d'édition : sur téléphone, seul le bouton reste, le texte se coupait.
- Dates : au-delà de 4 chiffres les barres se posent seules (12031950 → 12/03/1950), le
  message n'apparaît qu'en quittant le champ.
- Ajouter une personne : plus d'erreur « prénom » en quittant le champ vide, le bouton
  reste actif et le dit à l'appui.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 14:08:07 +02:00

41 lines
1.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { describe, expect, it } from 'vitest'
import { dateToInputText, formatDigitsAsDate, isYearOnly, parseDateInput } from './dateInput.js'
describe('saisie d’une date (issue #77)', () => {
it('une année seule ou une date complète', () => {
expect(parseDateInput('1950')).toBe('1950-01-01')
expect(parseDateInput('12/03/1950')).toBe('1950-03-12')
expect(parseDateInput('2.3.1950')).toBe('1950-03-02')
expect(parseDateInput('1950-03-12')).toBe('1950-03-12')
expect(parseDateInput(' ')).toBe('')
})
it('refuse ce qui n’est pas une date', () => {
expect(parseDateInput('31/02/1950')).toBeUndefined()
expect(parseDateInput('195')).toBeUndefined()
expect(parseDateInput('vers 1950')).toBeUndefined()
})
it('réaffiche la valeur comme on l’a tapée', () => {
expect(dateToInputText('1950-01-01')).toBe('1950')
expect(dateToInputText('1950-03-12')).toBe('12/03/1950')
expect(dateToInputText(null)).toBe('')
expect(isYearOnly('1950-01-01')).toBe(true)
expect(isYearOnly('1950-03-12')).toBe(false)
})
})
describe('formatDigitsAsDate', () => {
it('pose les barres au-delà de quatre chiffres, pour le clavier numérique du téléphone', () => {
expect(formatDigitsAsDate('1950')).toBe('1950')
expect(formatDigitsAsDate('12031')).toBe('12/03/1')
expect(formatDigitsAsDate('12031950')).toBe('12/03/1950')
expect(parseDateInput(formatDigitsAsDate('12031950'))).toBe('1950-03-12')
})
it('laisse tel quel ce qui contient déjà un séparateur', () => {
expect(formatDigitsAsDate('12/03/19')).toBe('12/03/19')
expect(formatDigitsAsDate('1/3/1950')).toBe('1/3/1950')
})
})