Skip to content

Commit

Permalink
IS-2998: Add document for oppfolgingsplan foresporsel
Browse files Browse the repository at this point in the history
  • Loading branch information
eirikdahlen committed Jan 27, 2025
1 parent eddf300 commit 3d0415a
Show file tree
Hide file tree
Showing 4 changed files with 156 additions and 4 deletions.
61 changes: 61 additions & 0 deletions src/hooks/oppfolgingsplan/useOppfolgingsplanForesporselDocument.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import { useDocumentComponents } from "@/hooks/useDocumentComponents";
import { DocumentComponentDto } from "@/data/documentcomponent/documentComponentTypes";
import {
createHeaderH1,
createParagraph,
} from "@/utils/documentComponentUtils";
import { tilLesbarDatoMedArstall } from "@/utils/datoUtils";

export type ForesporselDocumentValues = {
narmesteLeder: string;
virksomhetNavn: string;
};

export function useOppfolgingsplanForesporselDocument() {
const { getIntroGjelder } = useDocumentComponents();

function getForesporselDocument(
values: ForesporselDocumentValues
): DocumentComponentDto[] {
return [
createHeaderH1(oppfolgingsplanForesporselTexts.title),
createParagraph(oppfolgingsplanForesporselTexts.dato),
getIntroGjelder(),
createParagraph(
oppfolgingsplanForesporselTexts.mottaker(
values.narmesteLeder,
values.virksomhetNavn
)
),
createParagraph(oppfolgingsplanForesporselTexts.body.hei),
createParagraph(
oppfolgingsplanForesporselTexts.body.info1,
oppfolgingsplanForesporselTexts.body.info2
),
createParagraph(oppfolgingsplanForesporselTexts.body.kontakt),
createParagraph(oppfolgingsplanForesporselTexts.hilsen),
createParagraph(oppfolgingsplanForesporselTexts.ikkeSvar),
];
}

return {
getForesporselDocument,
};
}

const oppfolgingsplanForesporselTexts = {
title: "Nav ber om oppfølgingsplan fra arbeidsgiver",
dato: `Dato sendt: ${tilLesbarDatoMedArstall(new Date())}`,
mottaker: (narmesteLeder: string, virksomhetNavn: string) =>
`Mottaker: ${narmesteLeder}, ${virksomhetNavn}`,
body: {
hei: "Hei,",
info1:
"Nav ber om at du sender inn oppfølgingsplan for en av dine ansatte som er sykmeldt.",
info2:
"Logg inn på 'Min side - arbeidsgiver'. I 'bjella' ser du hvem det gjelder.",
kontakt: "Har du spørsmål, kan du kontakte oss på 55 55 33 36.",
},
hilsen: "Vennlig hilsen Nav",
ikkeSvar: "Du kan ikke svare på denne meldingen.",
};
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import {
useGetOppfolgingsplanForesporselQuery,
usePostOppfolgingsplanForesporsel,
} from "@/data/oppfolgingsplan/oppfolgingsplanForesporselHooks";
import { useOppfolgingsplanForesporselDocument } from "@/hooks/oppfolgingsplan/useOppfolgingsplanForesporselDocument";

