Skip to content

Commit

Permalink
Fix text and tests
Browse files Browse the repository at this point in the history
  • Loading branch information
andersrognstad committed Sep 23, 2024
1 parent c877b5f commit 0f26046
Show file tree
Hide file tree
Showing 3 changed files with 126 additions and 107 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ const lastVurderingText = (vurderinger: VurderingResponseDTO[]) => {

return `Forrige forhåndsvarsel på § 8-8 ble sendt ut ${tilLesbarDatoMedArUtenManedNavn(
lastForhandsvarsel?.createdAt
)} og ${lastVurderingType} ${tilLesbarDatoMedArUtenManedNavn(
)} og det ble vurdert ${lastVurderingType} ${tilLesbarDatoMedArUtenManedNavn(
lastVurdering?.createdAt
)}.`;
};
Expand Down
153 changes: 125 additions & 28 deletions test/manglendemedvirkning/ForhandsvarselTest.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,14 @@ import { beforeEach, describe, expect, it } from "vitest";
import { manglendeMedvirkningPath } from "@/routers/AppRouter";
import { screen, waitFor } from "@testing-library/react";
import { changeTextInput, clickButton, getTextInput } from "../testUtils";
import { addDays } from "@/utils/datoUtils";
import {
addDays,
addWeeks,
tilLesbarDatoMedArUtenManedNavn,
} from "@/utils/datoUtils";
import {
NewForhandsvarselVurderingRequestDTO,
VurderingResponseDTO,
VurderingType,
} from "@/data/manglendemedvirkning/manglendeMedvirkningTypes";
import { ARBEIDSTAKER_DEFAULT } from "../../mock/common/mockConstants";
Expand All @@ -17,6 +22,9 @@ import { navEnhet } from "../dialogmote/testData";
import { NotificationProvider } from "@/context/notification/NotificationContext";
import ForhandsvarselSkjema from "@/sider/manglendemedvirkning/forhandsvarsel/ForhandsvarselSkjema";
import { queryClientWithMockData } from "../testQueryClient";
import { defaultForhandsvarselVurdering } from "./manglendeMedvirkningTestData";
import { generateUUID } from "@/utils/uuidUtils";
import ForhandsvarselSendt from "@/sider/manglendemedvirkning/forhandsvarsel/ForhandsvarselSendt";

let queryClient: QueryClient;

Expand All @@ -36,48 +44,137 @@ const renderForhandsvarselSkjema = () => {
);
};

const renderForhandsvarselSendt = (forhandsvarsel: VurderingResponseDTO) => {
return renderWithRouter(
<QueryClientProvider client={queryClient}>
<ValgtEnhetContext.Provider
value={{ valgtEnhet: navEnhet.id, setValgtEnhet: () => void 0 }}
>
<NotificationProvider>
<ForhandsvarselSendt forhandsvarsel={forhandsvarsel} />
</NotificationProvider>
</ValgtEnhetContext.Provider>
</QueryClientProvider>,
manglendeMedvirkningPath,
[manglendeMedvirkningPath]
);
};

