Skip to content

Commit 761d5c9

Browse files
eirikdahleneirikdahlen
and
eirikdahlen
authored
IS-2998: Add document for oppfolgingsplan foresporsel (#1625)
Co-authored-by: eirikdahlen <[email protected]>
1 parent 9b5d489 commit 761d5c9

File tree

4 files changed

+156
-4
lines changed

4 files changed

+156
-4
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
import { useDocumentComponents } from "@/hooks/useDocumentComponents";
2+
import { DocumentComponentDto } from "@/data/documentcomponent/documentComponentTypes";
3+
import {
4+
createHeaderH1,
5+
createParagraph,
6+
} from "@/utils/documentComponentUtils";
7+
import { tilLesbarDatoMedArstall } from "@/utils/datoUtils";
8+
9+
export type ForesporselDocumentValues = {
10+
narmesteLeder: string;
11+
virksomhetNavn: string;
12+
};
13+
14+
export function useOppfolgingsplanForesporselDocument() {
15+
const { getIntroGjelder } = useDocumentComponents();
16+
17+
function getForesporselDocument(
18+
values: ForesporselDocumentValues
19+
): DocumentComponentDto[] {
20+
return [
21+
createHeaderH1(oppfolgingsplanForesporselTexts.title),
22+
createParagraph(oppfolgingsplanForesporselTexts.dato),
23+
getIntroGjelder(),
24+
createParagraph(
25+
oppfolgingsplanForesporselTexts.mottaker(
26+
values.narmesteLeder,
27+
values.virksomhetNavn
28+
)
29+
),
30+
createParagraph(oppfolgingsplanForesporselTexts.body.hei),
31+
createParagraph(
32+
oppfolgingsplanForesporselTexts.body.info1,
33+
oppfolgingsplanForesporselTexts.body.info2
34+
),
35+
createParagraph(oppfolgingsplanForesporselTexts.body.kontakt),
36+
createParagraph(oppfolgingsplanForesporselTexts.hilsen),
37+
createParagraph(oppfolgingsplanForesporselTexts.ikkeSvar),
38+
];
39+
}
40+
41+
return {
42+
getForesporselDocument,
43+
};
44+
}
45+
46+
const oppfolgingsplanForesporselTexts = {
47+
title: "Nav ber om oppfølgingsplan fra arbeidsgiver",
48+
dato: `Dato sendt: ${tilLesbarDatoMedArstall(new Date())}`,
49+
mottaker: (narmesteLeder: string, virksomhetNavn: string) =>
50+
`Mottaker: ${narmesteLeder}, ${virksomhetNavn}`,
51+
body: {
52+
hei: "Hei,",
53+
info1:
54+
"Nav ber om at du sender inn oppfølgingsplan for en av dine ansatte som er sykmeldt.",
55+
info2:
56+
'Logg inn på "Min side - arbeidsgiver". Klikk på varselet i "bjella" for å se hvem det gjelder.',
57+
kontakt: "Har du spørsmål, kan du kontakte oss på 55 55 33 36.",
58+
},
59+
hilsen: "Vennlig hilsen Nav.",
60+
ikkeSvar: "Du kan ikke svare på denne meldingen.",
61+
};

src/sider/oppfolgingsplan/oppfolgingsplaner/BeOmOppfolgingsplan.tsx

+6-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
useGetOppfolgingsplanForesporselQuery,
1919
usePostOppfolgingsplanForesporsel,
2020
} from "@/data/oppfolgingsplan/oppfolgingsplanForesporselHooks";
21+
import { useOppfolgingsplanForesporselDocument } from "@/hooks/oppfolgingsplan/useOppfolgingsplanForesporselDocument";
2122

