From a810e596550addc7fb33d40cee8e73f701fe7145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vebj=C3=B8rn=20Nordby?= Date: Tue, 16 Jul 2024 14:39:34 +0200 Subject: [PATCH] Tsff 641/storbritannia skal ikke vises som eos land (#6389) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Storbritannia er ikke et EØS-land. Fikser visning av årsak for Sveits * Storbritannia er ikke et EØS-land. Fikser visning av årsak for Sveits * Lint fiks. * tester for utenlandsopphold-visning * kosovo fix --------- Co-authored-by: Jostein Stuhaug --- .../MedisinskVilk\303\245r.tsx" | 25 +++---- .../OppholdINorgeOgAdresserFaktaPanel.jsx | 3 + .../src/Utenlandsopphold.spec.tsx | 65 +++++++++++++++++++ .../src/Utenlandsopphold.tsx | 28 ++++++-- .../mocks/mockdata/utenlandsoppholdMock.js | 32 ++++++++- 5 files changed, 133 insertions(+), 20 deletions(-) diff --git "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/medisinsk-vilk\303\245r/MedisinskVilk\303\245r.tsx" "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/medisinsk-vilk\303\245r/MedisinskVilk\303\245r.tsx" index 245e214da0..b48c1109a5 100644 --- "a/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/medisinsk-vilk\303\245r/MedisinskVilk\303\245r.tsx" +++ "b/packages/fakta-medisinsk-vilk\303\245r/src/ui/components/medisinsk-vilk\303\245r/MedisinskVilk\303\245r.tsx" @@ -1,6 +1,6 @@ import { httpUtils } from '@fpsak-frontend/utils'; import { ExclamationmarkTriangleFillIcon } from '@navikt/aksel-icons'; -import { Alert, HStack, Tabs, VStack } from '@navikt/ds-react'; +import { Alert, Tabs, VStack } from '@navikt/ds-react'; import { Box, ChildIcon, Infostripe, Margin, PageContainer } from '@navikt/ft-plattform-komponenter'; import { useQuery } from '@tanstack/react-query'; import classnames from 'classnames'; @@ -29,8 +29,7 @@ import ContainerContext from '../../context/ContainerContext'; import VurderingContext from '../../context/VurderingContext'; import AksjonspunktFerdigStripe from '../aksjonspunkt-ferdig-stripe/AksjonspunktFerdigStripe'; // eslint-disable-next-line max-len -import NyeDokumenterSomKanPåvirkeEksisterendeVurderingerController - from '../nye-dokumenter-som-kan-påvirke-eksisterende-vurderinger/NyeDokumenterSomKanPåvirkeEksisterendeVurderingerController'; +import NyeDokumenterSomKanPåvirkeEksisterendeVurderingerController from '../nye-dokumenter-som-kan-påvirke-eksisterende-vurderinger/NyeDokumenterSomKanPåvirkeEksisterendeVurderingerController'; import StruktureringAvDokumentasjon from '../strukturering-av-dokumentasjon/StruktureringAvDokumentasjon'; import UteståendeEndringerMelding from '../utestående-endringer-melding/UteståendeEndringerMelding'; import VilkarsvurderingAvLivetsSluttfase from '../vilkarsvurdering-av-livets-sluttfase/VilkarsvurderingAvLivetsSluttfase'; @@ -200,11 +199,11 @@ const MedisinskVilkår = (): JSX.Element => { dispatch({ type: ActionType.ENDRINGER_UTIFRA_NYE_DOKUMENTER_REGISTRERT }); hentSykdomsstegStatus().then( ({ - kanLøseAksjonspunkt, - manglerVurderingAvKontinuerligTilsynOgPleie, - manglerVurderingAvToOmsorgspersoner, - manglerVurderingAvLangvarigSykdom, - }) => { + kanLøseAksjonspunkt, + manglerVurderingAvKontinuerligTilsynOgPleie, + manglerVurderingAvToOmsorgspersoner, + manglerVurderingAvLangvarigSykdom, + }) => { if (kanLøseAksjonspunkt) { navigerTilSteg(toOmsorgspersonerSteg, true); } else if (!manglerVurderingAvKontinuerligTilsynOgPleie && manglerVurderingAvToOmsorgspersoner) { @@ -260,10 +259,12 @@ const MedisinskVilkår = (): JSX.Element => {

{sykdomTittel(fagsakYtelseType)}

- {ikkeSammenMedBarnet === true && - Søker har opplyst om utenlandsopphold uten barnet i søknadsperioden. Sjekk søknaden og korriger den aktuelle perioden via punsj, slik at det ikke - utbetales pleiepenger for perioden søker ikke pleier barnet. - } + {ikkeSammenMedBarnet === true && ( + + Søker har opplyst om utenlandsopphold uten barnet i søknadsperioden. Sjekk søknaden og korriger den + aktuelle perioden via punsj, slik at det ikke utbetales pleiepenger for perioden søker ikke pleier barnet. + + )}
( diff --git a/packages/fakta-medlemskap/src/components/oppholdInntektOgPerioder/OppholdINorgeOgAdresserFaktaPanel.jsx b/packages/fakta-medlemskap/src/components/oppholdInntektOgPerioder/OppholdINorgeOgAdresserFaktaPanel.jsx index aed53bce05..b8aad37b29 100644 --- a/packages/fakta-medlemskap/src/components/oppholdInntektOgPerioder/OppholdINorgeOgAdresserFaktaPanel.jsx +++ b/packages/fakta-medlemskap/src/components/oppholdInntektOgPerioder/OppholdINorgeOgAdresserFaktaPanel.jsx @@ -23,6 +23,9 @@ const capitalizeFirstLetter = landNavn => { const formatLandNavn = landNavn => { if (landNavn.length === 2 || landNavn.length === 3) { + if (landNavn === 'XXK') { + return 'Kosovo'; + } return countries.getName(landNavn, 'no'); } return landNavn; diff --git a/packages/fakta-utenlandsopphold/src/Utenlandsopphold.spec.tsx b/packages/fakta-utenlandsopphold/src/Utenlandsopphold.spec.tsx index 568be9220e..dc40444cac 100644 --- a/packages/fakta-utenlandsopphold/src/Utenlandsopphold.spec.tsx +++ b/packages/fakta-utenlandsopphold/src/Utenlandsopphold.spec.tsx @@ -41,4 +41,69 @@ describe('Utenlandsopphold', () => { expect(screen.getByText('Merknad til utenlandsopphold')).toBeVisible(); expect(screen.getByText('Periode telles ikke.')).toBeVisible(); }); + + test('land utenfor EØS vises med merknad', () => { + renderWithIntl( + , + ); + + expect(screen.getByText('Land')).toBeVisible(); + expect(screen.getByText('Kina')).toBeVisible(); + expect(screen.getByText('EØS')).toBeVisible(); + expect(screen.getByText('Nei')).toBeVisible(); + expect(screen.getByText('Merknad til utenlandsopphold')).toBeVisible(); + expect(screen.getByText('Ingen av årsakene over (kan motta pleiepenger i 8 uker)')).toBeVisible(); + }); + // Egen test da det har mismatch mellom kodeverk og i18n-iso-countries + test('Kosovo vises korrekt', () => { + renderWithIntl( + , + ); + + expect(screen.getByText('Land')).toBeVisible(); + expect(screen.getByText('Kosovo')).toBeVisible(); + expect(screen.getByText('EØS')).toBeVisible(); + expect(screen.getByText('Nei')).toBeVisible(); + }); + + // spesialhåndtering for Storbritannia da det ligger som EØS-land i kodeverket + test('Storbritannia er ikke i EØS', () => { + renderWithIntl( + , + ); + + expect(screen.getByText('Land')).toBeVisible(); + expect(screen.getByText('Storbritannia')).toBeVisible(); + expect(screen.getByText('EØS')).toBeVisible(); + expect(screen.getByText('Nei')).toBeVisible(); + expect(screen.getByText('Merknad til utenlandsopphold')).toBeVisible(); + expect(screen.getByText('Ingen av årsakene over (kan motta pleiepenger i 8 uker)')).toBeVisible(); + }); + + // Sveits vurderes på lik linje med EØS-land + test('Sveits vises med ekstra informasjon', () => { + renderWithIntl( + , + ); + + expect(screen.getByText('Land')).toBeVisible(); + expect(screen.getByText('Sveits')).toBeVisible(); + expect(screen.getByText('EØS')).toBeVisible(); + expect(screen.getByText('Nei*')).toBeVisible(); + expect(screen.getByText('Merknad til utenlandsopphold')).toBeVisible(); + expect(screen.getByText('Periode telles ikke.')).toBeVisible(); + expect(screen.getByText('*) Ikke en del av EØS, men vurderes mot EØS-regelverk')).toBeVisible(); + }); }); diff --git a/packages/fakta-utenlandsopphold/src/Utenlandsopphold.tsx b/packages/fakta-utenlandsopphold/src/Utenlandsopphold.tsx index c1487b1677..f9f43a9164 100644 --- a/packages/fakta-utenlandsopphold/src/Utenlandsopphold.tsx +++ b/packages/fakta-utenlandsopphold/src/Utenlandsopphold.tsx @@ -20,14 +20,15 @@ const Utenlandsopphold = ({ kodeverk: { UtenlandsoppholdÅrsak: KodeverkMedNavn[] }; fagsakYtelseType?: string; }) => { - const finnÅrsaker = (periode, erEØS) => { - if (erEØS) { + const finnÅrsaker = (periode: UtenlandsoppholdType, erEØS: boolean) => { + if (erEØS || periode.landkode.kode === 'CHE') { return 'Periode telles ikke.'; } return kodeverk?.UtenlandsoppholdÅrsak?.find(v => v.kode === periode?.årsak)?.navn || 'Ukjent årsak'; }; + // Sveits vurderes på lik linje med EØS-land const vurderesMotEØSRegelverk = (landkode: string) => { const land = ['CHE']; if (land.includes(landkode)) { @@ -37,13 +38,26 @@ const Utenlandsopphold = ({ }; const mapItems = (periode: UtenlandsoppholdType) => { - const erEØS = periode.region.kode === 'NORDEN' || periode.region.kode === 'EOS'; + // Storbritannia ligger som EØS-land i kodeverket. Frem til det er fjernet derfra må det spesialhåndteres her. + const erEØS = () => + periode.region.kode === 'NORDEN' || (periode.region.kode === 'EOS' && periode.landkode.kode !== 'GBR'); - const land = { label: 'Land', value: countries.getName(periode.landkode.kode, 'no') }; - const eos = { label: 'EØS', value: erEØS ? 'Ja' : `Nei${vurderesMotEØSRegelverk(periode.landkode.kode)}` }; - const årsak = { label: 'Merknad til utenlandsopphold', value: finnÅrsaker(periode, erEØS) }; + const hentLand = () => { + // Kosovo har en spesiell kode i kodeverk som ikke samsvarer med ISO-koden i i18n-iso-countries + if (periode.landkode.kode === 'XXK') { + return { label: 'Land', value: 'Kosovo' }; + } + return { label: 'Land', value: countries.getName(periode.landkode.kode, 'no') }; + }; - return [land, eos, årsak]; + const hentEØSStatus = () => { + const eøsStatus = erEØS() ? 'Ja' : `Nei${vurderesMotEØSRegelverk(periode.landkode.kode)}`; + return { label: 'EØS', value: eøsStatus }; + }; + + const hentÅrsak = () => ({ label: 'Merknad til utenlandsopphold', value: finnÅrsaker(periode, erEØS()) }); + + return [hentLand(), hentEØSStatus(), hentÅrsak()]; }; const perioder = utenlandsopphold?.perioder; diff --git a/packages/mocks/mockdata/utenlandsoppholdMock.js b/packages/mocks/mockdata/utenlandsoppholdMock.js index c8fdf75a32..72d86ee1dc 100644 --- a/packages/mocks/mockdata/utenlandsoppholdMock.js +++ b/packages/mocks/mockdata/utenlandsoppholdMock.js @@ -75,7 +75,7 @@ const utenlandsopphold = { }, { periode: `${dayjs().subtract(45, 'day').format('YYYY-MM-DD')}/${dayjs() - .subtract(31, 'day') + .subtract(39, 'day') .format('YYYY-MM-DD')}`, landkode: { kode: 'CHE', @@ -88,6 +88,36 @@ const utenlandsopphold = { }, årsak: 'INGEN', }, + { + periode: `${dayjs().subtract(52, 'day').format('YYYY-MM-DD')}/${dayjs() + .subtract(47, 'day') + .format('YYYY-MM-DD')}`, + landkode: { + kode: 'XXK', + navn: 'XXK', + kodeverk: 'LANDKODER', + }, + region: { + kode: 'ANNET', + kodeverk: 'REGION', + }, + årsak: 'INGEN', + }, + { + periode: `${dayjs().subtract(59, 'day').format('YYYY-MM-DD')}/${dayjs() + .subtract(55, 'day') + .format('YYYY-MM-DD')}`, + landkode: { + kode: 'GBR', + navn: 'GBR', + kodeverk: 'LANDKODER', + }, + region: { + kode: 'EOS', + kodeverk: 'REGION', + }, + årsak: 'INGEN', + }, ], };