From 5a1d6b756ae3373d0270863032629af149cca485 Mon Sep 17 00:00:00 2001 From: Ingrid Gladheim <97440960+ingring@users.noreply.github.com> Date: Thu, 19 Sep 2024 15:44:32 +0200 Subject: [PATCH] =?UTF-8?q?IS-2677:=20add=20r=C3=B8d=20prikk=20n=C3=A5r=20?= =?UTF-8?q?forh=C3=A5ndsvarselet=20g=C3=A5r=20ut=20p=C3=A5=20manglende=20m?= =?UTF-8?q?edvirkning=20(#1458)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../globalnavigasjon/GlobalNavigasjon.tsx | 6 +++- src/utils/globalNavigasjonUtils.ts | 20 +++++++++-- test/components/GlobalNavigasjonTest.tsx | 35 +++++++++++++++++++ 3 files changed, 58 insertions(+), 3 deletions(-) diff --git a/src/components/globalnavigasjon/GlobalNavigasjon.tsx b/src/components/globalnavigasjon/GlobalNavigasjon.tsx index 8ea9bd00e..ac87ea24a 100644 --- a/src/components/globalnavigasjon/GlobalNavigasjon.tsx +++ b/src/components/globalnavigasjon/GlobalNavigasjon.tsx @@ -18,6 +18,7 @@ import { useFeatureToggles } from "@/data/unleash/unleashQueryHooks"; import { useArbeidsuforhetVurderingQuery } from "@/data/arbeidsuforhet/arbeidsuforhetQueryHooks"; import { useSenOppfolgingKandidatQuery } from "@/data/senoppfolging/useSenOppfolgingKandidatQuery"; import { useVedtakQuery } from "@/data/frisktilarbeid/vedtakQuery"; +import { useManglendeMedvirkningVurderingQuery } from "@/data/manglendemedvirkning/manglendeMedvirkningQueryHooks"; export enum Menypunkter { AKTIVITETSKRAV = "AKTIVITETSKRAV", @@ -112,6 +113,8 @@ export const GlobalNavigasjon = ({ const { data: arbeidsuforhetVurderinger } = useArbeidsuforhetVurderingQuery(); const { data: senOppfolgingKandidat } = useSenOppfolgingKandidatQuery(); const { data: friskmeldingTilArbeidsformidlingVedtak } = useVedtakQuery(); + const { sisteVurdering: manglendeMedvirkningVurdering } = + useManglendeMedvirkningVurderingQuery(); const { toggles } = useFeatureToggles(); const oppfolgingsplanerLPSMedPersonOppgave = oppfolgingsplanerLPS.map( @@ -190,7 +193,8 @@ export const GlobalNavigasjon = ({ aktivitetskrav, arbeidsuforhetVurderinger, senOppfolgingKandidat, - friskmeldingTilArbeidsformidlingVedtak + friskmeldingTilArbeidsformidlingVedtak, + manglendeMedvirkningVurdering ); const isVedtakMenypunkt = menypunkt === Menypunkter.VEDTAK; diff --git a/src/utils/globalNavigasjonUtils.ts b/src/utils/globalNavigasjonUtils.ts index a56276cfc..670eab1f7 100644 --- a/src/utils/globalNavigasjonUtils.ts +++ b/src/utils/globalNavigasjonUtils.ts @@ -27,6 +27,8 @@ import { } from "@/data/senoppfolging/senOppfolgingTypes"; import { VedtakResponseDTO } from "@/data/frisktilarbeid/frisktilarbeidTypes"; import { isExpiredForhandsvarsel } from "@/utils/aktivitetskravUtils"; +import { VurderingResponseDTO as ManglendeMedvirkningVurderingResponseDTO } from "@/data/manglendemedvirkning/manglendeMedvirkningTypes"; +import { isExpiredForhandsvarsel as isExpired } from "@/utils/datoUtils"; const getNumberOfMoteOppgaver = ( motebehov: MotebehovVeilederDTO[], @@ -135,6 +137,14 @@ function getNumberOfFriskmeldingTilArbeidsformidlingOppgaver( : 0; } +function getNumberOfManglendeMedvirkningOppgaver( + manglendeMedvirkningVurdering: + | ManglendeMedvirkningVurderingResponseDTO + | undefined +): number { + return isExpired(manglendeMedvirkningVurdering?.varsel?.svarfrist) ? 1 : 0; +} + export const numberOfTasks = ( menypunkt: Menypunkter, motebehov: MotebehovVeilederDTO[], @@ -144,7 +154,10 @@ export const numberOfTasks = ( aktivitetskrav: AktivitetskravDTO[], arbeidsuforhetVurderinger: VurderingResponseDTO[], senOppfolgingKandidatOppgaver: SenOppfolgingKandidatResponseDTO[], - friskmeldingTilArbeidsformidlingVedtak: VedtakResponseDTO[] + friskmeldingTilArbeidsformidlingVedtak: VedtakResponseDTO[], + manglendeMedvirkningVurdering: + | ManglendeMedvirkningVurderingResponseDTO + | undefined ): number => { switch (menypunkt) { case Menypunkter.DIALOGMOTE: @@ -174,8 +187,11 @@ export const numberOfTasks = ( return getNumberOfFriskmeldingTilArbeidsformidlingOppgaver( friskmeldingTilArbeidsformidlingVedtak ); - case Menypunkter.NOKKELINFORMASJON: case Menypunkter.MANGLENDE_MEDVIRKNING: + return getNumberOfManglendeMedvirkningOppgaver( + manglendeMedvirkningVurdering + ); + case Menypunkter.NOKKELINFORMASJON: case Menypunkter.SYKEPENGESOKNADER: case Menypunkter.VEDTAK: case Menypunkter.HISTORIKK: { diff --git a/test/components/GlobalNavigasjonTest.tsx b/test/components/GlobalNavigasjonTest.tsx index 192a50c7f..81fb5d70a 100644 --- a/test/components/GlobalNavigasjonTest.tsx +++ b/test/components/GlobalNavigasjonTest.tsx @@ -45,6 +45,11 @@ import { expiredForhandsvarselAktivitetskrav, forhandsvarselAktivitetskrav, } from "../aktivitetskrav/vurdering/vurderingTestUtils"; +import { manglendeMedvirkningQueryKeys } from "@/data/manglendemedvirkning/manglendeMedvirkningQueryHooks"; +import { + defaultForhandsvarselVurdering, + defaultForhandsvarselVurderingAfterDeadline, +} from "../manglendemedvirkning/manglendeMedvirkningTestData"; const fnr = ARBEIDSTAKER_DEFAULT.personIdent; let queryClient: QueryClient; @@ -366,4 +371,34 @@ describe("GlobalNavigasjon", () => { screen.getByRole("link", { name: "Friskmelding til arbeidsformidling" }) ).to.exist; }); + + it('viser en rød prikk for menypunkt "Manglende Medvirkning" når forhåndsvarselet er utgått', () => { + queryClient.setQueryData( + manglendeMedvirkningQueryKeys.manglendeMedvirkning(fnr), + () => [defaultForhandsvarselVurderingAfterDeadline] + ); + queryClient.setQueryData( + unleashQueryKeys.toggles(navEnhet.id, ""), + () => mockUnleashResponse + ); + renderGlobalNavigasjon(); + + expect(screen.getByRole("link", { name: "Manglende medvirkning 1" })).to + .exist; + }); + + it('viser ikke en rød prikk for menypunkt "Manglende Medvirkning" når forhåndsvarselet ikke er utgått', () => { + queryClient.setQueryData( + manglendeMedvirkningQueryKeys.manglendeMedvirkning(fnr), + () => [defaultForhandsvarselVurdering] + ); + queryClient.setQueryData( + unleashQueryKeys.toggles(navEnhet.id, ""), + () => mockUnleashResponse + ); + renderGlobalNavigasjon(); + + expect(screen.getByRole("link", { name: "Manglende medvirkning" })).to + .exist; + }); });