Skip to content

Commit 027cdc4

Browse files
committed
IS-3179: Lagt til informasjon om at forhåndsvarsel ikke har blitt sendt ut ifm. aktivitetskrav
1 parent df6e4d5 commit 027cdc4

File tree

3 files changed

+173
-0
lines changed

3 files changed

+173
-0
lines changed

src/sider/aktivitetskrav/AktivitetskravSide.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { AktivitetskravHistorikk } from "@/sider/aktivitetskrav/historikk/Aktivi
66
import { StartNyVurdering } from "./vurdering/StartNyVurdering";
77
import { AktivitetskravStatus } from "@/data/aktivitetskrav/aktivitetskravTypes";
88
import { Alert } from "@navikt/ds-react";
9+
import Aktivitetskravvarsel from "@/sider/aktivitetskrav/Aktivitetskravvarsel";
910

1011
const texts = {
1112
noTilfelle:
@@ -35,6 +36,7 @@ export const AktivitetskravSide = () => {
3536
{texts.noTilfelle}
3637
</Alert>
3738
)}
39+
<Aktivitetskravvarsel />
3840
{showStartNyVurdering ? (
3941
<StartNyVurdering aktivitetskrav={aktivitetskrav} />
4042
) : (
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import { Alert, BodyShort, Label } from "@navikt/ds-react";
2+
import React from "react";
3+
import { useAktivitetskravQuery } from "@/data/aktivitetskrav/aktivitetskravQueryHooks";
4+
import {
5+
AktivitetskravStatus,
6+
AktivitetskravVurderingDTO,
7+
} from "@/data/aktivitetskrav/aktivitetskravTypes";
8+
9+
const texts = {
10+
header: "Teknisk feil påvirket forhåndsvarsler mellom 27. februar - 12. mars",
11+
info: "Grunnet teknisk feil har ikke forhåndsvarsel i perioden 27. februar – 12. mars blitt varslet på riktig måte. I mange av sakene har bruker fått forlenget frist til 9. april 2025, og fristen i Modia er oppdatert tilsvarende. Dersom berørte brukere tar kontakt, skal det gis forlenget frist.",
12+
};
13+
14+
export default function Aktivitetskravvarsel() {
15+
const { data } = useAktivitetskravQuery();
16+
const start = new Date("2025-02-27T12:00:00Z");
17+
const end = new Date("2025-03-10T00:00:00Z");
18+
19+
const isForhandsvarsel = (vurdering: AktivitetskravVurderingDTO) =>
20+
vurdering.status === AktivitetskravStatus.FORHANDSVARSEL;
21+
const isBetweenDates = (vurdering: AktivitetskravVurderingDTO) =>
22+
start <= new Date(vurdering.createdAt) &&
23+
new Date(vurdering.createdAt) <= end;
24+
25+
const showVarsel = data
26+
.flatMap((aktivitetskrav) =>
27+
aktivitetskrav.vurderinger.filter(isForhandsvarsel)
28+
)
29+
.some(isBetweenDates);
30+
31+
return (
32+
showVarsel && (
33+
<Alert
34+
variant={"error"}
35+
size={"medium"}
36+
className={"mb-2"}
37+
contentMaxWidth={false}
38+
>
39+
<Label>{texts.header}</Label>
40+
<BodyShort>{texts.info}</BodyShort>
41+
</Alert>
42+
)
43+
);
44+
}

test/aktivitetskrav/AktivitetskravSideTest.tsx

+127
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { ValgtEnhetContext } from "@/context/ValgtEnhetContext";
1515
import { beforeEach, describe, expect, it } from "vitest";
1616
import {
1717
createAktivitetskrav,
18+
forhandsvarselVurdering,
1819
generateOppfolgingstilfelle,
1920
} from "../testDataUtils";
2021
import {
@@ -384,4 +385,130 @@ describe("AktivitetskravSide", () => {
384385
.exist;
385386
});
386387
});
388+
389+
describe("Visning av varsel om at forhåndsvarsel ikke ble sendt ut til sykmeldt", () => {
390+
describe("Varsel skal vises for forhåndsvarsler opprettet i perioden 27.02.25 kl. 12:00 - 10.03.25 kl. 00:00", () => {
391+
it("Forhåndsvarsel opprettet 27.02.25 kl. 12:00 ved starten av perioden", () => {
392+
mockAktivitetskrav([
393+
createAktivitetskrav(
394+
new Date(),
395+
AktivitetskravStatus.FORHANDSVARSEL,
396+
[
397+
{
398+
...forhandsvarselVurdering,
399+
createdAt: new Date("2025-02-27T12:00:00Z"),
400+
},
401+
]
402+
),
403+
]);
404+
405+
renderAktivitetskravSide();
406+
407+
expect(
408+
screen.getByText(
409+
"Grunnet teknisk feil har ikke forhåndsvarsel i perioden 27. februar – 12. mars",
410+
{ exact: false }
411+
)
412+
).to.exist;
413+
});
414+
415+
it("Forhåndsvarsel opprettet 05.03.25 kl. 12:00 innenfor periode", () => {
416+
mockAktivitetskrav([
417+
createAktivitetskrav(
418+
new Date(),
419+
AktivitetskravStatus.FORHANDSVARSEL,
420+
[
421+
{
422+
...forhandsvarselVurdering,
423+
createdAt: new Date("2025-03-05T12:00:00Z"),
424+
},
425+
]
426+
),
427+
]);
428+
429+
renderAktivitetskravSide();
430+
431+
expect(
432+
screen.getByText(
433+
"Grunnet teknisk feil har ikke forhåndsvarsel i perioden 27. februar – 12. mars",
434+
{ exact: false }
435+
)
436+
).to.exist;
437+
});
438+
439+
it("Forhåndsvarsel opprettet 10.03.25 kl. 00:00 ved slutten av perioden", () => {
440+
mockAktivitetskrav([
441+
createAktivitetskrav(
442+
new Date(),
443+
AktivitetskravStatus.FORHANDSVARSEL,
444+
[
445+
{
446+
...forhandsvarselVurdering,
447+
createdAt: new Date("2025-03-10T00:00:00Z"),
448+
},
449+
]
450+
),
451+
]);
452+
453+
renderAktivitetskravSide();
454+
455+
expect(
456+
screen.getByText(
457+
"Grunnet teknisk feil har ikke forhåndsvarsel i perioden 27. februar – 12. mars",
458+
{ exact: false }
459+
)
460+
).to.exist;
461+
});
462+
});
463+
464+
describe("Varsel skal ikke vises for forhåndsvarsler opprettet utenfor perioden 27.02.25 kl. 12:00 - 10.03.25 kl. 00:00", () => {
465+
it("Forhåndsvarsel opprettet 27.02.25 kl. 11:59 rett før starten av perioden", () => {
466+
mockAktivitetskrav([
467+
createAktivitetskrav(
468+
new Date(),
469+
AktivitetskravStatus.FORHANDSVARSEL,
470+
[
471+
{
472+
...forhandsvarselVurdering,
473+
createdAt: new Date("2025-02-27T11:59:00Z"),
474+
},
475+
]
476+
),
477+
]);
478+
479+
renderAktivitetskravSide();
480+
481+
expect(
482+
screen.queryByText(
483+
"Grunnet teknisk feil har ikke forhåndsvarsel i perioden 27. februar – 12. mars",
484+
{ exact: false }
485+
)
486+
).to.not.exist;
487+
});
488+
489+
it("Forhåndsvarsel opprettet 10.03.25 kl. 00:01 rett etter slutten av perioden", () => {
490+
mockAktivitetskrav([
491+
createAktivitetskrav(
492+
new Date(),
493+
AktivitetskravStatus.FORHANDSVARSEL,
494+
[
495+
{
496+
...forhandsvarselVurdering,
497+
createdAt: new Date("2025-03-10T00:01:00Z"),
498+
},
499+
]
500+
),
501+
]);
502+
503+
renderAktivitetskravSide();
504+
505+
expect(
506+
screen.queryByText(
507+
"Grunnet teknisk feil har ikke forhåndsvarsel i perioden 27. februar – 12. mars",
508+
{ exact: false }
509+
)
510+
).to.not.exist;
511+
});
512+
});
513+
});
387514
});

0 commit comments

Comments
 (0)