From 5d7df4ad0e97e26f019a0b13698288b18b4f5a16 Mon Sep 17 00:00:00 2001 From: Ken Gullaksen Date: Thu, 31 Oct 2024 07:45:19 +0100 Subject: [PATCH] rydd opp og skriv om demodata MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nå er demo resolverne ganske funksjonelle og scenarioene satt opp med realistiske data. scenarioene plukker ut data basert på merkelapp. --- src/Pages/Hovedside/Kalenderavtaler.css | 2 +- src/Pages/LoginBoundary.tsx | 2 +- .../OrganisasjonerOgTilgangerProvider.tsx | 2 +- src/hooks/useDemoprofil.ts | 3 + src/{Pages => hooks}/useUserInfo.ts | 2 +- src/mocks/brukerApi/alleKalenderavtaler.ts | 53 ++ src/mocks/brukerApi/alleMerkelapper.ts | 19 + src/mocks/brukerApi/alleNotifikasjoner.ts | 44 ++ src/mocks/brukerApi/alleSaker.ts | 279 ++++++++++ .../helpers.ts} | 113 +++- src/mocks/brukerApi/resolvers.ts | 76 +++ src/mocks/handlers.ts | 234 +++++++- src/mocks/handlers/altinnTilgangHandler.ts | 44 -- src/mocks/handlers/arbeidsforholdHandler.ts | 10 - src/mocks/handlers/brukerApiHandler.ts | 522 ------------------ src/mocks/handlers/eregHandler.ts | 117 ---- src/mocks/handlers/kontaktinfoHandler.ts | 5 +- .../handlers/kontonummerStatusHandler.ts | 15 - src/mocks/handlers/pamHandler.ts | 18 - .../handlers/presenterteKandidaterHandler.ts | 16 - src/mocks/handlers/storageHandler.ts | 1 - .../handlers/sykefrav\303\246rHandler.ts" | 19 - .../handlers/tiltaksgjennomforingHandler.ts | 79 --- src/mocks/handlers/userInfoHandler.ts | 205 ------- src/mocks/handlers/varslingStatusHandler.ts | 9 - src/mocks/scenarios.ts | 2 +- src/mocks/scenarios/dagligLederScenario.ts | 207 +++++-- .../n\303\246rmesteLederScenario.ts" | 108 ++-- src/mocks/scenarios/regnskapsforerScenario.ts | 162 +++--- src/tests/mocks.ts | 2 +- vitest.config.ts | 13 + 31 files changed, 1070 insertions(+), 1313 deletions(-) rename src/{Pages => hooks}/useUserInfo.ts (98%) create mode 100644 src/mocks/brukerApi/alleKalenderavtaler.ts create mode 100644 src/mocks/brukerApi/alleMerkelapper.ts create mode 100644 src/mocks/brukerApi/alleNotifikasjoner.ts create mode 100644 src/mocks/brukerApi/alleSaker.ts rename src/mocks/{faker/brukerApiHelpers.ts => brukerApi/helpers.ts} (76%) create mode 100644 src/mocks/brukerApi/resolvers.ts delete mode 100644 src/mocks/handlers/altinnTilgangHandler.ts delete mode 100644 src/mocks/handlers/arbeidsforholdHandler.ts delete mode 100644 src/mocks/handlers/brukerApiHandler.ts delete mode 100644 src/mocks/handlers/eregHandler.ts delete mode 100644 src/mocks/handlers/kontonummerStatusHandler.ts delete mode 100644 src/mocks/handlers/pamHandler.ts delete mode 100644 src/mocks/handlers/presenterteKandidaterHandler.ts delete mode 100644 "src/mocks/handlers/sykefrav\303\246rHandler.ts" delete mode 100644 src/mocks/handlers/tiltaksgjennomforingHandler.ts delete mode 100644 src/mocks/handlers/userInfoHandler.ts delete mode 100644 src/mocks/handlers/varslingStatusHandler.ts diff --git a/src/Pages/Hovedside/Kalenderavtaler.css b/src/Pages/Hovedside/Kalenderavtaler.css index a612d23d9..9e4cae859 100644 --- a/src/Pages/Hovedside/Kalenderavtaler.css +++ b/src/Pages/Hovedside/Kalenderavtaler.css @@ -50,7 +50,7 @@ .kalenderavtale_tidspunkt { grid-area: tidspunkt; - font-size: 2.350rem; + font-size: 2rem; } diff --git a/src/Pages/LoginBoundary.tsx b/src/Pages/LoginBoundary.tsx index 28a78a3fb..6b9543bbd 100644 --- a/src/Pages/LoginBoundary.tsx +++ b/src/Pages/LoginBoundary.tsx @@ -1,6 +1,6 @@ import React, { FunctionComponent, PropsWithChildren } from 'react'; import { SimpleBanner, SpinnerMedBanner } from './Banner'; -import { useUserInfo } from './useUserInfo'; +import { useUserInfo } from '../hooks/useUserInfo'; import { Alert } from '@navikt/ds-react'; export const LoginBoundary: FunctionComponent = (props) => { diff --git a/src/Pages/OrganisasjonerOgTilgangerProvider.tsx b/src/Pages/OrganisasjonerOgTilgangerProvider.tsx index 3bd736cb7..dbfb4c677 100644 --- a/src/Pages/OrganisasjonerOgTilgangerProvider.tsx +++ b/src/Pages/OrganisasjonerOgTilgangerProvider.tsx @@ -8,7 +8,7 @@ import { AlertContext } from './Alerts'; import { byggOrganisasjonstre } from './ByggOrganisasjonstre'; import { useEffectfulAsyncFunction } from '../hooks/useValueFromEffect'; import { Map, Set } from 'immutable'; -import { useUserInfo } from './useUserInfo'; +import { useUserInfo } from '../hooks/useUserInfo'; import { ManglerTilganger } from './ManglerTilganger/ManglerTilganger'; import { SpinnerMedBanner } from './Banner'; diff --git a/src/hooks/useDemoprofil.ts b/src/hooks/useDemoprofil.ts index ce404564c..47bd5a424 100644 --- a/src/hooks/useDemoprofil.ts +++ b/src/hooks/useDemoprofil.ts @@ -26,6 +26,9 @@ export const useDemoprofil: () => { const setDemoprofil = (demoprofil: Demoprofil) => { const url = new URL(window.location.href); url.searchParams.set('demoprofil', demoprofil); + if (!url.pathname.endsWith('/')) { + url.pathname += '/'; + } window.location.replace(url.toString()); }; diff --git a/src/Pages/useUserInfo.ts b/src/hooks/useUserInfo.ts similarity index 98% rename from src/Pages/useUserInfo.ts rename to src/hooks/useUserInfo.ts index 2f69a6a81..5fe8ec221 100644 --- a/src/Pages/useUserInfo.ts +++ b/src/hooks/useUserInfo.ts @@ -41,7 +41,7 @@ const BaseAltinnTilgang = z.object({ name: z.string(), organizationForm: z.string(), }); -type AltinnTilgang = z.infer & { +export type AltinnTilgang = z.infer & { underenheter: AltinnTilgang[]; }; const AltinnTilgang: z.ZodType = BaseAltinnTilgang.extend({ diff --git a/src/mocks/brukerApi/alleKalenderavtaler.ts b/src/mocks/brukerApi/alleKalenderavtaler.ts new file mode 100644 index 000000000..9904e8119 --- /dev/null +++ b/src/mocks/brukerApi/alleKalenderavtaler.ts @@ -0,0 +1,53 @@ +import { KalenderavtaleTilstand } from '../../api/graphql-types'; +import { fakerNB_NO as faker } from '@faker-js/faker'; +import { dateInFuture, kalenderavtale } from './helpers'; + +export const alleKalenderavtaler = [ + kalenderavtale({ + tekst: `Dialogmøte ${faker.person.fullName()}`, + startTidspunkt: dateInFuture({ days: 1 }), + sluttTidspunkt: dateInFuture({ days: 1, hours: 1 }), + avtaletilstand: KalenderavtaleTilstand.VenterSvarFraArbeidsgiver, + lokasjon: { + adresse: faker.location.streetAddress(), + postnummer: faker.location.zipCode('####'), + poststed: faker.location.city(), + }, + digitalt: false, + merkelapp: 'Dialogmøte', + }), + kalenderavtale({ + tekst: `Dialogmøte ${faker.person.fullName()}`, + startTidspunkt: dateInFuture({ days: 3 }), + avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverHarGodtatt, + digitalt: true, + merkelapp: 'Dialogmøte', + }), + kalenderavtale({ + tekst: `Dialogmøte ${faker.person.fullName()}`, + startTidspunkt: dateInFuture({ days: 7 }), + sluttTidspunkt: dateInFuture({ days: 7, hours: 1 }), + avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverVilEndreTidEllerSted, + lokasjon: { + adresse: faker.location.streetAddress(), + postnummer: faker.location.zipCode('####'), + poststed: faker.location.city(), + }, + digitalt: false, + merkelapp: 'Dialogmøte', + }), + kalenderavtale({ + tekst: `Dialogmøte ${faker.person.fullName()}`, + startTidspunkt: dateInFuture({ days: 10 }), + avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverVilAvlyse, + merkelapp: 'Dialogmøte', + }), + kalenderavtale({ + tekst: `Dialogmøte ${faker.person.fullName()}`, + startTidspunkt: dateInFuture({ months: 1 }), + sluttTidspunkt: dateInFuture({ months: 1, hours: 3 }), + avtaletilstand: KalenderavtaleTilstand.Avlyst, + digitalt: true, + merkelapp: 'Dialogmøte', + }), +]; diff --git a/src/mocks/brukerApi/alleMerkelapper.ts b/src/mocks/brukerApi/alleMerkelapper.ts new file mode 100644 index 000000000..71e232f5d --- /dev/null +++ b/src/mocks/brukerApi/alleMerkelapper.ts @@ -0,0 +1,19 @@ +// create an enum type for allMerkelapper + +export enum Merkelapp { + Arbeidstrening = 'Arbeidstrening', + Fritak_i_arbeidsgiverperioden = 'Fritak i arbeidsgiverperioden', + Inntektsmelding = 'Inntektsmelding', + Inntektsmelding_sykepenger = 'Inntektsmelding sykepenger', + Inntektsmelding_pleiepenger = 'Inntektsmelding pleiepenger', + Lønnstilskudd = 'Lønnstilskudd', + Masseoppsigelse = 'Masseoppsigelse', + Mentor = 'Mentor', + Permittering = 'Permittering', + Sommerjobb = 'Sommerjobb', + Yrkesskade = 'Yrkesskade', + Dialogmøte = 'Dialogmøte', + Oppfølging = 'Oppfølging', +} + +export const alleMerkelapper = Object.values(Merkelapp); diff --git a/src/mocks/brukerApi/alleNotifikasjoner.ts b/src/mocks/brukerApi/alleNotifikasjoner.ts new file mode 100644 index 000000000..48e83e6b6 --- /dev/null +++ b/src/mocks/brukerApi/alleNotifikasjoner.ts @@ -0,0 +1,44 @@ +import { KalenderavtaleTilstand, OppgaveTilstand } from '../../api/graphql-types'; +import { beskjed, dateInPast, kalenderavtale, oppgave } from './helpers'; + +export const alleNotifikasjoner = [ + oppgave({ + tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk', + klikketPaa: false, + tilstand: OppgaveTilstand.Ny, + sakTittel: 'Avtale om lønnstilskudd for Venstrehendt Gitarist', + }), + oppgave({ + tekst: 'Send inntektsmelding', + tilstand: OppgaveTilstand.Utfoert, + utfoertTidspunkt: dateInPast({ days: 1 }), + sakTittel: 'Inntektsmelding for sykepenger Tulla Tullesen - f. 01.05.2001', + tilleggsinformasjon: 'Avtalen gjaldt sykdomsperiode 01.09.2024 - 01.09.2024', + }), + beskjed({ + tekst: 'Du har fått svar fra veileder', + sakTittel: 'Avtale om lønnstilskudd - Akrobatisk admiral', + opprettetTidspunkt: dateInPast({ days: 2 }), + }), + oppgave({ + tekst: 'Send inntektsmelding', + tilstand: OppgaveTilstand.Utgaatt, + utgaattTidspunkt: dateInPast({ days: 3 }), + frist: dateInPast({ days: 2 }), + sakTittel: 'Inntektsmelding for sykepenger Fetter Anton - f. 12.03.1999', + }), + kalenderavtale({ + klikketPaa: false, + tekst: 'Dialogmøte Dolly', + startTidspunkt: dateInPast({ days: 4 }), + lokasjon: { + adresse: 'Thorvald Meyers gate 2B', + postnummer: '0473', + poststed: 'Oslo', + __typename: 'Lokasjon', + }, + digitalt: true, + avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverHarGodtatt, + sakTittel: 'Søknad om fritak fra arbeidsgiverperioden – kronisk sykdom Gylden Karneval', + }), +]; diff --git a/src/mocks/brukerApi/alleSaker.ts b/src/mocks/brukerApi/alleSaker.ts new file mode 100644 index 000000000..1e2fcc20d --- /dev/null +++ b/src/mocks/brukerApi/alleSaker.ts @@ -0,0 +1,279 @@ +import { fakerNB_NO as faker } from '@faker-js/faker'; +import { KalenderavtaleTilstand, OppgaveTilstand, SakStatusType } from '../../api/graphql-types'; +import { + beskjedTidslinjeElement, + dateInPast, + fdato, + kalenderavtaleTidslinjeElement, + oppgaveTidslinjeElement, + sak, + sakStatus, + virksomhet, +} from './helpers'; +import { Merkelapp } from './alleMerkelapper'; + +export const alleSaker = [ + sak({ + merkelapp: Merkelapp.Fritak_i_arbeidsgiverperioden, + tittel: `Refusjon fritak i arbeidsgiverperioden - gravid ansatt - ${faker.person.fullName()} f.${fdato()}`, + virksomhet: virksomhet(), + sisteStatus: sakStatus({ + type: SakStatusType.Mottatt, + tekst: 'Mottatt', + }), + nesteSteg: 'Saksbehandlingstiden er lang. Du kan forvente refusjon utbetalt i januar 2025.', + tidslinje: [ + beskjedTidslinjeElement({ + tekst: 'NAV har mottat ditt refusjonskrav', + }), + ], + }), + sak({ + merkelapp: Merkelapp.Fritak_i_arbeidsgiverperioden, + tittel: `Refusjon fritak i arbeidsgiverperioden - gravid ansatt - ${faker.person.fullName()} f.${fdato()}`, + virksomhet: virksomhet(), + sisteStatus: sakStatus({ + type: SakStatusType.Ferdig, + tekst: 'Utbetalt', + }), + tidslinje: [ + beskjedTidslinjeElement({ + tekst: 'NAV har utbetalt refusjonen', + opprettetTidspunkt: dateInPast({ days: 1 }), + }), + beskjedTidslinjeElement({ + tekst: 'NAV har mottat ditt refusjonskrav', + opprettetTidspunkt: dateInPast({ years: 1 }), + }), + ], + }), + sak({ + merkelapp: Merkelapp.Fritak_i_arbeidsgiverperioden, + tittel: `Refusjon fritak i arbeidsgiverperioden - kronisk sykdom - ${faker.person.fullName()} f.${fdato()}`, + virksomhet: virksomhet(), + sisteStatus: sakStatus({ + type: SakStatusType.Mottatt, + tekst: 'Mottatt', + }), + nesteSteg: 'Saksbehandlingstiden er lang. Du kan forvente refusjon utbetalt i januar 2025.', + tidslinje: [ + beskjedTidslinjeElement({ + tekst: 'NAV har mottat ditt refusjonskrav', + }), + ], + }), + sak({ + merkelapp: Merkelapp.Fritak_i_arbeidsgiverperioden, + tittel: `Refusjon fritak i arbeidsgiverperioden - kronisk sykdom - ${faker.person.fullName()} f.${fdato()}`, + virksomhet: virksomhet(), + sisteStatus: sakStatus({ + type: SakStatusType.Ferdig, + tekst: 'Utbetalt', + }), + tidslinje: [ + beskjedTidslinjeElement({ + tekst: 'NAV har utbetalt refusjonen', + opprettetTidspunkt: dateInPast({ days: 2 }), + }), + beskjedTidslinjeElement({ + tekst: 'NAV har mottat ditt refusjonskrav', + opprettetTidspunkt: dateInPast({ years: 1 }), + }), + ], + }), + sak({ + merkelapp: Merkelapp.Lønnstilskudd, + tittel: `Avtale om lønnstilskudd ${faker.person.fullName()}`, + virksomhet: virksomhet(), + sisteStatus: sakStatus({ + type: SakStatusType.UnderBehandling, + tekst: 'Utkast', + }), + tidslinje: [ + oppgaveTidslinjeElement({ + tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', + opprettetTidspunkt: dateInPast({ days: 7 }), + tilstand: OppgaveTilstand.Utfoert, + utfoertTidspunkt: dateInPast({ days: 4 }), + frist: faker.date.soon({ days: 7 }), + }), + beskjedTidslinjeElement({ + tekst: 'Avtalen er opprettet og nå kan alle deltagere fylle den ut. ', + opprettetTidspunkt: dateInPast({ days: 2 }), + }), + ], + }), + sak({ + merkelapp: Merkelapp.Lønnstilskudd, + tittel: `Avtale om lønnstilskudd ${faker.person.fullName()}`, + virksomhet: virksomhet(), + sisteStatus: sakStatus({ + type: SakStatusType.UnderBehandling, + tekst: 'Under gjennomføring', + }), + tidslinje: [ + oppgaveTidslinjeElement({ + tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', + opprettetTidspunkt: dateInPast({ days: 7 }), + tilstand: OppgaveTilstand.Ny, + frist: faker.date.soon({ days: 7 }), + }), + beskjedTidslinjeElement({ + tekst: 'Avtalen er opprettet og nå kan alle deltagere fylle den ut. ', + opprettetTidspunkt: dateInPast({ months: 1 }), + }), + oppgaveTidslinjeElement({ + tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', + opprettetTidspunkt: dateInPast({ months: 2 }), + frist: dateInPast({ months: 1, days: 7 }), + tilstand: OppgaveTilstand.Utfoert, + utfoertTidspunkt: dateInPast({ months: 1, days: 7 }), + }), + oppgaveTidslinjeElement({ + tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', + opprettetTidspunkt: dateInPast({ months: 3 }), + frist: dateInPast({ months: 2, days: 1 }), + tilstand: OppgaveTilstand.Utgaatt, + utgaattTidspunkt: dateInPast({ months: 2, days: 7 }), + }), + oppgaveTidslinjeElement({ + tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', + opprettetTidspunkt: dateInPast({ years: 1, months: 1 }), + tilstand: OppgaveTilstand.Utgaatt, + utgaattTidspunkt: dateInPast({ years: 1 }), + }), + ], + }), + sak({ + merkelapp: Merkelapp.Lønnstilskudd, + tittel: `Avtale om lønnstilskudd ${faker.person.fullName()}`, + virksomhet: virksomhet(), + sisteStatus: sakStatus({ + type: SakStatusType.UnderBehandling, + tekst: 'Under gjennomføring', + }), + nesteSteg: 'Vi sender deg en melding innen 24. desember', + tidslinje: [], + }), + sak({ + merkelapp: Merkelapp.Lønnstilskudd, + tittel: `Avtale om lønnstilskudd ${faker.person.fullName()}`, + virksomhet: virksomhet(), + sisteStatus: sakStatus({ + type: SakStatusType.UnderBehandling, + tekst: 'Under gjennomføring', + }), + tidslinje: [ + kalenderavtaleTidslinjeElement({ + tekst: 'Invitasjon til samtale med veileder 15 april ', + avtaletilstand: KalenderavtaleTilstand.VenterSvarFraArbeidsgiver, + startTidspunkt: faker.date.soon({ days: 7 }), + lokasjon: { + adresse: 'Sørkedalsveien 31', + postnummer: '0788', + poststed: 'Sandnes', + }, + }), + beskjedTidslinjeElement({ + tekst: 'Du har fått svar fra veileder på meldingen din. ', + opprettetTidspunkt: dateInPast({ months: 1 }), + }), + beskjedTidslinjeElement({ + tekst: 'Avtalen er godkjent av alle parter og kan tas i bruk. ', + opprettetTidspunkt: dateInPast({ months: 5 }), + }), + oppgaveTidslinjeElement({ + tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', + opprettetTidspunkt: dateInPast({ days: 7, months: 6 }), + paaminnelseTidspunkt: dateInPast({ days: 2, months: 6 }), + utfoertTidspunkt: dateInPast({ days: 1, months: 6 }), + tilstand: OppgaveTilstand.Ny, + }), + beskjedTidslinjeElement({ + tekst: 'Avtalen er opprettet og nå kan alle deltagere fylle den ut. ', + opprettetTidspunkt: dateInPast({ years: 1 }), + }), + ], + }), + sak({ + merkelapp: Merkelapp.Dialogmøte, + tittel: `Dialogmøte ${faker.person.fullName()}`, + virksomhet: virksomhet(), + sisteStatus: sakStatus({ + type: SakStatusType.Mottatt, + tekst: 'Planlagt', + }), + tidslinje: [ + kalenderavtaleTidslinjeElement({ + tekst: 'Invitasjon til dialogmøte', + avtaletilstand: KalenderavtaleTilstand.VenterSvarFraArbeidsgiver, + lokasjon: undefined, + digitalt: false, + startTidspunkt: faker.date.soon({ days: 1 }), + }), + kalenderavtaleTidslinjeElement({ + tekst: 'Invitasjon til dialogmøte', + avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverVilAvlyse, + startTidspunkt: faker.date.soon({ days: 1 }), + digitalt: false, + lokasjon: { + adresse: 'Sørkedalsveien 31', + postnummer: '0788', + poststed: 'Sandnes', + }, + }), + kalenderavtaleTidslinjeElement({ + tekst: 'Invitasjon til dialogmøte', + avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverVilEndreTidEllerSted, + startTidspunkt: faker.date.soon({ days: 1 }), + + lokasjon: { + adresse: 'Sørkedalsveien 31', + postnummer: '0788', + poststed: 'Sandnes', + }, + digitalt: false, + }), + kalenderavtaleTidslinjeElement({ + tekst: 'Invitasjon til dialogmøte', + avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverHarGodtatt, + startTidspunkt: faker.date.soon({ days: 1 }), + lokasjon: undefined, + digitalt: true, + }), + kalenderavtaleTidslinjeElement({ + tekst: 'Invitasjon til dialogmøte', + avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverHarGodtatt, + startTidspunkt: dateInPast({ days: 1 }), + lokasjon: undefined, + digitalt: true, + }), + kalenderavtaleTidslinjeElement({ + tekst: 'Invitasjon til dialogmøte', + avtaletilstand: KalenderavtaleTilstand.Avlyst, + lokasjon: undefined, + digitalt: false, + }), + ], + }), + sak({ + merkelapp: Merkelapp.Dialogmøte, + tittel: `Dialogmøte ${faker.person.fullName()}`, + virksomhet: virksomhet(), + sisteStatus: sakStatus({ + type: SakStatusType.Mottatt, + tekst: 'Gjennomført', + }), + tidslinje: [ + kalenderavtaleTidslinjeElement({ + tekst: 'Invitasjon til dialogmøte', + avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverHarGodtatt, + lokasjon: { + adresse: 'Sørkedalsveien 31', + postnummer: '0788', + poststed: 'Sandnes', + }, + }), + ], + }), +]; diff --git a/src/mocks/faker/brukerApiHelpers.ts b/src/mocks/brukerApi/helpers.ts similarity index 76% rename from src/mocks/faker/brukerApiHelpers.ts rename to src/mocks/brukerApi/helpers.ts index 0705172c5..549c8f84c 100644 --- a/src/mocks/faker/brukerApiHelpers.ts +++ b/src/mocks/brukerApi/helpers.ts @@ -6,19 +6,31 @@ import { KalenderavtaleTidslinjeElement, KalenderavtaleTilstand, Lokasjon, + Maybe, Oppgave, + OppgaveMetadata, OppgaveTidslinjeElement, OppgaveTilstand, OppgaveTilstandInfo, + Sak, SakStatus, SakStatusType, + Scalars, + TidslinjeElement, Virksomhet, } from '../../api/graphql-types'; -import { altinntjeneste } from '../../altinn/tjenester'; -import * as Record from '../../utils/Record'; +import { buildASTSchema, graphql as executeGraphQL } from 'graphql'; +import Document from '../../../bruker.graphql'; +import { GraphQLVariables } from 'msw'; +import { alleMerkelapper, Merkelapp } from './alleMerkelapper'; export const orgnr = () => faker.number.int({ min: 100000000, max: 999999999 }).toString(); +export const fdato = () => { + const date = faker.date.birthdate(); + return `${date.getDate()}.${date.getMonth() + 1}.${date.getFullYear()}`; +}; + export const virksomhet = ({ navn = faker.company.name(), virksomhetsnummer = orgnr(), @@ -28,21 +40,6 @@ export const virksomhet = ({ virksomhetsnummer, }); -export const alleMerkelapper = [ - 'Arbeidstrening', - 'Fritak i arbeidsgiverperioden', - 'Inntektsmelding', - 'Inntektsmelding sykepenger', - 'Inntektsmelding pleiepenger', - 'Lønnstilskudd', - 'Masseoppsigelse', - 'Mentor', - 'Permittering', - 'Sommerjobb', - 'Yrkesskade', - 'Dialogmøte', -]; - export const merkelapp = () => { return faker.helpers.arrayElement(alleMerkelapper); }; @@ -133,15 +130,6 @@ export const oppgaveTilstandInfo = (): Array => antall: faker.number.int(100), })); -export const alleTilganger = Record.mapToArray( - altinntjeneste, - (id, { tjenestekode, tjenesteversjon }) => ({ - id, - tjenestekode, - tjenesteversjon, - }) -); - export const oppgave = ({ tilstand = faker.helpers.enumValue(OppgaveTilstand), tekst, @@ -202,13 +190,13 @@ export const beskjed = ({ sakTittel, opprettetTidspunkt = faker.date.recent(), klikketPaa = true, - tilleggsinformasjon, + tilleggsinformasjon, }: { tekst: string; sakTittel?: string; opprettetTidspunkt?: Date; klikketPaa?: boolean; - tilleggsinformasjon?: string + tilleggsinformasjon?: string; }): Beskjed => ({ __typename: 'Beskjed', id: faker.string.uuid(), @@ -248,6 +236,7 @@ export const kalenderavtale = ({ lokasjon, paaminnelseTidspunkt, opprettetTidspunkt = faker.date.recent(), + merkelapp: _merkelapp = merkelapp(), tilleggsinformasjon, }: { tekst: string; @@ -261,6 +250,7 @@ export const kalenderavtale = ({ paaminnelseTidspunkt?: Date; opprettetTidspunkt?: Date; tilleggsinformasjon?: string; + merkelapp?: string; }): Kalenderavtale => ({ __typename: 'Kalenderavtale', @@ -283,7 +273,7 @@ export const kalenderavtale = ({ }, lenke: `#${faker.lorem.word()}`, - merkelapp: merkelapp(), + merkelapp: _merkelapp, sak: sakTittel !== undefined @@ -295,3 +285,68 @@ export const kalenderavtale = ({ : undefined, virksomhet: virksomhet(), }); + +export const sak = ({ + tittel, + merkelapp: _merkelapp = merkelapp(), + nesteSteg, + sisteStatus, + tidslinje, + tilleggsinformasjon, + virksomhet, +}: { + merkelapp?: Merkelapp; + nesteSteg?: string; + sisteStatus: SakStatus; + tidslinje: TidslinjeElement[]; + tilleggsinformasjon?: string; + tittel: string; + virksomhet: Virksomhet; +}): Sak => ({ + id: faker.string.uuid(), + tittel, + lenke: `#${faker.lorem.word()}`, + merkelapp: _merkelapp, + nesteSteg, + sisteStatus, + tidslinje, + tilleggsinformasjon, + virksomhet, + frister: [], + oppgaver: [], +}); + +export const schema = buildASTSchema(Document); + +export const executeAndValidate = ({ + query, + variables, + rootValue, +}: { + query: string; + variables: GraphQLVariables; + rootValue: unknown; +}) => + executeGraphQL({ + schema, + source: query, + variableValues: variables, + rootValue, + }); + +export const dateInPast = ({ days = 0, years = 0, months = 0 }) => { + const date = new Date(); + date.setDate(date.getDate() - days); + date.setFullYear(date.getFullYear() - years); + date.setMonth(date.getMonth() - months); + return date; +}; + +export const dateInFuture = ({ hours = 0, days = 0, years = 0, months = 0 }) => { + const date = new Date(); + date.setDate(date.getDate() + days); + date.setHours(date.getHours() + hours); + date.setFullYear(date.getFullYear() + years); + date.setMonth(date.getMonth() + months); + return date; +}; diff --git a/src/mocks/brukerApi/resolvers.ts b/src/mocks/brukerApi/resolvers.ts new file mode 100644 index 000000000..c3ff51f01 --- /dev/null +++ b/src/mocks/brukerApi/resolvers.ts @@ -0,0 +1,76 @@ +import { Kalenderavtale, Notifikasjon, Sak } from '../../api/graphql-types'; +import { graphql, HttpResponse } from 'msw'; +import { executeAndValidate, oppgaveTilstandInfo } from './helpers'; +import { alleMerkelapper, Merkelapp } from './alleMerkelapper'; +import { fakerNB_NO as faker } from '@faker-js/faker'; +import { alleNotifikasjoner } from './alleNotifikasjoner'; + +export const hentSakerResolver = (saker: Sak[]) => + graphql.query('hentSaker', async ({ query, variables }) => { + const sakerFiltrert = saker.filter( + ({ merkelapp }) => variables.sakstyper?.includes(merkelapp) ?? true + ); + const { errors, data } = await executeAndValidate({ + query, + variables, + rootValue: { + saker: { + saker: sakerFiltrert.length > 0 ? sakerFiltrert : saker, + sakstyper: saker.map(({ merkelapp }) => ({ + navn: merkelapp, + antall: saker.filter((sak) => sak.merkelapp === merkelapp).length, + })), + feilAltinn: false, + totaltAntallSaker: saker.length, + oppgaveTilstandInfo: oppgaveTilstandInfo(), + }, + }, + }); + + return HttpResponse.json({ errors, data }); + }); + +export const hentKalenderavtalerResolver = (kalenderavtaler: Kalenderavtale[]) => + graphql.query('HentKalenderavtaler', async ({ query, variables }) => { + const { errors, data } = await executeAndValidate({ + query, + variables, + rootValue: { + kommendeKalenderavtaler: { + avtaler: kalenderavtaler, + }, + }, + }); + + return HttpResponse.json({ errors, data }); + }); + +export const hentNotifikasjonerResolver = (notifikasjoner: Notifikasjon[]) => + graphql.query('hentNotifikasjoner', async ({ query, variables }) => { + const { errors, data } = await executeAndValidate({ + query, + variables, + rootValue: { + notifikasjoner: { + feilAltinn: false, + feilDigiSyfo: false, + notifikasjoner, + }, + }, + }); + + return HttpResponse.json({ errors, data }); + }); + +export const sakstyperResolver = (sakstyper: Merkelapp[]) => + graphql.query('Sakstyper', async ({ query, variables }) => { + const { errors, data } = await executeAndValidate({ + query, + variables, + rootValue: { + sakstyper: sakstyper.map((navn) => ({ navn })), + }, + }); + + return HttpResponse.json({ errors, data }); + }); diff --git a/src/mocks/handlers.ts b/src/mocks/handlers.ts index 10540732c..182397a9f 100644 --- a/src/mocks/handlers.ts +++ b/src/mocks/handlers.ts @@ -1,41 +1,223 @@ -import { userInfoV2Handler } from './handlers/userInfoHandler'; -import { pamHandlers } from './handlers/pamHandler'; -import { varslingStatusHandler } from './handlers/varslingStatusHandler'; -import { altinnTilgangHandler } from './handlers/altinnTilgangHandler'; -import { eregHandlers } from './handlers/eregHandler'; -import { arbeidsforholdHandler } from './handlers/arbeidsforholdHandler'; -import { tiltaksgjennomforingHandler } from './handlers/tiltaksgjennomforingHandler'; -import { sykefraværHandler } from './handlers/sykefraværHandler'; -import { presenterteKandidaterHandler } from './handlers/presenterteKandidaterHandler'; import { storageHandlers } from './handlers/storageHandler'; import { kontaktinfoHandler } from './handlers/kontaktinfoHandler'; -import { kontonummerStatusHandler } from './handlers/kontonummerStatusHandler'; -import { brukerApiHandlers } from './handlers/brukerApiHandler'; +import { http, HttpResponse } from 'msw'; +import { orgnr } from './brukerApi/helpers'; +import { faker } from '@faker-js/faker'; +import { + hentKalenderavtalerResolver, + hentNotifikasjonerResolver, + hentSakerResolver, + sakstyperResolver, +} from './brukerApi/resolvers'; +/** + * generelle handlers som har lik oppførsel uavhengig av profil. + */ export const handlers = [ - userInfoV2Handler, + // varslingStatusHandler + http.post('/min-side-arbeidsgiver/api/varslingStatus/v1', () => + HttpResponse.json({ + status: 'OK', + varselTimestamp: '2021-01-01T00:00:00', + kvittertEventTimestamp: '2021-01-04T00:00:00Z', + }) + ), - ...pamHandlers, + // altinnTilgangsoknadHandler + http.get('/min-side-arbeidsgiver/api/altinn-tilgangssoknad', () => + HttpResponse.json([ + { + orgnr: '321988123', + status: 'Unopened', + submitUrl: 'https://fake-altinn/send-inn-soknad/', + serviceCode: '5278', + serviceEdition: 1, + createdDateTime: '', + lastChangedDateTime: '', + }, + { + orgnr: '321988123', + status: 'Created', + submitUrl: 'https://fake-altinn/send-inn-soknad/', + serviceCode: '5332', + serviceEdition: 1, + createdDateTime: '', + lastChangedDateTime: '', + }, + { + orgnr: '321988123', + status: 'Unopened', + submitUrl: '/mock-altinn/skjema/', + serviceCode: '5516', + serviceEdition: 1, + createdDateTime: '', + lastChangedDateTime: '', + }, + { + orgnr: '321988123', + status: 'Unopened', + submitUrl: '/mock-altinn/skjema/', + serviceCode: '5216', + serviceEdition: 1, + createdDateTime: '', + lastChangedDateTime: '', + }, + ]) + ), - varslingStatusHandler, + // eregHandlers + http.get( + '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/underenheter/:orgnr', + ({ params }) => { + const parentOrgnummer = orgnr(); + const orgNr = params.orgnr; + return HttpResponse.json({ + organisasjonsnummer: params.orgnr, + navn: faker.company.name(), + organisasjonsform: { + kode: 'BEDR', + beskrivelse: 'Bedrift', + _links: { + self: { + href: '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/organisasjonsformer/BEDR', + }, + }, + }, + postadresse: { + land: 'Norge', + landkode: 'NO', + postnummer: '1358', + poststed: 'JAR', + adresse: [faker.location.streetAddress()], + kommune: 'BÆRUM', + kommunenummer: '3024', + }, + registreringsdatoEnhetsregisteret: '2010-12-15', + registrertIMvaregisteret: false, + naeringskode1: { + beskrivelse: 'Administrasjon av finansmarkeder', + kode: '66.110', + }, + antallAnsatte: 42, + overordnetEnhet: orgnr(), + oppstartsdato: '2010-12-15', + datoEierskifte: '2010-12-15', + beliggenhetsadresse: { + land: 'Norge', + landkode: 'NO', + postnummer: '7950', + poststed: 'ABELVÆR', + adresse: [faker.location.streetAddress()], + kommune: 'NÆRØYSUND', + kommunenummer: '5060', + }, + _links: { + self: { + href: + '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/underenheter/' + + orgNr, + }, + overordnetEnhet: { + href: + '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/enheter/' + + parentOrgnummer, + }, + }, + }); + } + ), - altinnTilgangHandler, + http.get( + '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/enheter/:orgnr', + ({ params }) => + HttpResponse.json({ + organisasjonsnummer: params.orgnr, + navn: 'Presentabel Bygning', + organisasjonsform: { + kode: 'AS', + beskrivelse: 'Aksjeselskap', + _links: { + self: { + href: '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/organisasjonsformer/AS', + }, + }, + }, + hjemmeside: 'foo.bar.baz', + postadresse: { + land: 'Norge', + landkode: 'NO', + postnummer: '2652', + poststed: 'SVINGVOLL', + adresse: ['Sørskei-Tjernet 7'], + kommune: 'GAUSDAL', + kommunenummer: '3441', + }, + registreringsdatoEnhetsregisteret: '2004-12-15', + registrertIMvaregisteret: false, + naeringskode1: { + beskrivelse: 'Administrasjon av finansmarkeder', + kode: '66.110', + }, + antallAnsatte: 0, + forretningsadresse: { + land: 'Norge', + landkode: 'NO', + postnummer: '7950', + poststed: 'ABELVÆR', + adresse: ['Niels Brandtzægs veg 22'], + kommune: 'NÆRØYSUND', + kommunenummer: '5060', + }, + institusjonellSektorkode: { + kode: '3200', + beskrivelse: 'Banker', + }, + registrertIForetaksregisteret: false, + registrertIStiftelsesregisteret: false, + registrertIFrivillighetsregisteret: false, + konkurs: false, + underAvvikling: false, + underTvangsavviklingEllerTvangsopplosning: false, + maalform: 'Bokmål', + _links: { + self: { + href: '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/enheter/181488484', + }, + }, + }) + ), - ...eregHandlers, + // sykefravaerstatistikkHandler + http.get('/min-side-arbeidsgiver/api/sykefravaerstatistikk/:orgnr', () => + HttpResponse.json( + Math.random() > 0.5 + ? { + type: 'BRANSJE', + label: 'Barnehager', + prosent: 15.8, + } + : { + type: 'VIRKSOMHET', + label: 'MAURA OG KOLBU REGNSKAP', + prosent: 10.4, + } + ) + ), - arbeidsforholdHandler, - - tiltaksgjennomforingHandler, - - sykefraværHandler, - - presenterteKandidaterHandler, + // kontonummerStatusHandler + http.post('/min-side-arbeidsgiver/api/kontonummerStatus/v1', () => + HttpResponse.json({ + status: faker.helpers.maybe(() => 'OK', { probability: 0.99 }) ?? 'MANGLER_KONTONUMMER', + }) + ), ...storageHandlers, kontaktinfoHandler, - kontonummerStatusHandler, - - ...brukerApiHandlers, + // brukerApi default tomme data, setter per scenario + hentSakerResolver([]), + hentKalenderavtalerResolver([]), + hentNotifikasjonerResolver([]), + sakstyperResolver([]), ]; diff --git a/src/mocks/handlers/altinnTilgangHandler.ts b/src/mocks/handlers/altinnTilgangHandler.ts deleted file mode 100644 index 7f75a8b79..000000000 --- a/src/mocks/handlers/altinnTilgangHandler.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { http, HttpResponse } from 'msw'; - -export const altinnTilgangHandler = http.get( - '/min-side-arbeidsgiver/api/altinn-tilgangssoknad', - () => - HttpResponse.json([ - { - orgnr: '321988123', - status: 'Unopened', - submitUrl: 'https://fake-altinn/send-inn-soknad/', - serviceCode: '5278', - serviceEdition: 1, - createdDateTime: '', - lastChangedDateTime: '', - }, - { - orgnr: '321988123', - status: 'Created', - submitUrl: 'https://fake-altinn/send-inn-soknad/', - serviceCode: '5332', - serviceEdition: 1, - createdDateTime: '', - lastChangedDateTime: '', - }, - { - orgnr: '321988123', - status: 'Unopened', - submitUrl: '/mock-altinn/skjema/', - serviceCode: '5516', - serviceEdition: 1, - createdDateTime: '', - lastChangedDateTime: '', - }, - { - orgnr: '321988123', - status: 'Unopened', - submitUrl: '/mock-altinn/skjema/', - serviceCode: '5216', - serviceEdition: 1, - createdDateTime: '', - lastChangedDateTime: '', - }, - ]) -); diff --git a/src/mocks/handlers/arbeidsforholdHandler.ts b/src/mocks/handlers/arbeidsforholdHandler.ts deleted file mode 100644 index 732b1defa..000000000 --- a/src/mocks/handlers/arbeidsforholdHandler.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { http, HttpResponse } from 'msw'; - -export const arbeidsforholdHandler = http.get( - '/min-side-arbeidsgiver/arbeidsgiver-arbeidsforhold-api/antall-arbeidsforhold', - async () => - HttpResponse.json({ - first: '131488434', - second: 42, - }) -); diff --git a/src/mocks/handlers/brukerApiHandler.ts b/src/mocks/handlers/brukerApiHandler.ts deleted file mode 100644 index 99f11e1ca..000000000 --- a/src/mocks/handlers/brukerApiHandler.ts +++ /dev/null @@ -1,522 +0,0 @@ -import { buildASTSchema, graphql as executeGraphQL } from 'graphql'; -import { graphql, HttpResponse } from 'msw'; -import Document from '../../../bruker.graphql'; -import { fakerNB_NO as faker } from '@faker-js/faker'; -import { - alleMerkelapper, - beskjed, - beskjedTidslinjeElement, - kalenderavtale, - kalenderavtaleTidslinjeElement, - oppgave, - oppgaveTidslinjeElement, - oppgaveTilstandInfo, - sakStatus, - virksomhet, -} from '../faker/brukerApiHelpers'; -import { - BeskjedTidslinjeElement, - KalenderavtaleTidslinjeElement, - KalenderavtaleTilstand, - OppgaveTidslinjeElement, - OppgaveTilstand, - SakStatusType, -} from '../../api/graphql-types'; - -export const schema = buildASTSchema(Document); - -const fixOpprettetTidspunkt = ( - tidslinje: ( - | BeskjedTidslinjeElement - | KalenderavtaleTidslinjeElement - | OppgaveTidslinjeElement - )[] -): (BeskjedTidslinjeElement | KalenderavtaleTidslinjeElement | OppgaveTidslinjeElement)[] => { - const tidspunkter = tidslinje - .flatMap((element) => { - if ('opprettetTidspunkt' in element) return [element.opprettetTidspunkt]; - return []; - }) - .sort(); - return tidslinje.map((element, index) => { - if ('opprettetTidspunkt' in element) { - const neste = tidspunkter.pop(); - return { ...element, opprettetTidspunkt: neste }; - } - return element; - }); -}; - -export const saker = [ - { - id: faker.string.uuid(), - merkelapp: 'Fritak i arbeidsgiverperioden', - tittel: 'Refusjon fritak i arbeidsgiverperioden - gravid ansatt - Fyndig Hare f.25.04.91', - lenke: '#', - virksomhet: virksomhet(), - sisteStatus: sakStatus({ - type: SakStatusType.Mottatt, - tekst: 'Mottatt', - }), - nesteSteg: 'Saksbehandlingstiden er lang. Du kan forvente refusjon utbetalt i januar 2025.', - tidslinje: [ - beskjedTidslinjeElement({ - tekst: 'NAV har mottat ditt refusjonskrav', - }), - ], - }, - { - id: faker.string.uuid(), - merkelapp: 'Fritak i arbeidsgiverperioden', - tittel: 'Refusjon fritak i arbeidsgiverperioden - gravid ansatt - Stadig Sten f.01.11.99', - lenke: '#', - virksomhet: virksomhet(), - sisteStatus: sakStatus({ - type: SakStatusType.Ferdig, - tekst: 'Utbetalt', - }), - nesteSteg: null, - tidslinje: [ - beskjedTidslinjeElement({ - tekst: 'NAV har utbetalt refusjonen', - opprettetTidspunkt: faker.date.recent({ days: 2 }), - }), - beskjedTidslinjeElement({ - tekst: 'NAV har mottat ditt refusjonskrav', - opprettetTidspunkt: faker.date.past({ years: 1 }), - }), - ], - }, - { - id: faker.string.uuid(), - merkelapp: 'Fritak i arbeidsgiverperioden', - tittel: 'Refusjon fritak i arbeidsgiverperioden - kronisk sykdom - Logisk Simulering f.01.05.82', - lenke: '#', - virksomhet: virksomhet(), - sisteStatus: sakStatus({ - type: SakStatusType.Mottatt, - tekst: 'Mottatt', - }), - nesteSteg: 'Saksbehandlingstiden er lang. Du kan forvente refusjon utbetalt i januar 2025.', - tidslinje: [ - beskjedTidslinjeElement({ - tekst: 'NAV har mottat ditt refusjonskrav', - }), - ], - }, - { - id: faker.string.uuid(), - merkelapp: 'Fritak i arbeidsgiverperioden', - tittel: 'Refusjon fritak i arbeidsgiverperioden - kronisk sykdom - Sint Brosme f.12.11.62', - lenke: '#', - virksomhet: virksomhet(), - sisteStatus: sakStatus({ - type: SakStatusType.Ferdig, - tekst: 'Utbetalt', - }), - nesteSteg: null, - tidslinje: [ - beskjedTidslinjeElement({ - tekst: 'NAV har utbetalt refusjonen', - opprettetTidspunkt: faker.date.recent({ days: 2 }), - }), - beskjedTidslinjeElement({ - tekst: 'NAV har mottat ditt refusjonskrav', - opprettetTidspunkt: faker.date.past({ years: 1 }), - }), - ], - }, - { - id: faker.string.uuid(), - merkelapp: 'Lønnstilskudd', - tittel: 'Avtale om lønnstilskudd Fyndig Hare', - lenke: '#', - virksomhet: virksomhet(), - sisteStatus: sakStatus({ - type: SakStatusType.UnderBehandling, - tekst: 'Utkast', - }), - nesteSteg: null, - tidslinje: [ - oppgaveTidslinjeElement({ - tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', - opprettetTidspunkt: faker.date.recent({ days: 7 }), - tilstand: OppgaveTilstand.Utfoert, - utfoertTidspunkt: faker.date.recent({ days: 4 }), - frist: faker.date.soon({ days: 7 }), - }), - beskjedTidslinjeElement({ - tekst: 'Avtalen er opprettet og nå kan alle deltagere fylle den ut. ', - opprettetTidspunkt: faker.date.recent({ days: 2 }), - }), - ], - }, - { - id: faker.string.uuid(), - merkelapp: 'Lønnstilskudd', - tittel: 'Avtale om lønnstilskudd Grode Frodås Lavterskel', - lenke: '#', - virksomhet: virksomhet(), - sisteStatus: sakStatus({ - type: SakStatusType.UnderBehandling, - tekst: 'Under gjennomføring', - }), - nesteSteg: null, - tidslinje: [ - oppgaveTidslinjeElement({ - tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', - opprettetTidspunkt: faker.date.recent({ days: 7 }), - tilstand: OppgaveTilstand.Ny, - frist: faker.date.soon({ days: 7 }), - }), - beskjedTidslinjeElement({ - tekst: 'Avtalen er opprettet og nå kan alle deltagere fylle den ut. ', - opprettetTidspunkt: faker.date.past({ years: 1 }), - }), - oppgaveTidslinjeElement({ - tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', - opprettetTidspunkt: faker.date.recent({ days: 29 }), - frist: faker.date.recent({ days: 1 }), - tilstand: OppgaveTilstand.Utfoert, - utfoertTidspunkt: faker.date.recent({ days: 7 }), - }), - oppgaveTidslinjeElement({ - tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', - opprettetTidspunkt: faker.date.recent({ days: 29 }), - frist: faker.date.recent({ days: 1 }), - tilstand: OppgaveTilstand.Utgaatt, - utgaattTidspunkt: faker.date.recent({ days: 7 }), - }), - oppgaveTidslinjeElement({ - tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', - opprettetTidspunkt: faker.date.recent({ days: 29 }), - tilstand: OppgaveTilstand.Utgaatt, - utgaattTidspunkt: faker.date.recent({ days: 7 }), - }), - ], - }, - { - id: faker.string.uuid(), - merkelapp: 'Lønnstilskudd', - tittel: 'Avtale om lønnstilskudd Gert Snabel', - lenke: '#', - virksomhet: virksomhet(), - sisteStatus: sakStatus({ - type: SakStatusType.UnderBehandling, - tekst: 'Under gjennomføring', - }), - nesteSteg: 'Vi sender deg en melding innen 24. desember', - tidslinje: [], - }, - { - id: faker.string.uuid(), - merkelapp: 'Lønnstilskudd', - tittel: 'Avtale om lønnstilskudd Grode Frodås Lavterskel 2', - lenke: '#', - virksomhet: virksomhet(), - sisteStatus: sakStatus({ - type: SakStatusType.UnderBehandling, - tekst: 'Under gjennomføring', - }), - nesteSteg: null, - tidslinje: [ - kalenderavtaleTidslinjeElement({ - tekst: 'Invitasjon til samtale med veileder 15 april ', - avtaletilstand: KalenderavtaleTilstand.VenterSvarFraArbeidsgiver, - startTidspunkt: faker.date.soon({ days: 7 }), - lokasjon: { - adresse: 'Sørkedalsveien 31', - postnummer: '0788', - poststed: 'Sandnes', - }, - }), - beskjedTidslinjeElement({ - tekst: 'Du har fått svar fra veileder på meldingen din. ', - opprettetTidspunkt: faker.date.past({ years: 1 }), - }), - beskjedTidslinjeElement({ - tekst: 'Avtalen er godkjent av alle parter og kan tas i bruk. ', - opprettetTidspunkt: faker.date.past({ years: 1 }), - }), - oppgaveTidslinjeElement({ - tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk.', - opprettetTidspunkt: faker.date.recent({ days: 7 }), - paaminnelseTidspunkt: faker.date.recent({ days: 2 }), - utfoertTidspunkt: faker.date.recent({ days: 1 }), - tilstand: OppgaveTilstand.Ny, - }), - beskjedTidslinjeElement({ - tekst: 'Avtalen er opprettet og nå kan alle deltagere fylle den ut. ', - opprettetTidspunkt: faker.date.past({ years: 1 }), - }), - ], - }, - { - id: faker.string.uuid(), - merkelapp: 'Dialogmøte', - tittel: 'Dialogmøte Fyndig hare', - lenke: '#', - virksomhet: virksomhet(), - sisteStatus: sakStatus({ - type: SakStatusType.Mottatt, - tekst: 'Planlagt', - }), - nesteSteg: null, - tidslinje: [ - kalenderavtaleTidslinjeElement({ - tekst: 'Invitasjon til dialogmøte', - avtaletilstand: KalenderavtaleTilstand.VenterSvarFraArbeidsgiver, - lokasjon: undefined, - digitalt: false, - startTidspunkt: faker.date.soon({ days: 1 }), - }), - kalenderavtaleTidslinjeElement({ - tekst: 'Invitasjon til dialogmøte', - avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverVilAvlyse, - startTidspunkt: faker.date.soon({ days: 1 }), - digitalt: false, - lokasjon: { - adresse: 'Sørkedalsveien 31', - postnummer: '0788', - poststed: 'Sandnes', - }, - }), - kalenderavtaleTidslinjeElement({ - tekst: 'Invitasjon til dialogmøte', - avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverVilEndreTidEllerSted, - startTidspunkt: faker.date.soon({ days: 1 }), - - lokasjon: { - adresse: 'Sørkedalsveien 31', - postnummer: '0788', - poststed: 'Sandnes', - }, - digitalt: false, - }), - kalenderavtaleTidslinjeElement({ - tekst: 'Invitasjon til dialogmøte', - avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverHarGodtatt, - startTidspunkt: faker.date.soon({ days: 1 }), - lokasjon: undefined, - digitalt: true, - }), - kalenderavtaleTidslinjeElement({ - tekst: 'Invitasjon til dialogmøte', - avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverHarGodtatt, - startTidspunkt: faker.date.recent({ days: 1 }), - lokasjon: undefined, - digitalt: true, - }), - kalenderavtaleTidslinjeElement({ - tekst: 'Invitasjon til dialogmøte', - avtaletilstand: KalenderavtaleTilstand.Avlyst, - lokasjon: undefined, - digitalt: false, - }), - ], - }, - { - id: faker.string.uuid(), - merkelapp: 'Dialogmøte', - tittel: 'Dialogmøte Ullen Glasskule', - lenke: '#', - virksomhet: virksomhet(), - sisteStatus: sakStatus({ - type: SakStatusType.Mottatt, - tekst: 'Gjennomført', - }), - nesteSteg: null, - tidslinje: [ - kalenderavtaleTidslinjeElement({ - tekst: 'Invitasjon til dialogmøte', - avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverHarGodtatt, - lokasjon: { - adresse: 'Sørkedalsveien 31', - postnummer: '0788', - poststed: 'Sandnes', - }, - }), - ], - }, -].map((sak) => ({ ...sak, tidslinje: fixOpprettetTidspunkt(sak.tidslinje) })); - -export const brukerApiHandlers = [ - graphql.query('hentSaker', async ({ query, variables }) => { - const sakerFiltrert = saker.filter(({ merkelapp }) => - (variables.sakstyper ?? alleMerkelapper)?.includes(merkelapp) - ); - const { errors, data } = await executeGraphQL({ - schema, - source: query, - variableValues: variables, - rootValue: { - saker: { - saker: sakerFiltrert.length > 0 ? sakerFiltrert : saker, - sakstyper: alleMerkelapper.map((navn) => ({ - navn, - antall: faker.number.int(100), - })), - feilAltinn: false, - totaltAntallSaker: faker.number.int(1000), - oppgaveTilstandInfo: oppgaveTilstandInfo(), - }, - }, - }); - - return HttpResponse.json({ errors, data }); - }), - graphql.query('HentKalenderavtaler', async ({ query, variables }) => { - const { errors, data } = await executeGraphQL({ - schema, - source: query, - variableValues: variables, - rootValue: { - kommendeKalenderavtaler: { - avtaler: [ - { - id: '70a7eaf2-6f63-4d47-94ac-e467002ad82c', - tekst: 'Dialogmøte Sprø Plekter', - startTidspunkt: '2024-06-20T15:15:00', - sluttTidspunkt: '2024-06-20T16:15:00', - avtaletilstand: 'VENTER_SVAR_FRA_ARBEIDSGIVER', - lokasjon: { - adresse: 'Thorvald Meyers gate 2B', - postnummer: '0473', - poststed: 'Oslo', - __typename: 'Lokasjon', - }, - digitalt: false, - lenke: 'quam voluptatem consequatur facilis maxime dolorum deleniti', - __typename: 'Kalenderavtale', - }, - { - id: '0f6b0dd3-7f25-4950-95a8-9b8ad58372f6', - tekst: 'Dialogmøte Tastbar telefon', - startTidspunkt: '2024-06-30T12:15:00', - sluttTidspunkt: null, - avtaletilstand: 'ARBEIDSGIVER_HAR_GODTATT', - lokasjon: null, - digitalt: true, - lenke: 'numquam voluptate exercitationem reiciendis repudiandae laudantium qui', - __typename: 'Kalenderavtale', - }, - { - id: 'f8f7753c-d222-4e33-8d2c-2d2211094d04', - tekst: 'Dialogmøte Sjalu Streng', - startTidspunkt: '2024-07-05T15:15:00', - sluttTidspunkt: '2024-07-05T16:15:00', - avtaletilstand: 'ARBEIDSGIVER_VIL_ENDRE_TID_ELLER_STED', - lokasjon: { - adresse: 'Thorvald Meyers gate 2B', - postnummer: '0473', - poststed: 'Oslo', - __typename: 'Lokasjon', - }, - digitalt: false, - lenke: 'et minus aut nisi suscipit culpa ullam', - __typename: 'Kalenderavtale', - }, - { - id: '0cccbfb2-b69f-4901-880c-0028fc597a81', - tekst: 'Dialogmøte Myk Penn', - startTidspunkt: '2024-08-04T15:15:00', - sluttTidspunkt: null, - avtaletilstand: 'ARBEIDSGIVER_VIL_AVLYSE', - lokasjon: null, - digitalt: false, - lenke: 'iusto dolore commodi iure fugiat sint illum', - __typename: 'Kalenderavtale', - }, - { - id: '196d2931-5766-44b9-b41d-28071551890b', - tekst: 'Dialogmøte Lukket Ballong', - startTidspunkt: '2021-02-04T15:15:00', - sluttTidspunkt: '2021-02-04T16:15:00', - avtaletilstand: 'AVLYST', - lokasjon: null, - digitalt: true, - lenke: 'asperiores voluptate quis ex beatae aut vero', - __typename: 'Kalenderavtale', - }, - ], - __typename: 'KalenderavtalerResultat', - }, - }, - }); - - return HttpResponse.json({ errors, data }); - }), - graphql.query('hentNotifikasjoner', async ({ query, variables }) => { - const { errors, data } = await executeGraphQL({ - schema, - source: query, - variableValues: variables, - rootValue: { - notifikasjoner: { - feilAltinn: false, - feilDigiSyfo: false, - notifikasjoner: [ - oppgave({ - tekst: 'Les og godkjenn avtalen for at den skal kunne tas i bruk', - klikketPaa: false, - tilstand: OppgaveTilstand.Ny, - sakTittel: 'Avtale om lønnstilskudd for Venstrehendt Gitarist', - }), - oppgave({ - tekst: 'Send inntektsmelding', - tilstand: OppgaveTilstand.Utfoert, - utfoertTidspunkt: faker.date.recent({ days: 1 }), - sakTittel: - 'Inntektsmelding for sykepenger Tulla Tullesen - f. 01.05.2001', - tilleggsinformasjon: - 'Avtalen gjaldt sykdomsperiode 01.09.2024 - 01.09.2024', - }), - beskjed({ - tekst: 'Du har fått svar fra veileder', - sakTittel: 'Avtale om lønnstilskudd - Akrobatisk admiral', - opprettetTidspunkt: faker.date.recent({ days: 2 }), - }), - oppgave({ - tekst: 'Send inntektsmelding', - tilstand: OppgaveTilstand.Utgaatt, - utgaattTidspunkt: faker.date.recent({ days: 3 }), - frist: faker.date.recent({ days: 3 }), - sakTittel: - 'Inntektsmelding for sykepenger Fetter Anton - f. 12.03.1999', - }), - kalenderavtale({ - klikketPaa: false, - tekst: 'Dialogmøte Dolly', - startTidspunkt: faker.date.recent({ days: 4 }), - lokasjon: { - adresse: 'Thorvald Meyers gate 2B', - postnummer: '0473', - poststed: 'Oslo', - __typename: 'Lokasjon', - }, - digitalt: true, - avtaletilstand: KalenderavtaleTilstand.ArbeidsgiverHarGodtatt, - sakTittel: - 'Søknad om fritak fra arbeidsgiverperioden – kronisk sykdom Gylden Karneval', - }), - ], - __typename: 'NotifikasjonerResultat', - }, - }, - }); - - return HttpResponse.json({ errors, data }); - }), - graphql.query('Sakstyper', async ({ query, variables }) => { - const { errors, data } = await executeGraphQL({ - schema, - source: query, - variableValues: variables, - rootValue: { - sakstyper: alleMerkelapper.map((navn) => ({ navn })), - }, - }); - - return HttpResponse.json({ errors, data }); - }), -]; diff --git a/src/mocks/handlers/eregHandler.ts b/src/mocks/handlers/eregHandler.ts deleted file mode 100644 index abd11cd44..000000000 --- a/src/mocks/handlers/eregHandler.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { http, HttpResponse } from 'msw'; - -export const eregHandlers = [ - http.get( - '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/underenheter/:orgnr', - ({ params }) => - HttpResponse.json({ - organisasjonsnummer: params.orgnr, - navn: 'Upopulær Dyreflokk', - organisasjonsform: { - kode: 'BEDR', - beskrivelse: 'Bedrift', - _links: { - self: { - href: '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/organisasjonsformer/BEDR', - }, - }, - }, - postadresse: { - land: 'Norge', - landkode: 'NO', - postnummer: '1358', - poststed: 'JAR', - adresse: ['Ringstabekkveien 58'], - kommune: 'BÆRUM', - kommunenummer: '3024', - }, - registreringsdatoEnhetsregisteret: '2010-12-15', - registrertIMvaregisteret: false, - naeringskode1: { - beskrivelse: 'Administrasjon av finansmarkeder', - kode: '66.110', - }, - antallAnsatte: 42, - overordnetEnhet: '818711111', - oppstartsdato: '2010-12-15', - datoEierskifte: '2010-12-15', - beliggenhetsadresse: { - land: 'Norge', - landkode: 'NO', - postnummer: '7950', - poststed: 'ABELVÆR', - adresse: ['Abelværvegen 1175'], - kommune: 'NÆRØYSUND', - kommunenummer: '5060', - }, - _links: { - self: { - href: '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/underenheter/151488454', - }, - overordnetEnhet: { - href: '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/enheter/181488484', - }, - }, - }) - ), - - http.get( - '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/enheter/:orgnr', - ({ params }) => - HttpResponse.json({ - organisasjonsnummer: params.orgnr, - navn: 'Presentabel Bygning', - organisasjonsform: { - kode: 'AS', - beskrivelse: 'Aksjeselskap', - _links: { - self: { - href: '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/organisasjonsformer/AS', - }, - }, - }, - hjemmeside: 'foo.bar.baz', - postadresse: { - land: 'Norge', - landkode: 'NO', - postnummer: '2652', - poststed: 'SVINGVOLL', - adresse: ['Sørskei-Tjernet 7'], - kommune: 'GAUSDAL', - kommunenummer: '3441', - }, - registreringsdatoEnhetsregisteret: '2004-12-15', - registrertIMvaregisteret: false, - naeringskode1: { - beskrivelse: 'Administrasjon av finansmarkeder', - kode: '66.110', - }, - antallAnsatte: 0, - forretningsadresse: { - land: 'Norge', - landkode: 'NO', - postnummer: '7950', - poststed: 'ABELVÆR', - adresse: ['Niels Brandtzægs veg 22'], - kommune: 'NÆRØYSUND', - kommunenummer: '5060', - }, - institusjonellSektorkode: { - kode: '3200', - beskrivelse: 'Banker', - }, - registrertIForetaksregisteret: false, - registrertIStiftelsesregisteret: false, - registrertIFrivillighetsregisteret: false, - konkurs: false, - underAvvikling: false, - underTvangsavviklingEllerTvangsopplosning: false, - maalform: 'Bokmål', - _links: { - self: { - href: '/min-side-arbeidsgiver/mock/data.brreg.no/enhetsregisteret/api/enheter/181488484', - }, - }, - }) - ), -]; diff --git a/src/mocks/handlers/kontaktinfoHandler.ts b/src/mocks/handlers/kontaktinfoHandler.ts index ed382522d..9958e16fe 100644 --- a/src/mocks/handlers/kontaktinfoHandler.ts +++ b/src/mocks/handlers/kontaktinfoHandler.ts @@ -1,6 +1,7 @@ import { http, HttpResponse } from 'msw'; +import { faker } from '@faker-js/faker'; -const response = [ +const eksempler = [ { hovedenhet: null, underenhet: null, @@ -48,5 +49,5 @@ const response = [ ]; export const kontaktinfoHandler = http.post('/min-side-arbeidsgiver/api/kontaktinfo/v1', () => - HttpResponse.json(response[Math.floor(Math.random() * 5)]) + HttpResponse.json(faker.helpers.arrayElement(eksempler)) ); diff --git a/src/mocks/handlers/kontonummerStatusHandler.ts b/src/mocks/handlers/kontonummerStatusHandler.ts deleted file mode 100644 index a12091ea5..000000000 --- a/src/mocks/handlers/kontonummerStatusHandler.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { http, HttpResponse } from 'msw'; - -const vnrTilStatus: { [key: string]: string } = { - '999999999': 'MANGLER_KONTONUMMER', -}; - -export const kontonummerStatusHandler = http.post( - '/min-side-arbeidsgiver/api/kontonummerStatus/v1', - async ({ request }) => { - const reqBody = (await request.json()) as { virksomhetsnummer: string }; - return HttpResponse.json({ - status: vnrTilStatus[reqBody.virksomhetsnummer] ?? 'OK', - }); - } -); diff --git a/src/mocks/handlers/pamHandler.ts b/src/mocks/handlers/pamHandler.ts deleted file mode 100644 index 3a694582e..000000000 --- a/src/mocks/handlers/pamHandler.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { http, HttpResponse } from 'msw'; - -export const pamHandlers = [ - http.post('/min-side-arbeidsgiver/stillingsregistrering-api/api/arbeidsgiver/:id', () => - HttpResponse.json() - ), - http.get('/min-side-arbeidsgiver/stillingsregistrering-api/api/stillinger/numberByStatus', () => - HttpResponse.json({ - TIL_GODKJENNING: 17, - GODKJENT: 0, - PAABEGYNT: 42, - TIL_AVSLUTTING: 0, - AVSLUTTET: 5, - AVVIST: 0, - PUBLISERT: 10, - }) - ), -]; diff --git a/src/mocks/handlers/presenterteKandidaterHandler.ts b/src/mocks/handlers/presenterteKandidaterHandler.ts deleted file mode 100644 index ecd5c7ccb..000000000 --- a/src/mocks/handlers/presenterteKandidaterHandler.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { http, HttpResponse } from 'msw'; - -export const presenterteKandidaterHandler = http.get( - '/min-side-arbeidsgiver/presenterte-kandidater-api/ekstern/antallkandidater', - () => { - if (Math.random() < 0.1) { - return new HttpResponse(null, { - status: 502, - }); - } - - return HttpResponse.json({ - antallKandidater: Math.floor(Math.random() * 10), - }); - } -); diff --git a/src/mocks/handlers/storageHandler.ts b/src/mocks/handlers/storageHandler.ts index 6623e2d7d..3e0658582 100644 --- a/src/mocks/handlers/storageHandler.ts +++ b/src/mocks/handlers/storageHandler.ts @@ -1,5 +1,4 @@ import { http, HttpResponse } from 'msw'; -import { as } from 'vitest/dist/reporters-trlZlObr'; const storage: { [key: string]: { version: number; value: any }; diff --git "a/src/mocks/handlers/sykefrav\303\246rHandler.ts" "b/src/mocks/handlers/sykefrav\303\246rHandler.ts" deleted file mode 100644 index 5efc9646b..000000000 --- "a/src/mocks/handlers/sykefrav\303\246rHandler.ts" +++ /dev/null @@ -1,19 +0,0 @@ -import { http, HttpResponse } from 'msw'; - -export const sykefraværHandler = http.get( - '/min-side-arbeidsgiver/api/sykefravaerstatistikk/:orgnr', - () => - HttpResponse.json( - Math.random() > 0.5 - ? { - type: 'BRANSJE', - label: 'Barnehager', - prosent: 15.8, - } - : { - type: 'VIRKSOMHET', - label: 'MAURA OG KOLBU REGNSKAP', - prosent: 10.4, - } - ) -); diff --git a/src/mocks/handlers/tiltaksgjennomforingHandler.ts b/src/mocks/handlers/tiltaksgjennomforingHandler.ts deleted file mode 100644 index bafb39c9b..000000000 --- a/src/mocks/handlers/tiltaksgjennomforingHandler.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { http, HttpResponse } from 'msw'; - -const tiltakstyper = [ - 'SOMMERJOBB', - 'SOMMERJOBB', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'VARIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'INKLUDERINGSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'SOMMERJOBB', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'ARBEIDSTRENING', - 'INKLUDERINGSTILSKUDD', - 'MENTOR', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'ARBEIDSTRENING', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'SOMMERJOBB', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'SOMMERJOBB', - 'MENTOR', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'VARIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'SOMMERJOBB', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MENTOR', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'SOMMERJOBB', - 'SOMMERJOBB', - 'SOMMERJOBB', - 'ARBEIDSTRENING', - 'INKLUDERINGSTILSKUDD', - 'ARBEIDSTRENING', - 'SOMMERJOBB', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'VARIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'SOMMERJOBB', - 'VARIG_LONNSTILSKUDD', - 'ARBEIDSTRENING', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MENTOR', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', - 'MIDLERTIDIG_LONNSTILSKUDD', -]; - -export const tiltaksgjennomforingHandler = http.get( - '/min-side-arbeidsgiver/tiltaksgjennomforing-api/avtaler/', - () => HttpResponse.json(tiltakstyper.map((tiltakstype) => ({ tiltakstype }))) -); diff --git a/src/mocks/handlers/userInfoHandler.ts b/src/mocks/handlers/userInfoHandler.ts deleted file mode 100644 index 11aff31d3..000000000 --- a/src/mocks/handlers/userInfoHandler.ts +++ /dev/null @@ -1,205 +0,0 @@ -import { http, HttpResponse } from 'msw'; - -export const userInfoV2Handler = http.get('/min-side-arbeidsgiver/api/userInfo/v2', () => - HttpResponse.json({ - altinnError: false, - organisasjoner: [ - { - orgNr: '121488424', - name: 'BIRTAVARRE OG VÆRLANDET FORELDER', - organizationForm: 'AS', - underenheter: [ - { - orgNr: '182345674', - underenheter: [], - name: 'BALLSTAD OG HAMARØY', - organizationForm: 'AAFY', - }, - { - orgNr: '118345674', - underenheter: [], - name: 'BALLSTAD OG HORTEN', - organizationForm: 'FLI', - }, - { - orgNr: '999999999', - name: 'SALTRØD OG HØNEBY', - organizationForm: 'BEDR', - underenheter: [], - }, - ], - }, - { - orgNr: '812345674', - name: 'En Juridisk Ehhet AS', - organizationForm: 'AS', - underenheter: [ - { - orgNr: '119985432', - underenheter: [], - name: 'NAV ENGERDAL', - organizationForm: 'BEDR', - }, - { - orgNr: '119988432', - underenheter: [], - name: 'NAV HAMAR', - organizationForm: 'BEDR', - }, - ], - }, - { - orgNr: '119845674', - name: 'TEST AV AAFY', - organizationForm: 'AAFY', - underenheter: [], - }, - { - orgNr: '112233445', - name: 'Andeby kommune', - organizationForm: 'KOMM', - underenheter: [ - { - orgNr: '112233345', - name: 'Andeby Mellomorganisasjon', - organizationForm: 'ORGL', - underenheter: [ - { - orgNr: '112223345', - name: 'Andeby barnehagestyrer', - organizationForm: 'ORGL', - underenheter: [ - { - orgNr: '111223345', - name: 'Andeby barnehage', - organizationForm: 'BEDR', - underenheter: [], - }, - ], - }, - ], - }, - ], - }, - { - orgNr: '123988321', - name: 'BJØRNØYA OG ROVDE REVISJON', - organizationForm: 'AS', - underenheter: [ - { - orgNr: '321988123', - underenheter: [], - name: 'ARENDAL OG BØNES REVISJON', - organizationForm: 'BEDR', - }, - { - orgNr: '311288223', - underenheter: [], - name: 'GRAVDAL OG SOLLIA REVISJON', - organizationForm: 'BEDR', - }, - ], - }, - ], - tilganger: { - '5216:1': ['182345674', '118345674', '119985432', '119988432'], // sykefraværsstatistikk - '4936:1': ['182345674', '118345674', '119985432', '119988432'], // inntektsmelding - '5384:1': ['182345674', '999999999'], // ekspertbistand - '4826:1': ['182345674', '999999999'], // utsendtArbeidstakerEØS - '5332:1': ['182345674', '999999999'], // arbeidstrening - '5441:1': ['182345674', '999999999'], // arbeidsforhold - '5516:1': ['182345674', '999999999'], // midlertidigLønnstilskudd - '5516:2': ['182345674', '999999999'], // varigLønnstilskudd - '5516:3': ['182345674', '999999999'], // sommerjobb - '5516:4': ['182345674', '999999999'], // mentortilskudd - '5516:5': ['182345674', '999999999'], // inkluderingstilskudd - '3403:1': ['182345674', '999999999'], // sykefravarstatistikk - '5934:1': ['182345674', '999999999'], // forebyggefravar - '5078:1': ['182345674', '999999999'], // rekruttering - '5278:1': ['182345674', '999999999'], // tilskuddsbrev - '5902:1': ['182345674', '999999999'], // yrkesskade - }, - digisyfoError: false, - digisyfoOrganisasjoner: [ - { - organisasjon: { - OrganizationNumber: '999999999', - Name: 'Saltrød og Høneby', - ParentOrganizationNumber: '121488424', - OrganizationForm: 'BEDR', - }, - antallSykmeldte: 0, - }, - { - organisasjon: { - OrganizationNumber: '121488424', - Name: 'BIRTAVARRE OG VÆRLANDET FORELDER', - ParentOrganizationNumber: null, - OrganizationForm: 'AS', - }, - antallSykmeldte: 0, - }, - { - organisasjon: { - Name: 'BALLSTAD OG HAMARØY', - OrganizationForm: 'AAFY', - OrganizationNumber: '182345674', - ParentOrganizationNumber: '118345674', - }, - antallSykmeldte: 4, - }, - { - organisasjon: { - Name: 'BALLSTAD OG HORTEN', - ParentOrganizationNumber: null, - OrganizationNumber: '118345674', - OrganizationForm: 'FLI', - }, - antallSykmeldte: 0, - }, - { - organisasjon: { - Name: 'BareSyfo Virksomhet', - OrganizationForm: 'AAFY', - OrganizationNumber: '121212121', - ParentOrganizationNumber: '111111111', - }, - antallSykmeldte: 4, - }, - { - organisasjon: { - Name: 'BareSyfo Juridisk', - ParentOrganizationNumber: null, - OrganizationNumber: '111111111', - OrganizationForm: 'FLI', - }, - antallSykmeldte: 4, - }, - ], - refusjoner: [ - { - virksomhetsnummer: '999999999', - statusoversikt: { - KLAR_FOR_INNSENDING: 3, - FOR_TIDLIG: 1, - }, - tilgang: true, - }, - { - virksomhetsnummer: '121488424', - statusoversikt: { - KLAR_FOR_INNSENDING: 1, - FOR_TIDLIG: 2, - }, - tilgang: true, - }, - { - virksomhetsnummer: '182345674', - statusoversikt: { - FOR_TIDLIG: 2, - }, - tilgang: true, - }, - ], - }) -); diff --git a/src/mocks/handlers/varslingStatusHandler.ts b/src/mocks/handlers/varslingStatusHandler.ts deleted file mode 100644 index 60796825d..000000000 --- a/src/mocks/handlers/varslingStatusHandler.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { http, HttpResponse } from 'msw'; - -export const varslingStatusHandler = http.post('/min-side-arbeidsgiver/api/varslingStatus/v1', () => - HttpResponse.json({ - status: 'OK', - varselTimestamp: '2021-01-01T00:00:00', - kvittertEventTimestamp: '2021-01-04T00:00:00Z', - }) -); diff --git a/src/mocks/scenarios.ts b/src/mocks/scenarios.ts index d3b6dee24..7a59a25b0 100644 --- a/src/mocks/scenarios.ts +++ b/src/mocks/scenarios.ts @@ -1,4 +1,4 @@ -import { GraphQLHandler, http, HttpHandler, HttpResponse } from 'msw'; +import { GraphQLHandler, HttpHandler } from 'msw'; import { Demoprofil } from '../hooks/useDemoprofil'; import { nærmesteLederScenario } from './scenarios/nærmesteLederScenario'; import { dagligLederScenario } from './scenarios/dagligLederScenario'; diff --git a/src/mocks/scenarios/dagligLederScenario.ts b/src/mocks/scenarios/dagligLederScenario.ts index 401d468e1..41dfed74e 100644 --- a/src/mocks/scenarios/dagligLederScenario.ts +++ b/src/mocks/scenarios/dagligLederScenario.ts @@ -1,59 +1,152 @@ import { http, HttpResponse } from 'msw'; import { faker } from '@faker-js/faker'; -import { alleTilganger, orgnr } from '../faker/brukerApiHelpers'; - -const dagligLederUserInfoScenario = http.get('/min-side-arbeidsgiver/api/userInfo/v1', () => { - let parent1 = orgnr(); - let parent2 = orgnr(); - const organisasjoner = [ - { - Name: faker.company.name(), - OrganizationNumber: parent1, - OrganizationForm: 'AS', - }, - { - Name: faker.company.name(), - OrganizationNumber: orgnr(), - ParentOrganizationNumber: parent1, - OrganizationForm: 'BEDR', - }, - { - Name: faker.company.name(), - OrganizationNumber: parent2, - OrganizationForm: 'AS', - }, - { - Name: faker.company.name(), - OrganizationNumber: orgnr(), - ParentOrganizationNumber: parent2, - OrganizationForm: 'BEDR', - }, - { - Name: faker.company.name(), - OrganizationNumber: orgnr(), - ParentOrganizationNumber: parent2, - OrganizationForm: 'BEDR', - }, - ]; - return HttpResponse.json({ - altinnError: false, - organisasjoner, - tilganger: alleTilganger.map(({ tjenestekode, tjenesteversjon }) => ({ - tjenestekode, - tjenesteversjon, - organisasjoner: organisasjoner.map((org) => org.OrganizationNumber), - })), - digisyfoError: false, - digisyfoOrganisasjoner: organisasjoner.map((organisasjon) => ({ - organisasjon, - antallSykmeldte: 4, - })), - refusjoner: organisasjoner.map(({ OrganizationNumber }) => ({ - virksomhetsnummer: OrganizationNumber, - statusoversikt: { KLAR_FOR_INNSENDING: faker.number.int({ min: 0, max: 10 }) }, - tilgang: true, - })), - }); -}); - -export const dagligLederScenario = [dagligLederUserInfoScenario]; +import { orgnr } from '../brukerApi/helpers'; +import { fromEntries } from '../../utils/Record'; +import { + hentKalenderavtalerResolver, + hentNotifikasjonerResolver, + hentSakerResolver, + sakstyperResolver, +} from '../brukerApi/resolvers'; +import { alleSaker } from '../brukerApi/alleSaker'; +import { alleKalenderavtaler } from '../brukerApi/alleKalenderavtaler'; +import { alleNotifikasjoner } from '../brukerApi/alleNotifikasjoner'; +import { alleMerkelapper } from '../brukerApi/alleMerkelapper'; + +const alleTilganger = [ + '5216:1', // sykefraværsstatistikk + '4936:1', // inntektsmelding + '5384:1', // ekspertbistand + '4826:1', // utsendtArbeidstakerEØS + '5332:1', // arbeidstrening + '5441:1', // arbeidsforhold + '5516:1', // midlertidigLønnstilskudd + '5516:2', // varigLønnstilskudd + '5516:3', // sommerjobb + '5516:4', // mentortilskudd + '5516:5', // inkluderingstilskudd + '3403:1', // sykefravarstatistikk + '5934:1', // forebyggefravar + '5078:1', // rekruttering + '5278:1', // tilskuddsbrev + '5902:1', // yrkesskade +]; + +export const dagligLederScenario = [ + http.get('/min-side-arbeidsgiver/api/userInfo/v2', () => { + const underenheter = [ + { + orgNr: orgnr(), + underenheter: [], + name: faker.company.name(), + organizationForm: 'AAFY', + }, + { + orgNr: orgnr(), + underenheter: [], + name: faker.company.name(), + organizationForm: 'FLI', + }, + { + orgNr: orgnr(), + name: faker.company.name(), + organizationForm: 'BEDR', + underenheter: [], + }, + ]; + const organisasjon = { + orgNr: orgnr(), + name: faker.company.name(), + organizationForm: 'AS', + underenheter, + }; + return HttpResponse.json({ + altinnError: false, + organisasjoner: [organisasjon], + tilganger: fromEntries( + alleTilganger.map((tilgang) => [tilgang, underenheter.map((org) => org.orgNr)]) + ), + digisyfoError: false, + digisyfoOrganisasjoner: underenheter.map(({ orgNr, organizationForm, name }) => ({ + organisasjon: { + OrganizationNumber: orgNr, + Name: name, + ParentOrganizationNumber: organisasjon.orgNr, + OrganizationForm: organizationForm, + }, + antallSykmeldte: faker.number.int({ min: 0, max: 10 }), + })), + refusjoner: underenheter.map(({ orgNr }) => ({ + virksomhetsnummer: orgNr, + statusoversikt: { + KLAR_FOR_INNSENDING: faker.number.int({ min: 0, max: 10 }), + FOR_TIDLIG: faker.number.int({ min: 0, max: 10 }), + }, + tilgang: true, + })), + }); + }), + + // stillingsregistrering / pam / arbeidsplassen + http.post('/min-side-arbeidsgiver/stillingsregistrering-api/api/arbeidsgiver/:id', () => + HttpResponse.json() + ), + http.get('/min-side-arbeidsgiver/stillingsregistrering-api/api/stillinger/numberByStatus', () => + HttpResponse.json({ + TIL_GODKJENNING: faker.number.int({ min: 0, max: 20 }), + GODKJENT: faker.number.int({ min: 0, max: 20 }), + PAABEGYNT: faker.number.int({ min: 0, max: 20 }), + TIL_AVSLUTTING: faker.number.int({ min: 0, max: 20 }), + AVSLUTTET: faker.number.int({ min: 0, max: 20 }), + AVVIST: faker.number.int({ min: 0, max: 20 }), + PUBLISERT: faker.number.int({ min: 0, max: 20 }), + }) + ), + + // presenterte-kandidater / Kandidatlister + http.get('/min-side-arbeidsgiver/presenterte-kandidater-api/ekstern/antallkandidater', () => { + if (Math.random() < 0.1) { + return new HttpResponse(null, { + status: 502, + }); + } + + return HttpResponse.json({ + antallKandidater: Math.floor(Math.random() * 10), + }); + }), + + http.get( + '/min-side-arbeidsgiver/arbeidsgiver-arbeidsforhold-api/antall-arbeidsforhold', + async () => + HttpResponse.json({ + first: '131488434', + second: 42, + }) + ), + + // tiltaksgjennomforing / TiltakAvtaler + http.get('/min-side-arbeidsgiver/tiltaksgjennomforing-api/avtaler/*', () => + HttpResponse.json( + Array.from({ length: 66 }).map(() => ({ + tiltakstype: faker.helpers.arrayElement([ + 'ARBEIDSTRENING', + 'MIDLERTIDIG_LONNSTILSKUDD', + 'VARIG_LONNSTILSKUDD', + 'SOMMERJOBB', + 'INKLUDERINGSTILSKUDD', + 'MENTOR', + ]), + })) + ) + ), + + // brukerApi + hentSakerResolver(alleSaker), + + hentKalenderavtalerResolver(alleKalenderavtaler), + + hentNotifikasjonerResolver(alleNotifikasjoner), + + sakstyperResolver(alleMerkelapper), +]; diff --git "a/src/mocks/scenarios/n\303\246rmesteLederScenario.ts" "b/src/mocks/scenarios/n\303\246rmesteLederScenario.ts" index a436f5407..a956c2306 100644 --- "a/src/mocks/scenarios/n\303\246rmesteLederScenario.ts" +++ "b/src/mocks/scenarios/n\303\246rmesteLederScenario.ts" @@ -1,52 +1,74 @@ import { http, HttpResponse } from 'msw'; +import { orgnr } from '../brukerApi/helpers'; +import { faker } from '@faker-js/faker'; +import { fromEntries } from '../../utils/Record'; +import { + hentKalenderavtalerResolver, + hentNotifikasjonerResolver, + hentSakerResolver, + sakstyperResolver, +} from '../brukerApi/resolvers'; +import { alleSaker } from '../brukerApi/alleSaker'; +import { alleKalenderavtaler } from '../brukerApi/alleKalenderavtaler'; +import { alleNotifikasjoner } from '../brukerApi/alleNotifikasjoner'; +import { alleMerkelapper, Merkelapp } from '../brukerApi/alleMerkelapper'; -const nærmesteLederUserInfoScenario = http.get('/min-side-arbeidsgiver/api/userInfo/v1', () => { - return HttpResponse.json({ - altinnError: false, - organisasjoner: [ +export const nærmesteLederScenario = [ + http.get('/min-side-arbeidsgiver/api/userInfo/v2', () => { + const underenheter = [ { - Name: 'BIRTAVARRE OG VÆRLANDET FORELDER', - Type: 'Enterprise', - OrganizationNumber: '121488424', - OrganizationForm: 'AS', - Status: 'Active', + orgNr: orgnr(), + name: faker.company.name(), + organizationForm: 'BEDR', + underenheter: [], }, { - Name: 'SALTRØD OG HØNEBY', - Type: 'Business', - OrganizationNumber: '999999999', - ParentOrganizationNumber: '121488424', - OrganizationForm: 'BEDR', - Status: 'Active', + orgNr: orgnr(), + name: faker.company.name(), + organizationForm: 'BEDR', + underenheter: [], }, - ], - tilganger: [], - digisyfoError: false, - digisyfoOrganisasjoner: [ - { - organisasjon: { - Name: 'BIRTAVARRE OG VÆRLANDET FORELDER', - Type: 'Enterprise', - OrganizationNumber: '121488424', - OrganizationForm: 'AS', - Status: 'Active', - }, - antallSykmeldte: 4, - }, - { + ]; + const organisasjon = { + orgNr: orgnr(), + name: faker.company.name(), + organizationForm: 'AS', + underenheter, + }; + return HttpResponse.json({ + altinnError: false, + organisasjoner: [organisasjon], + tilganger: fromEntries( + [ + // TODO: skal nærmeste leder ha noen altinn tilganger? + ].map((tilgang) => [tilgang, underenheter.map((org) => org.orgNr)]) + ), + digisyfoError: false, + digisyfoOrganisasjoner: underenheter.map(({ orgNr, organizationForm, name }) => ({ organisasjon: { - Name: 'SALTRØD OG HØNEBY', - Type: 'Business', - OrganizationNumber: '999999999', - ParentOrganizationNumber: '121488424', - OrganizationForm: 'BEDR', - Status: 'Active', + OrganizationNumber: orgNr, + Name: name, + ParentOrganizationNumber: organisasjon.orgNr, + OrganizationForm: organizationForm, }, - antallSykmeldte: 4, - }, - ], - refusjoner: [], - }); -}); + antallSykmeldte: faker.number.int({ min: 0, max: 10 }), + })), + refusjoner: [], + }); + }), + + // brukerApi + hentSakerResolver( + alleSaker.filter(({ merkelapp }) => + [Merkelapp.Dialogmøte, Merkelapp.Oppfølging].includes(merkelapp as Merkelapp) + ) + ), + + hentNotifikasjonerResolver( + alleNotifikasjoner.filter(({ merkelapp }) => + [Merkelapp.Dialogmøte, Merkelapp.Oppfølging].includes(merkelapp as Merkelapp) + ) + ), -export const nærmesteLederScenario = [nærmesteLederUserInfoScenario]; + sakstyperResolver([Merkelapp.Dialogmøte, Merkelapp.Oppfølging]), +]; diff --git a/src/mocks/scenarios/regnskapsforerScenario.ts b/src/mocks/scenarios/regnskapsforerScenario.ts index ec8b5d37d..8bf7cf82a 100644 --- a/src/mocks/scenarios/regnskapsforerScenario.ts +++ b/src/mocks/scenarios/regnskapsforerScenario.ts @@ -1,48 +1,54 @@ import { graphql, http, HttpResponse } from 'msw'; import { faker } from '@faker-js/faker'; -import { alleTilganger, oppgaveTilstandInfo, orgnr } from '../faker/brukerApiHelpers'; +import { oppgaveTilstandInfo, orgnr, schema } from '../brukerApi/helpers'; import { graphql as executeGraphQL } from 'graphql/graphql'; -import { saker, schema } from '../handlers/brukerApiHandler'; +import { fromEntries } from '../../utils/Record'; +import { AltinnTilgang } from '../../hooks/useUserInfo'; +import { alleSaker } from '../brukerApi/alleSaker'; +import { alleMerkelapper, Merkelapp } from '../brukerApi/alleMerkelapper'; +import { + hentKalenderavtalerResolver, + hentNotifikasjonerResolver, + hentSakerResolver, + sakstyperResolver, +} from '../brukerApi/resolvers'; +import { alleKalenderavtaler } from '../brukerApi/alleKalenderavtaler'; +import { alleNotifikasjoner } from '../brukerApi/alleNotifikasjoner'; -const regnskapsforerUserInfoScenario = http.get('/min-side-arbeidsgiver/api/userInfo/v1', () => { - const organisasjoner = [...Array(100).keys()].flatMap(() => { - let hovedenhet = orgnr(); - return [ - { - Name: faker.company.name(), - OrganizationNumber: hovedenhet, - OrganizationForm: 'AS', - }, - { - Name: faker.company.name(), - OrganizationNumber: orgnr(), - ParentOrganizationNumber: hovedenhet, - OrganizationForm: 'BEDR', - }, - { - Name: faker.company.name(), - OrganizationNumber: orgnr(), - ParentOrganizationNumber: hovedenhet, - OrganizationForm: 'BEDR', - }, - ]; - }); +const tilganger = [ + '4936:1', // inntektsmelding + + '5902:1', // yrkesskade + '5384:1', // ekspertbistand + '4826:1', // utsendtArbeidstakerEØS +]; +const regnskapsforerUserInfoScenario = http.get('/min-side-arbeidsgiver/api/userInfo/v2', () => { + const underenheter: AltinnTilgang[] = []; + const organisasjoner = Array.from({ length: 100 }).map(() => ({ + orgNr: orgnr(), + name: faker.company.name(), + organizationForm: 'AS', + underenheter: Array.from({ length: faker.number.int({ min: 0, max: 5 }) }).map(() => { + const underenhet = { + orgNr: orgnr(), + underenheter: [], + name: faker.company.name(), + organizationForm: 'BEDR', + }; + underenheter.push(underenhet); + return underenhet; + }), + })); return HttpResponse.json({ altinnError: false, organisasjoner: organisasjoner, - tilganger: alleTilganger - .filter(({ tjenestekode }) => { - return !['5441', '5078', '5516', '5332'].includes(tjenestekode); - }) - .map(({ tjenestekode, tjenesteversjon }) => ({ - tjenestekode, - tjenesteversjon, - organisasjoner: organisasjoner.map((org) => org.OrganizationNumber), - })), + tilganger: fromEntries( + tilganger.map((tilgang) => [tilgang, underenheter.map((org) => org.orgNr)]) + ), digisyfoError: false, digisyfoOrganisasjoner: [], - refusjoner: organisasjoner.map(({ OrganizationNumber }) => ({ - virksomhetsnummer: OrganizationNumber, + refusjoner: underenheter.map(({ orgNr }) => ({ + virksomhetsnummer: orgNr, statusoversikt: { KLAR_FOR_INNSENDING: faker.number.int({ min: 0, max: 10 }) }, tilgang: true, })), @@ -50,71 +56,37 @@ const regnskapsforerUserInfoScenario = http.get('/min-side-arbeidsgiver/api/user }); const regnskapsførerSakstyper = [ - 'Fritak i arbeidsgiverperioden', - 'Inntektsmelding', - 'Inntektsmelding sykepenger', - 'Inntektsmelding pleiepenger', - 'Lønnstilskudd', - 'Masseoppsigelse', - 'Permittering', - 'Sommerjobb', - 'Yrkesskade', + Merkelapp.Fritak_i_arbeidsgiverperioden, + Merkelapp.Inntektsmelding, + Merkelapp.Inntektsmelding_sykepenger, + Merkelapp.Inntektsmelding_pleiepenger, + Merkelapp.Lønnstilskudd, + Merkelapp.Masseoppsigelse, + Merkelapp.Permittering, + Merkelapp.Sommerjobb, + Merkelapp.Yrkesskade, ]; export const regnskapsforerBrukerApiScenario = [ - graphql.query('HentKalenderavtaler', async ({ query, variables }) => { - const { errors, data } = await executeGraphQL({ - schema, - source: query, - variableValues: variables, - rootValue: { - kommendeKalenderavtaler: { - avtaler: [], - __typename: 'KalenderavtalerResultat', - }, - }, - }); - - return HttpResponse.json({ errors, data }); - }), - - graphql.query('hentSaker', async ({ query, variables }) => { - const sakerFiltrert = saker.filter(({ merkelapp }) => - (variables.sakstyper ?? regnskapsførerSakstyper)?.includes(merkelapp) - ); - const { errors, data } = await executeGraphQL({ - schema, - source: query, - variableValues: variables, - rootValue: { - saker: { - saker: sakerFiltrert.length > 0 ? sakerFiltrert : saker, - sakstyper: regnskapsførerSakstyper.map((navn) => ({ - navn, - antall: faker.number.int(100), - })), - feilAltinn: false, - totaltAntallSaker: faker.number.int(1000), - oppgaveTilstandInfo: oppgaveTilstandInfo(), - }, - }, - }); + hentSakerResolver( + alleSaker.filter(({ merkelapp }) => + regnskapsførerSakstyper.includes(merkelapp as Merkelapp) + ) + ), - return HttpResponse.json({ errors, data }); - }), + hentKalenderavtalerResolver( + alleKalenderavtaler.filter(({ merkelapp }) => + regnskapsførerSakstyper.includes(merkelapp as Merkelapp) + ) + ), - graphql.query('Sakstyper', async ({ query, variables }) => { - const { errors, data } = await executeGraphQL({ - schema, - source: query, - variableValues: variables, - rootValue: { - sakstyper: regnskapsførerSakstyper.map((navn) => ({ navn })), - }, - }); + hentNotifikasjonerResolver( + alleNotifikasjoner.filter(({ merkelapp }) => + regnskapsførerSakstyper.includes(merkelapp as Merkelapp) + ) + ), - return HttpResponse.json({ errors, data }); - }), + sakstyperResolver(regnskapsførerSakstyper), ]; export const regnskapsforerScenario = [ diff --git a/src/tests/mocks.ts b/src/tests/mocks.ts index badfe7065..4f16b56bc 100644 --- a/src/tests/mocks.ts +++ b/src/tests/mocks.ts @@ -1,6 +1,6 @@ import { setupServer } from 'msw/node'; import { graphql, http, HttpResponse } from 'msw'; -import { orgnr } from '../mocks/faker/brukerApiHelpers'; +import { orgnr } from '../mocks/brukerApi/helpers'; import { faker } from '@faker-js/faker'; export const server = setupServer( diff --git a/vitest.config.ts b/vitest.config.ts index b3a80b57d..e9be1c6f7 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -1,6 +1,10 @@ /// import { configDefaults, defineConfig } from 'vitest/config'; +import tsconfigPaths from 'vite-tsconfig-paths'; +import graphqlLoader from 'vite-plugin-graphql-loader'; +import react from '@vitejs/plugin-react-swc'; +import legacy from '@vitejs/plugin-legacy'; // https://vitejs.dev/config/ export default defineConfig({ @@ -8,6 +12,15 @@ export default defineConfig({ __BUILD_TIMESTAMP__: new Date(), __BASE_PATH__: JSON.stringify('http://localhost/min-side-arbeidsgiver'), }, + plugins: [ + tsconfigPaths(), + graphqlLoader(), + react(), + legacy({ + modernPolyfills: ['es.string.replace', 'esnext.string.replace-all'], + polyfills: ['es.string.replace', 'esnext.string.replace-all'], + }), + ], test: { globals: true, environment: 'jsdom',