Repository: navikt/fp-frontend
Pull request #6254: TFP-5965: Utvidet med flere stories for 'omsorg og rett'.
Author: login: thao1
Created: 2025-03-10T14:00:21Z | Merged: 2025-03-11T08:40:47Z

- Legger til flere tester.


Diff:
diff --git a/packages/fakta/fakta-omsorg-og-rett/src/OmsorgOgRettFaktaIndex.spec.tsx b/packages/fakta/fakta-omsorg-og-rett/src/OmsorgOgRettFaktaIndex.spec.tsx
index c479fe6ba63..5d715120a42 100644
--- a/packages/fakta/fakta-omsorg-og-rett/src/OmsorgOgRettFaktaIndex.spec.tsx
+++ b/packages/fakta/fakta-omsorg-og-rett/src/OmsorgOgRettFaktaIndex.spec.tsx
@@ -9,6 +9,8 @@ const {
   HarAksjonspunktForAvklarAleneomsorg,
   HarAksjonspunktForAvklarAleneomsorgMedFlereBarn,
   HarAksjonspunktForAvklarAnnenForelderRett,
+  AvklarAnnenForelderRettBareFarRett,
+  RevurderingManuell,
 } = composeStories(stories);
 
 describe('OmsorgOgRettFaktaIndex', () => {
@@ -57,7 +59,7 @@ describe('OmsorgOgRettFaktaIndex', () => {
     expect(screen.getByText('Søker har oppgitt å ha aleneomsorg for barnet')).toBeInTheDocument();
     await userEvent.click(screen.getByLabelText('Søker har ikke aleneomsorg for barnet'));
 
-    expect(screen.getAllByText('Har annen forelder rett til foreldrepenger i Norge?')).toHaveLength(2);
+    expect(screen.getAllByText('Har annen forelder rett til foreldrepenger i Norge?')).toHaveLength(1);
     const jaElements = screen.getAllByText('Ja');
     await userEvent.click(jaElements[jaElements.length - 1]);
 
@@ -137,4 +139,47 @@ describe('OmsorgOgRettFaktaIndex', () => {
       annenforelderMottarUføretrygd: true,
     });
   });
+
+  it('skal vise at bare far har rett til foreldrepenger når mor er uføretrygd', async () => {
+    render(<AvklarAnnenForelderRettBareFarRett isReadOnly />);
+
+    expect(screen.getAllByText('Har annen forelder rett til foreldrepenger i Norge?')).toHaveLength(2);
+    expect(screen.getByText('Har annen forelder tilstrekkelig opptjening fra land i EØS?')).toBeInTheDocument();
+    expect(screen.getByText('Mottar annen forelder uføretrygd, jfr 14-14 tredje ledd?')).toBeInTheDocument();
+    expect(await screen.findByText('Mor har ikke rett og er uføretrygded i pesys.')).toBeInTheDocument();
+    const bekreftOgFortsettKnapp = screen.queryByText('Bekreft og fortsett');
+    expect(bekreftOgFortsettKnapp).not.toBeInTheDocument();
+
+    const neiRadioButtons = screen.getAllByLabelText('Nei') as HTMLInputElement[];
+    const checkedNeiRadioButtons = neiRadioButtons.filter(radio => radio.checked);
+
+    expect(checkedNeiRadioButtons).toHaveLength(3);
+    checkedNeiRadioButtons.forEach(radio => {
+      expect(radio).toBeDisabled();
+    });
+  });
+
+  it('skal vise i readonly modus for historisk valgte options når revurdering åpnes', async () => {
+    render(<RevurderingManuell isReadOnly={true} />);
+
+    expect(screen.getAllByText('Har annen forelder rett til foreldrepenger i Norge?')).toHaveLength(2);
+    expect(screen.getByText('Har annen forelder tilstrekkelig opptjening fra land i EØS?')).toBeInTheDocument();
+    expect(screen.getByText('Mottar annen forelder uføretrygd, jfr 14-14 tredje ledd?')).toBeInTheDocument();
+    const bekreftOgFortsettKnapp = screen.queryByText('Bekreft og fortsett');
+    expect(bekreftOgFortsettKnapp).not.toBeInTheDocument();
+
+    const neiRadioButtons = screen.getAllByLabelText('Nei') as HTMLInputElement[];
+    const checkedNeiRadioButtons = neiRadioButtons.filter(radio => radio.checked);
+    expect(checkedNeiRadioButtons).toHaveLength(2);
+    checkedNeiRadioButtons.forEach(radio => {
+      expect(radio).toBeDisabled();
+    });
+
+    const jaRadioButtons = screen.getAllByLabelText('Ja') as HTMLInputElement[];
+    const checkedJaRadioButtons = jaRadioButtons.filter(radio => radio.checked);
+    expect(checkedJaRadioButtons).toHaveLength(1);
+    checkedJaRadioButtons.forEach(radio => {
+      expect(radio).toBeDisabled();
+    });
+  });
 });