describe("Manglendemedvirkning Forhandsvarsel", () => {
beforeEach(() => {
queryClient = queryClientWithMockData();
});

it("viser feil når man sender forhåndsvarsel uten å ha skrevet begrunnelse", async () => {
renderForhandsvarselSkjema();
describe("ForhandsvarselSkjema", () => {
it("viser feil når man sender forhåndsvarsel uten å ha skrevet begrunnelse", async () => {
renderForhandsvarselSkjema();

await clickButton("Send");
await clickButton("Send");

expect(await screen.findByText("Vennligst angi begrunnelse")).to.exist;
});
expect(await screen.findByText("Vennligst angi begrunnelse")).to.exist;
});

it("skal sende forhandsvarsel med riktige verdier", async () => {
renderForhandsvarselSkjema();
it("skal sende forhandsvarsel med riktige verdier", async () => {
renderForhandsvarselSkjema();

const varselSvarfrist = addDays(new Date(), 1);
const begrunnelse = "En begrunnelse";
const varselSvarfrist = addDays(new Date(), 1);
const begrunnelse = "En begrunnelse";

const begrunnelseInput = getTextInput("Begrunnelse (obligatorisk)");
changeTextInput(begrunnelseInput, begrunnelse);
const begrunnelseInput = getTextInput("Begrunnelse (obligatorisk)");
changeTextInput(begrunnelseInput, begrunnelse);

await clickButton("Send");
await clickButton("Send");

const expectedRequestBody: NewForhandsvarselVurderingRequestDTO = {
personident: ARBEIDSTAKER_DEFAULT.personIdent,
vurderingType: VurderingType.FORHANDSVARSEL,
begrunnelse: begrunnelse,
document: getSendForhandsvarselDocument(begrunnelse, varselSvarfrist),
varselSvarfrist: varselSvarfrist,
};
const expectedRequestBody: NewForhandsvarselVurderingRequestDTO = {
personident: ARBEIDSTAKER_DEFAULT.personIdent,
vurderingType: VurderingType.FORHANDSVARSEL,
begrunnelse: begrunnelse,
document: getSendForhandsvarselDocument(begrunnelse, varselSvarfrist),
varselSvarfrist: varselSvarfrist,
};

await waitFor(() => {
const vurderingMutation = queryClient.getMutationCache().getAll().pop();
await waitFor(() => {
const vurderingMutation = queryClient.getMutationCache().getAll().pop();

// Ikke deep.equal fordi varselSvarfrist blir ulik på millisekund-nivå
expect(vurderingMutation?.state.variables).to.deep.include({
personident: expectedRequestBody.personident,
vurderingType: expectedRequestBody.vurderingType,
begrunnelse: expectedRequestBody.begrunnelse,
document: expectedRequestBody.document,
// Ikke deep.equal fordi varselSvarfrist blir ulik på millisekund-nivå
expect(vurderingMutation?.state.variables).to.deep.include({
personident: expectedRequestBody.personident,
vurderingType: expectedRequestBody.vurderingType,
begrunnelse: expectedRequestBody.begrunnelse,
document: expectedRequestBody.document,
});
});
});
});

describe("ForhandsvarselSendt", () => {
it("viser ForhandsvarselBeforeDeadline når svarfrist ikke utgått", () => {
renderForhandsvarselSendt(defaultForhandsvarselVurdering);

expect(
screen.getByText(
`Forhåndsvarselet er sendt ${tilLesbarDatoMedArUtenManedNavn(
new Date()
)}.`
)
).to.exist;
expect(screen.getByText("Venter på svar fra bruker")).to.exist;
expect(screen.getByText("Fristen går ut:")).to.exist;
expect(
screen.getByText(
"Dersom du har mottatt nye opplysninger og vurdert at bruker likevel oppfyller § 8-8, klikker du på Oppfylt-knappen."
)
).to.exist;
expect(
screen.getByText(
"Velg Ikke aktuell-knappen dersom personen har blitt friskmeldt etter at forhåndsvarselet ble sendt ut, eller av andre årsaker ikke er aktuell."
)
).to.exist;
expect(screen.getByText("Du kan ikke stanse før fristen er gått ut.")).to
.exist;
expect(screen.getByRole("img", { name: "klokkeikon" })).to.exist;
expect(
screen.getByRole("button", { name: "Innstilling om stans" })
).to.have.property("disabled", true);
expect(screen.getByRole("button", { name: "Oppfylt" })).to.exist;
expect(screen.getByRole("button", { name: "Ikke aktuell" })).to.exist;
});

it("viser ForhandsvarselAfterDeadline når svarfrist er utgått", () => {
const createdAt = addWeeks(new Date(), -3);
const svarfrist = addDays(new Date(), -1);
const forhandsvarselAfterFrist: VurderingResponseDTO = {
...defaultForhandsvarselVurdering,
createdAt: createdAt,
varsel: {
uuid: generateUUID(),
createdAt: createdAt,
svarfrist: svarfrist,
},
};
renderForhandsvarselSendt(forhandsvarselAfterFrist);

expect(screen.getByText("Fristen er gått ut")).to.exist;
expect(screen.getByText("Fristen var:")).to.exist;
expect(screen.getByText(tilLesbarDatoMedArUtenManedNavn(svarfrist))).to
.exist;
expect(screen.getByRole("img", { name: "bjelleikon" })).to.exist;
expect(
screen.getByText(
`Fristen for forhåndsvarselet som ble sendt ut ${tilLesbarDatoMedArUtenManedNavn(
createdAt
)} er gått ut. Trykk på Innstilling om stans-knappen hvis vilkårene i § 8-8 ikke er oppfylt og rett til videre sykepenger skal stanses.`
)
).to.exist;
expect(
screen.getByText(
"Velg Ikke aktuell-knappen dersom personen har blitt friskmeldt etter at forhåndsvarselet ble sendt ut, eller av andre årsaker ikke er aktuell."
)
).to.exist;
expect(screen.getByRole("button", { name: "Innstilling om stans" })).to
.exist;
expect(screen.getByRole("button", { name: "Oppfylt" })).to.exist;
expect(screen.getByRole("button", { name: "Ikke aktuell" })).to.exist;
});
});
});
78 changes: 0 additions & 78 deletions test/manglendemedvirkning/ManglendeMedvirkningTest.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,10 @@ import {
VurderingResponseDTO,
VurderingType,
} from "@/data/manglendemedvirkning/manglendeMedvirkningTypes";
import {
addDays,
addWeeks,
tilLesbarDatoMedArUtenManedNavn,
} from "@/utils/datoUtils";
import { NotificationProvider } from "@/context/notification/NotificationContext";
import { renderWithRouter } from "../testRouterUtils";
import { manglendeMedvirkningPath } from "@/routers/AppRouter";
import ManglendeMedvirkning from "@/sider/manglendemedvirkning/ManglendeMedvirkning";
import { generateUUID } from "@/utils/uuidUtils";
import {
createManglendeMedvirkningVurdering,
defaultForhandsvarselVurdering,
Expand Down Expand Up @@ -147,85 +141,13 @@ describe("Manglendemedvirkning", () => {
expect(screen.getByRole("button", { name: "Send" })).to.exist;
expect(screen.getByRole("button", { name: "Forhåndsvisning" })).to.exist;
});
});

describe("ForhandsvarselSendt", () => {
it("viser ikke ny vurdering-knapp når forhåndsvarsel sendt", () => {
mockVurdering([defaultForhandsvarselVurdering]);
renderManglendeMedvirkning();

expect(screen.queryByRole("button", { name: nyVurderingButtonText })).to
.not.exist;
});
it("viser ForhandsvarselBeforeDeadline når svarfrist ikke utgått", () => {
mockVurdering([defaultForhandsvarselVurdering]);
renderManglendeMedvirkning();

expect(
screen.getByText(
`Forhåndsvarselet er sendt ${tilLesbarDatoMedArUtenManedNavn(
new Date()
)}.`
)
).to.exist;
expect(screen.getByText("Venter på svar fra bruker")).to.exist;
expect(screen.getByText("Fristen går ut:")).to.exist;
expect(
screen.getByText(
"Dersom du har mottatt nye opplysninger og vurdert at bruker likevel oppfyller § 8-8, klikker du på Oppfylt-knappen."
)
).to.exist;
expect(
screen.getByText(
"Velg Ikke aktuell-knappen dersom personen har blitt friskmeldt etter at forhåndsvarselet ble sendt ut, eller av andre årsaker ikke er aktuell."
)
).to.exist;
expect(screen.getByText("Du kan ikke stanse før fristen er gått ut.")).to
.exist;
expect(screen.getByRole("img", { name: "klokkeikon" })).to.exist;
expect(
screen.getByRole("button", { name: "Innstilling om stans" })
).to.have.property("disabled", true);
expect(screen.getByRole("button", { name: "Oppfylt" })).to.exist;
expect(screen.getByRole("button", { name: "Ikke aktuell" })).to.exist;
});

it("viser ForhandsvarselAfterDeadline når svarfrist er utgått", () => {
const createdAt = addWeeks(new Date(), -3);
const svarfrist = addDays(new Date(), -1);
const forhandsvarselAfterFrist: VurderingResponseDTO = {
...defaultForhandsvarselVurdering,
createdAt: createdAt,
varsel: {
uuid: generateUUID(),
createdAt: createdAt,
svarfrist: svarfrist,
},
};
mockVurdering([forhandsvarselAfterFrist]);
renderManglendeMedvirkning();

expect(screen.getByText("Fristen er gått ut")).to.exist;
expect(screen.getByText("Fristen var:")).to.exist;
expect(screen.getByText(tilLesbarDatoMedArUtenManedNavn(svarfrist))).to
.exist;
expect(screen.getByRole("img", { name: "bjelleikon" })).to.exist;
expect(
screen.getByText(
`Fristen for forhåndsvarselet som ble sendt ut ${tilLesbarDatoMedArUtenManedNavn(
createdAt
)} er gått ut. Trykk på Innstilling om stans-knappen hvis vilkårene i § 8-8 ikke er oppfylt og rett til videre sykepenger skal stanses.`
)
).to.exist;
expect(
screen.getByText(
"Velg Ikke aktuell-knappen dersom personen har blitt friskmeldt etter at forhåndsvarselet ble sendt ut, eller av andre årsaker ikke er aktuell."
)
).to.exist;
expect(screen.getByRole("button", { name: "Innstilling om stans" })).to
.exist;
expect(screen.getByRole("button", { name: "Oppfylt" })).to.exist;
expect(screen.getByRole("button", { name: "Ikke aktuell" })).to.exist;
});
});
});

0 comments on commit 0f26046

Please sign in to comment.