const texts = {
header: "Be om oppfølgingsplan fra arbeidsgiver",
Expand Down Expand Up @@ -51,16 +52,19 @@ export default function BeOmOppfolgingsplan({
}: Props) {
const personident = useValgtPersonident();
const getOppfolgingsplanForesporsel = useGetOppfolgingsplanForesporselQuery();

const postOppfolgingsplanForesporsel = usePostOppfolgingsplanForesporsel();
const { getForesporselDocument } = useOppfolgingsplanForesporselDocument();

function onClick() {
const foresporsel: NewOppfolgingsplanForesporselDTO = {
arbeidstakerPersonident: personident,
virksomhetsnummer: aktivNarmesteLeder.virksomhetsnummer,
narmestelederPersonident:
aktivNarmesteLeder.narmesteLederPersonIdentNumber,
document: [],
document: getForesporselDocument({
narmesteLeder: aktivNarmesteLeder.narmesteLederNavn,
virksomhetNavn: aktivNarmesteLeder.virksomhetsnavn,
}),
};
postOppfolgingsplanForesporsel.mutate(foresporsel, {
onSuccess: () => logOppfolgingsplanForesporselEvent(),
Expand Down
32 changes: 30 additions & 2 deletions test/sider/oppfolgingsplaner/OppfolgingsplanerOversiktTest.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
queryClientWithAktivBruker,
queryClientWithMockData,
} from "../../testQueryClient";
import { render, screen, within } from "@testing-library/react";
import { render, screen, waitFor, within } from "@testing-library/react";
import { ValgtEnhetContext } from "@/context/ValgtEnhetContext";
import { navEnhet } from "../../dialogmote/testData";
import React from "react";
Expand All @@ -25,8 +25,10 @@ import { restdatoTilLesbarDato } from "@/utils/datoUtils";
import { generateUUID } from "@/utils/utils";
import { oppfolgingstilfellePersonQueryKeys } from "@/data/oppfolgingstilfelle/person/oppfolgingstilfellePersonQueryHooks";
import { generateOppfolgingstilfelle } from "../../testDataUtils";
import { daysFromToday } from "../../testUtils";
import { clickButton, daysFromToday } from "../../testUtils";
import { ledereQueryKeys } from "@/data/leder/ledereQueryHooks";
import { NewOppfolgingsplanForesporselDTO } from "@/data/oppfolgingsplan/oppfolgingsplanForesporselHooks";
import { getExpectedForesporselDocument } from "./oppfolgingsplanTestdata";

let queryClient: QueryClient;

Expand Down Expand Up @@ -148,6 +150,32 @@ describe("Oppfølgingsplaner visning", () => {
expect(screen.getByRole("button", { name: "Be om oppfølgingsplan" })).to
.exist;
});
it("Sender forespørsel om oppfølgingsplan med document", async () => {
renderOppfolgingsplanerOversikt([]);

await clickButton("Be om oppfølgingsplan");

const expectedForesporselRequest: NewOppfolgingsplanForesporselDTO = {
arbeidstakerPersonident: ARBEIDSTAKER_DEFAULT.personIdent,
virksomhetsnummer: VIRKSOMHET_PONTYPANDY.virksomhetsnummer,
narmestelederPersonident:
LEDERE_DEFAULT[0].narmesteLederPersonIdentNumber,
document: getExpectedForesporselDocument({
narmesteLeder: LEDERE_DEFAULT[0].narmesteLederNavn,
virksomhetNavn: VIRKSOMHET_PONTYPANDY.virksomhetsnavn,
}),
};

await waitFor(() => {
const foresporselMutation = queryClient
.getMutationCache()
.getAll()
.pop();
expect(foresporselMutation?.state.variables).to.deep.equal(
expectedForesporselRequest
);
});
});
});
});

Expand Down
59 changes: 59 additions & 0 deletions test/sider/oppfolgingsplaner/oppfolgingsplanTestdata.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import {
DocumentComponentDto,
DocumentComponentType,
} from "@/data/documentcomponent/documentComponentTypes";
import { tilLesbarDatoMedArstall } from "@/utils/datoUtils";
import { ForesporselDocumentValues } from "@/hooks/oppfolgingsplan/useOppfolgingsplanForesporselDocument";
import {
ARBEIDSTAKER_DEFAULT,
ARBEIDSTAKER_DEFAULT_FULL_NAME,
} from "@/mocks/common/mockConstants";

export const getExpectedForesporselDocument = ({
narmesteLeder,
virksomhetNavn,
}: ForesporselDocumentValues): DocumentComponentDto[] => {
return [
{
texts: ["Nav ber om oppfølgingsplan fra arbeidsgiver"],
type: DocumentComponentType.HEADER_H1,
},
{
texts: [`Dato sendt: ${tilLesbarDatoMedArstall(new Date())}`],
type: DocumentComponentType.PARAGRAPH,
},
{
texts: [
`Gjelder ${ARBEIDSTAKER_DEFAULT_FULL_NAME}, f.nr. ${ARBEIDSTAKER_DEFAULT.personIdent}`,
],
type: DocumentComponentType.PARAGRAPH,
},
{
texts: [`Mottaker: ${narmesteLeder}, ${virksomhetNavn}`],
type: DocumentComponentType.PARAGRAPH,
},
{
texts: ["Hei,"],
type: DocumentComponentType.PARAGRAPH,
},
{
texts: [
"Nav ber om at du sender inn oppfølgingsplan for en av dine ansatte som er sykmeldt.",
"Logg inn på 'Min side - arbeidsgiver'. I 'bjella' ser du hvem det gjelder.",
],
type: DocumentComponentType.PARAGRAPH,
},
{
texts: ["Har du spørsmål, kan du kontakte oss på 55 55 33 36."],
type: DocumentComponentType.PARAGRAPH,
},
{
texts: ["Vennlig hilsen Nav"],
type: DocumentComponentType.PARAGRAPH,
},
{
texts: ["Du kan ikke svare på denne meldingen."],
type: DocumentComponentType.PARAGRAPH,
},
];
};

0 comments on commit 3d0415a

Please sign in to comment.