diff --git a/packages/fakta/fakta-omsorg-og-rett/src/OmsorgOgRettFaktaIndex.stories.tsx b/packages/fakta/fakta-omsorg-og-rett/src/OmsorgOgRettFaktaIndex.stories.tsx
index 30de3363257..b92d4cc67dc 100644
--- a/packages/fakta/fakta-omsorg-og-rett/src/OmsorgOgRettFaktaIndex.stories.tsx
+++ b/packages/fakta/fakta-omsorg-og-rett/src/OmsorgOgRettFaktaIndex.stories.tsx
@@ -89,10 +89,22 @@ const defaultOmsorgOgRett: OmsorgOgRett = {
     harAnnenpartForeldrepenger: Verdi.NEI,
     harAnnenpartEngangsstønad: Verdi.NEI,
   },
-  manuellBehandlingResultat: undefined,
+  manuellBehandlingResultat: null,
   relasjonsRolleType: RelasjonsRolleType.FAR,
 };
 
+const aleneOmsorgForOmsorgOgRett: OmsorgOgRett = {
+  søknad: {
+    søkerHarAleneomsorg: Verdi.JA,
+    annenpartIdent: null,
+    annenpartBostedsland: null,
+    annenpartRettighet: null,
+  },
+  registerdata: null,
+  manuellBehandlingResultat: null,
+  relasjonsRolleType: RelasjonsRolleType.MOR,
+};
+
 const meta = {
   title: 'fakta/fakta-omsorg-og-rett',
   component: OmsorgOgRettFaktaIndex,
@@ -120,6 +132,7 @@ export const HarAksjonspunktForAvklarAleneomsorg: Story = {
         kanLoses: true,
       },
     ] as Aksjonspunkt[],
+    omsorgOgRett: aleneOmsorgForOmsorgOgRett,
   },
 };
 
@@ -158,5 +171,101 @@ export const HarAksjonspunktForAvklarAnnenForelderRett: Story = {
         kanLoses: true,
       },
     ] as Aksjonspunkt[],
