From 9bb7174479647b5a821f3dbe4b0b647b5272addb Mon Sep 17 00:00:00 2001 From: Eirik Dahlen <37441744+eirikdahlen@users.noreply.github.com> Date: Fri, 8 Dec 2023 08:37:21 +0100 Subject: [PATCH] IS-1894: Add varighetUker (#385) --- mock/data/personoversiktEnhetMock.ts | 17 +++++++++++++++++ src/api/types/personoversiktTypes.ts | 1 + src/components/Personrad.tsx | 15 +++------------ src/utils/dateUtils.ts | 14 -------------- test/components/Personrad.test.tsx | 1 + test/utils/dateUtils.test.ts | 20 +------------------- 6 files changed, 23 insertions(+), 45 deletions(-) diff --git a/mock/data/personoversiktEnhetMock.ts b/mock/data/personoversiktEnhetMock.ts index 0e80aea6..43472094 100644 --- a/mock/data/personoversiktEnhetMock.ts +++ b/mock/data/personoversiktEnhetMock.ts @@ -147,6 +147,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-10-25'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 2, virksomhetList: [ { virksomhetsnummer: '987654321', @@ -189,6 +190,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-08-03'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 2, virksomhetList: [ { virksomhetsnummer: '987654321', @@ -227,6 +229,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-08-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 2, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -261,6 +264,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 2, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -291,6 +295,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 2, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -321,6 +326,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 4, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -351,6 +357,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-05-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 1, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -381,6 +388,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-10-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 2, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -415,6 +423,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 420, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -445,6 +454,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 68, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -496,6 +506,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 10, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -526,6 +537,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 6, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -556,6 +568,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 2, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -586,6 +599,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 2, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -616,6 +630,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 2, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -646,6 +661,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 2, virksomhetList: [ { virksomhetsnummer: '987654322', @@ -676,6 +692,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [ latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2022-01-01'), oppfolgingstilfelleEnd: new Date('2022-12-31'), + varighetUker: 2, virksomhetList: [ { virksomhetsnummer: '987654322', diff --git a/src/api/types/personoversiktTypes.ts b/src/api/types/personoversiktTypes.ts index ceb1ee8d..240ae5ca 100644 --- a/src/api/types/personoversiktTypes.ts +++ b/src/api/types/personoversiktTypes.ts @@ -48,6 +48,7 @@ export interface PersonOversiktStatusDTO export interface OppfolgingstilfelleDTO { oppfolgingstilfelleStart: Date; oppfolgingstilfelleEnd: Date; + varighetUker: number; virksomhetList: OppfolgingstilfelleVirksomhetDTO[]; } diff --git a/src/components/Personrad.tsx b/src/components/Personrad.tsx index 88556d73..bb2f1c86 100644 --- a/src/components/Personrad.tsx +++ b/src/components/Personrad.tsx @@ -10,7 +10,6 @@ import { } from '@/utils/lenkeUtil'; import { PersonData } from '@/api/types/personregisterTypes'; import { useAktivBruker } from '@/data/modiacontext/useAktivBruker'; -import { getEarliestDate, getWeeksBetween } from '@/utils/dateUtils'; import { PersonRadVirksomhetColumn } from '@/components/PersonRadVirksomhetColumn'; import { Labels } from '@/components/Labels'; import { OppfolgingstilfelleDTO } from '@/api/types/personoversiktTypes'; @@ -48,17 +47,9 @@ const VelgBoks = styled(Checkbox)` const getVarighetOppfolgingstilfelle = ( oppfolgingstilfelle: OppfolgingstilfelleDTO | undefined ): string => { - if (oppfolgingstilfelle) { - const start = oppfolgingstilfelle.oppfolgingstilfelleStart; - const now = new Date(); - const end = getEarliestDate( - oppfolgingstilfelle.oppfolgingstilfelleEnd, - now - ); - return `${getWeeksBetween(start, end)} uker`; - } else { - return 'Ukjent'; - } + return oppfolgingstilfelle + ? `${oppfolgingstilfelle.varighetUker} uker` + : 'Ukjent'; }; export const Personrad = (props: PersonradProps): ReactElement => { diff --git a/src/utils/dateUtils.ts b/src/utils/dateUtils.ts index 2068e2b1..343f2a54 100644 --- a/src/utils/dateUtils.ts +++ b/src/utils/dateUtils.ts @@ -1,19 +1,5 @@ import dayjs from 'dayjs'; -export const getEarliestDate = ( - date1: Date | string, - date2: Date | string -): Date => { - return new Date(date1) < new Date(date2) ? new Date(date1) : new Date(date2); -}; - -export const getWeeksBetween = ( - date1: Date | string, - date2: Date | string -): number => { - return Math.abs(dayjs(date1).diff(dayjs(date2), 'week')); -}; - export const toReadableDate = (dateArg: Date | null): string => { if (!dateArg) { return ''; diff --git a/test/components/Personrad.test.tsx b/test/components/Personrad.test.tsx index b03f8bd2..75f06af8 100644 --- a/test/components/Personrad.test.tsx +++ b/test/components/Personrad.test.tsx @@ -76,6 +76,7 @@ const personWithOppfolgingstilfelle: PersonData = { latestOppfolgingstilfelle: { oppfolgingstilfelleStart: new Date('2023-01-01'), oppfolgingstilfelleEnd: new Date('2023-01-15'), + varighetUker: 2, virksomhetList: [], }, }; diff --git a/test/utils/dateUtils.test.ts b/test/utils/dateUtils.test.ts index 8778bafd..06233ac0 100644 --- a/test/utils/dateUtils.test.ts +++ b/test/utils/dateUtils.test.ts @@ -1,25 +1,7 @@ import { expect } from 'chai'; -import { - getEarliestDate, - getWeeksBetween, - toReadableDate, -} from '@/utils/dateUtils'; +import { toReadableDate } from '@/utils/dateUtils'; describe('dateUtils', () => { - describe('Calculations', () => { - it('Will calculate number of weeks between two dates', () => { - const date1 = new Date('2022-03-16'); - const date2 = getEarliestDate('2022-07-31', new Date()); - expect(getWeeksBetween(date1, date2)).to.equal(19); - }); - it('Will calculate earliest date', () => { - const earliestDate = new Date('2023-01-01'); - const latestDate = new Date('2023-02-02'); - expect(getEarliestDate(earliestDate, latestDate).getTime()).to.equal( - earliestDate.getTime() - ); - }); - }); describe('readable date', () => { it('returns empty string if date is null', () => { const readableDate = toReadableDate(null);