Skip to content
This repository has been archived by the owner on Oct 24, 2023. It is now read-only.

Commit

Permalink
La til test for metrikkutsendelse ved print-klikk.
Browse files Browse the repository at this point in the history
Flyttet testen for autoutsendelse til samme fil.
  • Loading branch information
sstensby committed Aug 9, 2023
1 parent 6ef41cb commit b27b356
Show file tree
Hide file tree
Showing 5 changed files with 102 additions and 71 deletions.
2 changes: 2 additions & 0 deletions src/Forside/Forside.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import { PubliseringsdatoOppdateringsinfo } from './PubliseringsdatoOppdaterings
export const Forside: FunctionComponent<SykefraværAppData> = (appData) => {
const orgnr = useOrgnr() || '';
const harFeil = appData.aggregertStatistikk.restStatus === RestStatus.Feil;
const { skalSendeMetrikkerAutomatisk = true } = appData; // Vi må kunne disable autoutsending for å teste utsending ved print-klikk (src/Metrikker.test.tsx)

const brukerHarIaRettighetTilValgtBedrift =
appData.altinnOrganisasjonerMedStatistikktilgang.status === RestStatus.Suksess &&
Expand Down Expand Up @@ -170,6 +171,7 @@ export const Forside: FunctionComponent<SykefraværAppData> = (appData) => {
/>
<SlikHarViKommetFramTilDittResultat />
<Sammenligningspaneler
skalSendeMetrikkerAutomatisk={skalSendeMetrikkerAutomatisk}
aggregertStatistikk={appData.aggregertStatistikk}
orgnr={orgnr}
/>
Expand Down
69 changes: 0 additions & 69 deletions src/Forside/Sammenligningspaneler/Sammenligningspaneler.test.tsx

This file was deleted.

13 changes: 11 additions & 2 deletions src/Forside/Sammenligningspaneler/Sammenligningspaneler.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,20 @@ import { sendIaTjenesteMetrikkMottatt } from '../../metrikker/iatjenester';
interface Props {
aggregertStatistikk: RestAggregertStatistikk;
orgnr: string;
skalSendeMetrikkerAutomatisk?: boolean;
}

export const Sammenligningspaneler: FunctionComponent<Props> = ({ aggregertStatistikk, orgnr }) => {
export const Sammenligningspaneler: FunctionComponent<Props> = ({
aggregertStatistikk,
orgnr,
skalSendeMetrikkerAutomatisk = true,
}) => {
useEffect(() => {
const timer = setTimeout(() => sendIaTjenesteMetrikkMottatt(orgnr), 5000);
const timer = setTimeout(() => {
if (skalSendeMetrikkerAutomatisk) {
sendIaTjenesteMetrikkMottatt(orgnr);
}
}, 5000);
return () => clearTimeout(timer);
}, [orgnr]);

Expand Down
88 changes: 88 additions & 0 deletions src/Metrikker.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import { MockResizeObserver } from '../jest/MockResizeObserver';
import { render, screen, fireEvent, waitFor } from '@testing-library/react';
import React from 'react';
import { mockAllDatahentingStatusOk } from './api/mockedApiResponses/use-analytics-test-mocks';
import { BrowserRouter } from 'react-router-dom';
import { Forside } from './Forside/Forside';
import { RestRessurs, RestStatus } from './api/api-utils';
import { AltinnOrganisasjon } from './api/altinnorganisasjon-api';
import { fleskOgFisk, heiOgHåBarnehage } from './api/mockedApiResponses/altinn-mock';
import * as hooks from './hooks/useOrgnr';
import * as metrikker from './metrikker/iatjenester';
import { act } from 'react-dom/test-utils';

describe('Metrikkutsendelser', () => {
const MockObserver = new MockResizeObserver();
let spy: jest.SpyInstance;

beforeEach(() => {
MockObserver.startmock();
const valgtBedriftMedSykefraværsstatistikkRettigheter =
heiOgHåBarnehage[0].OrganizationNumber;
jest.spyOn(hooks, 'useOrgnr').mockReturnValue(
valgtBedriftMedSykefraværsstatistikkRettigheter
);
spy = jest.spyOn(metrikker, 'sendIaTjenesteMetrikkMottatt');
});

afterEach(() => {
MockObserver.stopmock();
jest.resetAllMocks();
});

const altinnOrganisasjoner: RestRessurs<AltinnOrganisasjon[]> = {
status: RestStatus.Suksess,
data: [...fleskOgFisk, ...heiOgHåBarnehage],
};

const altinnOrganisasjonerMedStatistikktilgang: RestRessurs<AltinnOrganisasjon[]> = {
status: RestStatus.Suksess,
data: heiOgHåBarnehage,
};

const mockAppData = {
...mockAllDatahentingStatusOk,
altinnOrganisasjonerMedStatistikktilgang,
altinnOrganisasjoner,
};

function renderForside(skalSendeMetrikkerAutomatisk = true) {
return render(
<BrowserRouter>
<Forside
{...mockAppData}
skalSendeMetrikkerAutomatisk={skalSendeMetrikkerAutomatisk}
/>
</BrowserRouter>
);
}
it('Sender ia-tjenestermetrikk etter ca. 5 sekunder', async () => {
jest.useFakeTimers();

renderForside();

expect(spy).not.toHaveBeenCalled();

act(() => {
jest.advanceTimersByTime(7000);
});

expect(spy).toHaveBeenCalled();
jest.useRealTimers();
});

it('Sender ia-tjenestermetrikk ved print-klikk', async () => {
renderForside(false);

const knapp = screen.getByText('Last ned');

expect(knapp).toBeDefined();

expect(spy).not.toHaveBeenCalled();

fireEvent.click(knapp);
await waitFor(() => {
expect(spy).toHaveBeenCalled();
});
});
});
1 change: 1 addition & 0 deletions src/hooks/useSykefraværAppData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ export interface SykefraværAppData {
sykefraværshistorikk: RestSykefraværshistorikk;
aggregertStatistikk: RestAggregertStatistikk;
publiseringsdatoer: RestPubliseringsdatoer<Publiseringsdatoer>;
skalSendeMetrikkerAutomatisk?: boolean;
}

export function useSykefraværAppData(): SykefraværAppData {
Expand Down

0 comments on commit b27b356

Please sign in to comment.