+    omsorgOgRett: {
+      søknad: {
+        søkerHarAleneomsorg: Verdi.NEI,
+        annenpartIdent: null,
+        annenpartBostedsland: null,
+        annenpartRettighet: {
+          harRettNorge: Verdi.JA,
+          harOppholdEØS: Verdi.IKKE_RELEVANT,
+          harRettEØS: Verdi.IKKE_RELEVANT,
+          harUføretrygd: Verdi.IKKE_RELEVANT,
+        },
+      },
+      registerdata: {
+        harAnnenpartUføretrygd: Verdi.IKKE_RELEVANT,
+        harAnnenpartForeldrepenger: Verdi.NEI,
+        harAnnenpartEngangsstønad: Verdi.NEI,
+      },
+      manuellBehandlingResultat: null,
+      relasjonsRolleType: RelasjonsRolleType.FAR,
+    },
+  },
+};
+
+export const AvklarAnnenForelderRettBareFarRett: Story = {
+  args: {
+    aksjonspunkterForPanel: [
+      {
+        definisjon: AksjonspunktKode.AVKLAR_ANNEN_FORELDER_RETT,
+        status: AksjonspunktStatus.UTFORT,
+        begrunnelse: 'Mor har ikke rett og er uføretrygded i pesys.',
+        kanLoses: false,
+      },
+    ] as Aksjonspunkt[],
+    isReadOnly: true,
+    omsorgOgRett: {
+      søknad: {
+        søkerHarAleneomsorg: Verdi.NEI,
+        annenpartIdent: null,
+        annenpartBostedsland: null,
+        annenpartRettighet: {
+          harRettNorge: Verdi.NEI,
+          harOppholdEØS: Verdi.IKKE_RELEVANT,
+          harRettEØS: Verdi.IKKE_RELEVANT,
+          harUføretrygd: Verdi.JA,
+        },
+      },
+      registerdata: {
+        harAnnenpartUføretrygd: Verdi.JA,
+        harAnnenpartForeldrepenger: Verdi.NEI,
+        harAnnenpartEngangsstønad: Verdi.NEI,
+      },
+      manuellBehandlingResultat: {
+        søkerHarAleneomsorg: Verdi.IKKE_RELEVANT,
+        annenpartRettighet: {
+          harRettNorge: Verdi.NEI,
+          harOppholdEØS: Verdi.IKKE_RELEVANT,
+          harRettEØS: Verdi.IKKE_RELEVANT,
+          harUføretrygd: Verdi.IKKE_RELEVANT,
+        },
+      },
+      relasjonsRolleType: RelasjonsRolleType.FAR,
+    },
+  },
+};
+
+export const RevurderingManuell: Story = {
+  args: {
+    isReadOnly: false,
+    omsorgOgRett: {
+      søknad: {
+        søkerHarAleneomsorg: Verdi.NEI,
+        annenpartIdent: null,
+        annenpartBostedsland: null,
+        annenpartRettighet: {
+          harRettNorge: Verdi.NEI,
+          harOppholdEØS: Verdi.JA,
+          harRettEØS: Verdi.NEI,
+          harUføretrygd: Verdi.IKKE_RELEVANT,
+        },
+      },
+      registerdata: {
+        harAnnenpartUføretrygd: Verdi.NEI,
+        harAnnenpartForeldrepenger: Verdi.NEI,
+        harAnnenpartEngangsstønad: Verdi.NEI,
+      },
+      manuellBehandlingResultat: {
+        søkerHarAleneomsorg: Verdi.IKKE_RELEVANT,
+        annenpartRettighet: {
+          harRettNorge: Verdi.NEI,
+          harOppholdEØS: Verdi.IKKE_RELEVANT,
+          harRettEØS: Verdi.NEI,
+          harUføretrygd: Verdi.JA,
+        },
+      },
+      relasjonsRolleType: RelasjonsRolleType.MEDMOR,
+    },
   },
 };