2223
const texts = {
2324
header: "Be om oppfølgingsplan fra arbeidsgiver",
@@ -51,16 +52,19 @@ export default function BeOmOppfolgingsplan({
5152
}: Props) {
5253
const personident = useValgtPersonident();
5354
const getOppfolgingsplanForesporsel = useGetOppfolgingsplanForesporselQuery();
54-
5555
const postOppfolgingsplanForesporsel = usePostOppfolgingsplanForesporsel();
56+
const { getForesporselDocument } = useOppfolgingsplanForesporselDocument();
5657

5758
function onClick() {
5859
const foresporsel: NewOppfolgingsplanForesporselDTO = {
5960
arbeidstakerPersonident: personident,
6061
virksomhetsnummer: aktivNarmesteLeder.virksomhetsnummer,
6162
narmestelederPersonident:
6263
aktivNarmesteLeder.narmesteLederPersonIdentNumber,
63-
document: [],
64+
document: getForesporselDocument({
65+
narmesteLeder: aktivNarmesteLeder.narmesteLederNavn,
66+
virksomhetNavn: aktivNarmesteLeder.virksomhetsnavn,
67+
}),
6468
};
6569
postOppfolgingsplanForesporsel.mutate(foresporsel, {
6670
onSuccess: () => logOppfolgingsplanForesporselEvent(),

test/sider/oppfolgingsplaner/OppfolgingsplanerOversiktTest.tsx

+30-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
queryClientWithAktivBruker,
44
queryClientWithMockData,
55
} from "../../testQueryClient";
6-
import { render, screen, within } from "@testing-library/react";
6+
import { render, screen, waitFor, within } from "@testing-library/react";
77
import { ValgtEnhetContext } from "@/context/ValgtEnhetContext";
88
import { navEnhet } from "../../dialogmote/testData";
99
import React from "react";
@@ -25,8 +25,10 @@ import { restdatoTilLesbarDato } from "@/utils/datoUtils";
2525
import { generateUUID } from "@/utils/utils";
2626
import { oppfolgingstilfellePersonQueryKeys } from "@/data/oppfolgingstilfelle/person/oppfolgingstilfellePersonQueryHooks";
2727
import { generateOppfolgingstilfelle } from "../../testDataUtils";
28-
import { daysFromToday } from "../../testUtils";
28+
import { clickButton, daysFromToday } from "../../testUtils";
2929
import { ledereQueryKeys } from "@/data/leder/ledereQueryHooks";
30+
import { NewOppfolgingsplanForesporselDTO } from "@/data/oppfolgingsplan/oppfolgingsplanForesporselHooks";
31+
import { getExpectedForesporselDocument } from "./oppfolgingsplanTestdata";
3032

3133
let queryClient: QueryClient;
3234

@@ -148,6 +150,32 @@ describe("Oppfølgingsplaner visning", () => {
148150
expect(screen.getByRole("button", { name: "Be om oppfølgingsplan" })).to
149151
.exist;
150152
});
153+
it("Sender forespørsel om oppfølgingsplan med document", async () => {
154+
renderOppfolgingsplanerOversikt([]);
155+
156+
await clickButton("Be om oppfølgingsplan");
157+
158+
const expectedForesporselRequest: NewOppfolgingsplanForesporselDTO = {
159+
arbeidstakerPersonident: ARBEIDSTAKER_DEFAULT.personIdent,
160+
virksomhetsnummer: VIRKSOMHET_PONTYPANDY.virksomhetsnummer,
161+
narmestelederPersonident:
162+
LEDERE_DEFAULT[0].narmesteLederPersonIdentNumber,
163+
document: getExpectedForesporselDocument({
164+
narmesteLeder: LEDERE_DEFAULT[0].narmesteLederNavn,
165+
virksomhetNavn: VIRKSOMHET_PONTYPANDY.virksomhetsnavn,
166+
}),
167+
};
168+
169+
await waitFor(() => {
170+
const foresporselMutation = queryClient
171+
.getMutationCache()
172+
.getAll()
173+
.pop();
174+
expect(foresporselMutation?.state.variables).to.deep.equal(
175+
expectedForesporselRequest
176+
);
177+
});
178+
});
151179
});
152180
});
153181

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import {
2+
DocumentComponentDto,
3+
DocumentComponentType,
4+
} from "@/data/documentcomponent/documentComponentTypes";
5+
import { tilLesbarDatoMedArstall } from "@/utils/datoUtils";
6+
import { ForesporselDocumentValues } from "@/hooks/oppfolgingsplan/useOppfolgingsplanForesporselDocument";
7+
import {
8+
ARBEIDSTAKER_DEFAULT,
9+
ARBEIDSTAKER_DEFAULT_FULL_NAME,
10+
} from "@/mocks/common/mockConstants";
11+
12+
export const getExpectedForesporselDocument = ({
13+
narmesteLeder,
14+
virksomhetNavn,
15+
}: ForesporselDocumentValues): DocumentComponentDto[] => {
16+
return [
17+
{
18+
texts: ["Nav ber om oppfølgingsplan fra arbeidsgiver"],
19+
type: DocumentComponentType.HEADER_H1,
20+
},
21+
{
22+
texts: [`Dato sendt: ${tilLesbarDatoMedArstall(new Date())}`],
23+
type: DocumentComponentType.PARAGRAPH,
24+
},
25+
{
26+
texts: [
27+
`Gjelder ${ARBEIDSTAKER_DEFAULT_FULL_NAME}, f.nr. ${ARBEIDSTAKER_DEFAULT.personIdent}`,
28+
],
29+
type: DocumentComponentType.PARAGRAPH,
30+
},
31+
{
32+
texts: [`Mottaker: ${narmesteLeder}, ${virksomhetNavn}`],
33+
type: DocumentComponentType.PARAGRAPH,
34+
},
35+
{
36+
texts: ["Hei,"],
37+
type: DocumentComponentType.PARAGRAPH,
38+
},
39+
{
40+
texts: [
41+
"Nav ber om at du sender inn oppfølgingsplan for en av dine ansatte som er sykmeldt.",
42+
'Logg inn på "Min side - arbeidsgiver". Klikk på varselet i "bjella" for å se hvem det gjelder.',
43+
],
44+
type: DocumentComponentType.PARAGRAPH,
45+
},
46+
{
47+
texts: ["Har du spørsmål, kan du kontakte oss på 55 55 33 36."],
48+
type: DocumentComponentType.PARAGRAPH,
49+
},
50+
{
51+
texts: ["Vennlig hilsen Nav."],
52+
type: DocumentComponentType.PARAGRAPH,
53+
},
54+
{
55+
texts: ["Du kan ikke svare på denne meldingen."],
56+
type: DocumentComponentType.PARAGRAPH,
57+
},
58+
];
59+
};

0 commit comments

Comments
 (0)