refactor: introduit le format de date de Publii.codes comme un type.

Pourrait être exporté de Publi.codes à terme.
pull/2943/head
Jalil Arfaoui 2024-03-06 23:52:44 +01:00
parent 6648bd6f29
commit 0cf6f37579
3 changed files with 21 additions and 8 deletions

View File

@ -1,17 +1,22 @@
import { describe, expect, it } from 'vitest'
import { formatDate, parsePublicodesDateString } from '@/domain/Date'
import {
parsePublicodesDateString,
PublicodeDate,
toPublicodeDate,
} from '@/domain/Date'
describe('parsePublicodesDateString', () => {
it('comprend 24-12-2024 comme le 24 décembre 2024', () => {
expect(parsePublicodesDateString('24/12/2024')).toEqual(
const publiCodeDate: PublicodeDate = '24/12/2024'
expect(parsePublicodesDateString(publiCodeDate)).toEqual(
new Date(2024, 11, 24)
)
})
})
describe('formatDate', () => {
describe('toPublicodeDate', () => {
it("écrit le 15 août 1980 comme '15/08/1980' (format Publicodes)", () => {
expect(formatDate(new Date('1980-08-15'))).toEqual('15/08/1980')
expect(toPublicodeDate(new Date('1980-08-15'))).toEqual('15/08/1980')
})
})

View File

@ -1,10 +1,18 @@
import { format, parse } from 'date-fns/fp'
export type PublicodeDate =
`${number}${number}/${number}${number}/${number}${number}${number}${number}`
export const publicodesStandardDateFormat = 'dd/MM/yyyy'
export const formatDate = format(publicodesStandardDateFormat)
type DateToPublicodeDate = (d: Date) => PublicodeDate
export const toPublicodeDate = format(
publicodesStandardDateFormat
) as DateToPublicodeDate
type PublicodeDateToDate = (d: PublicodeDate) => Date
export const parsePublicodesDateString = parse(
new Date(),
publicodesStandardDateFormat
)
) as PublicodeDateToDate

View File

@ -1,7 +1,7 @@
import { DottedName } from 'modele-social'
import { CodeCatégorieJuridique } from '@/domain/CodeCatégorieJuridique'
import { formatDate } from '@/domain/Date'
import { toPublicodeDate } from '@/domain/Date'
import { Entreprise } from '@/domain/Entreprise'
import { Action } from '@/store/actions/actions'
import { buildSituationFromObject, omit } from '@/utils'
@ -85,7 +85,7 @@ export function companySituation(state: Situation = {}, action: Action) {
export function getCompanySituation(entreprise: Entreprise): Situation {
return {
'entreprise . date de création': formatDate(entreprise.dateDeCréation),
'entreprise . date de création': toPublicodeDate(entreprise.dateDeCréation),
'entreprise . catégorie juridique': `'${getCatégorieFromCode(
entreprise.codeCatégorieJuridique
)}'`,