diff --git a/packages/fakta/fakta-omsorg-og-rett/src/opplysningskort/AnnenPartsYtelser.tsx b/packages/fakta/fakta-omsorg-og-rett/src/opplysningskort/AnnenPartsYtelser.tsx
index 0474cdb1978..1ba30b8297b 100644
--- a/packages/fakta/fakta-omsorg-og-rett/src/opplysningskort/AnnenPartsYtelser.tsx
+++ b/packages/fakta/fakta-omsorg-og-rett/src/opplysningskort/AnnenPartsYtelser.tsx
@@ -9,6 +9,10 @@ interface Props {
 }
 
 export const AnnenPartsYtelser = ({ omsorgOgRett }: Props) => {
+  if (!omsorgOgRett.registerdata) {
+    return null;
+  }
+
   const harAnnenpartUføretrygd = omsorgOgRett.registerdata.harAnnenpartUføretrygd ?? Verdi.IKKE_RELEVANT;
   const harAnnenpartForeldrepenger = omsorgOgRett.registerdata.harAnnenpartForeldrepenger ?? Verdi.IKKE_RELEVANT;
   const harAnnenpartEngangsstønad = omsorgOgRett.registerdata.harAnnenpartEngangsstønad ?? Verdi.IKKE_RELEVANT;
diff --git a/packages/types/src/omsorgOgRettTsType.ts b/packages/types/src/omsorgOgRettTsType.ts
index 50cde60a160..0be353c6d6d 100644
--- a/packages/types/src/omsorgOgRettTsType.ts
+++ b/packages/types/src/omsorgOgRettTsType.ts
@@ -2,16 +2,16 @@ import { RelasjonsRolleType } from '@navikt/fp-kodeverk';
 
 export type OmsorgOgRett = {
   søknad: Søknad;
-  registerdata: RegisterData;
-  manuellBehandlingResultat?: ManuellBehandlingResultat;
+  registerdata: RegisterData | null;
+  manuellBehandlingResultat: ManuellBehandlingResultat | null;
   relasjonsRolleType: RelasjonsRolleType;
 };
 
 export type Søknad = {
   søkerHarAleneomsorg: Verdi;
-  annenpartIdent: string;
-  annenpartBostedsland: string;
-  annenpartRettighet: Rettighet;
+  annenpartIdent: string | null;
+  annenpartBostedsland: string | null;
+  annenpartRettighet: Rettighet | null;
 };
 
 export type Rettighet = {
@@ -29,7 +29,7 @@ export type RegisterData = {
 
 export type ManuellBehandlingResultat = {
   søkerHarAleneomsorg: Verdi;
-  annenpartRettighet: Rettighet;
+  annenpartRettighet: Rettighet | null;
 };
 
 export enum Verdi {


Reviews:
user: login: tor-nav
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-11T07:08:09Z
user: login: palfi
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-11T07:29:57Z

Review comments:
diff_hunk: @@ -137,4 +139,48 @@ describe('OmsorgOgRettFaktaIndex', () => {
       annenforelderMottarUføretrygd: true,
     });
   });
+
+  it('skal vise at bare far har rett til foreldrepenger når mor er uføretrygd', async () => {
+    render(<AvklarAnnenForelderRettBareFarRett isReadOnly={true} />);
+
+    expect(screen.getAllByText('Har annen forelder rett til foreldrepenger i Norge?')).toHaveLength(2);
+    expect(screen.getByText('Har annen forelder tilstrekkelig opptjening fra land i EØS?')).toBeInTheDocument();
+    expect(screen.getByText('Mottar annen forelder uføretrygd, jfr 14-14 tredje ledd?')).toBeInTheDocument();
+    const begrunnelse = await screen.findByText('Mor har ikke rett og er uføretrygded i pesys.');
+    expect(begrunnelse).toBeInTheDocument();
path: packages/fakta/fakta-omsorg-og-rett/src/OmsorgOgRettFaktaIndex.spec.tsx
user: login: tor-nav
body: Desse kan vel skrivast inline som dei andre?
created_at: 2025-03-11T07:05:07Z
author_association: CONTRIBUTOR
diff_hunk: @@ -137,4 +139,48 @@ describe('OmsorgOgRettFaktaIndex', () => {
       annenforelderMottarUføretrygd: true,
     });
   });
+
+  it('skal vise at bare far har rett til foreldrepenger når mor er uføretrygd', async () => {
+    render(<AvklarAnnenForelderRettBareFarRett isReadOnly={true} />);
path: packages/fakta/fakta-omsorg-og-rett/src/OmsorgOgRettFaktaIndex.spec.tsx
user: login: tor-nav
body: kan skrivast kun isReadonly
created_at: 2025-03-11T07:06:29Z
author_association: CONTRIBUTOR
diff_hunk: @@ -120,6 +132,9 @@ export const HarAksjonspunktForAvklarAleneomsorg: Story = {
         kanLoses: true,
       },
     ] as Aksjonspunkt[],
+    omsorgOgRett: {
+      ...aleneOmsorgForOmsorgOgRett,
path: packages/fakta/fakta-omsorg-og-rett/src/OmsorgOgRettFaktaIndex.stories.tsx
user: login: tor-nav
body: Denne kan med fordel skrivast  omsorgOgRett=aleneOmsorgForOmsorgOgRett
created_at: 2025-03-11T07:07:50Z
author_association: CONTRIBUTOR

PR comments:
user: login: sonarqubecloud[bot]
created_at: 2025-03-11T08:36:23Z
body: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=navikt_fp-frontend&pullRequest=6254) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=navikt_fp-frontend&pullRequest=6254&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=navikt_fp-frontend&pullRequest=6254&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=navikt_fp-frontend&pullRequest=6254&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=navikt_fp-frontend&pullRequest=6254&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=navikt_fp-frontend&pullRequest=6254&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=navikt_fp-frontend&pullRequest=6254)


author_association: NONE