Skip to content

Commit

Permalink
Merge branch 'master' into ut-av-sanity
Browse files Browse the repository at this point in the history
  • Loading branch information
ma10s authored Oct 30, 2023
2 parents 65d9ff4 + 0aaf4b0 commit 938bd29
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 76 deletions.
17 changes: 2 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,20 +57,7 @@ Det skrives ut 3 ulike tekstbolker i "Utdata"-fanen under kodesnutten. Denne ska

## Sett opp Prettier lokalt on save (IntelliJ)

1. I IntelliJ, åpne `Preferences/Plugins` for så å søke opp og installere `File Watchers` og `Prettier` hvis dette ikke allerede er gjort.
2. Finn `File Watchers` under `Preferences/Tools/File Watchers`, og trykk på `+-ikonet nederst til venstre. for å legge til en ny Watcher.
3. Fyll deretter inn feltene slik som tabellen under, og fjern ellers avhuking på `Auto-Save edited files to trigger the watcher` og `Trigger the watcher on external changes`. Trykk ok.


| File Watcher | Second Header |
| -------- | ------------ |
| Name | Prettier |
| File type | any |
| Scope | Project Files |
| Program | $ProjectFileDir$/node_modules/.bin/prettier |
| Arguments | --write $FilePathRelativeToProjectRoot$ |
| Output paths to refresh | $FilePathRelativeToProjectRoot$ |
| Working Directory | $ProjectFileDir$ |

1. I IntelliJ, åpne settings. Finn prettier. Ligger under Languages and Frameworks -> Javascript -> Prettier.
2. Sjekk av bokser for: 'On reformat code' og 'On save'

Test om Prettier fungerer ved å gå inn i en tilfeldig tsx-fil, lag et par nye linjer, og `Ctrl`+ `S`. Hvis koden reformatteres (fjerner alle utenom en av de tomme linjene), så er Prettier på plass lokalt! :sparkles:
2 changes: 2 additions & 0 deletions src/models/søknad/toggles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@ export interface Toggles {
export enum ToggleName {
feilsituasjon = 'familie.ef.soknad.feilsituasjon',
leggTilNynorsk = 'familie.ef.soknad.nynorsk',

validerBosituasjon = 'familie.ef.soknad.validerbosituasjon',
}
109 changes: 57 additions & 52 deletions src/overgangsstønad/steg/7-oppsummering/Oppsummering.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@ import { useNavigationType } from 'react-router-dom';
import { ESkjemanavn, skjemanavnIdMapping } from '../../../utils/skjemanavn';
import {
aktivitetSchema,
bosituasjonSchema,
datoSkalGifteSegEllerBliSamboerSchema,
fødselsdatoSchema,
identSchema,
listManglendeFelter,
ManglendeFelter,
manglendeFelterTilTekst,
Expand All @@ -36,8 +38,11 @@ import {
sivilstatusSchema,
} from '../../../utils/validering/validering';
import { Accordion, Alert, BodyShort } from '@navikt/ds-react';
import { ToggleName } from '../../../models/søknad/toggles';
import { useToggles } from '../../../context/TogglesContext';

const Oppsummering: React.FC = () => {
const { toggles } = useToggles();
const intl = useLokalIntlContext();
const { mellomlagreOvergangsstønad, søknad } = useSøknad();
const skjemaId = skjemanavnIdMapping[ESkjemanavn.Overgangsstønad];
Expand All @@ -58,24 +63,52 @@ const Oppsummering: React.FC = () => {
// eslint-disable-next-line
}, []);

useEffect(() => {
bosituasjonSchema
.validate(søknad.bosituasjon)
.then()
.catch((e) => {
if (
!manglendeFelter.includes(
manglendeFelterTilTekst[ManglendeFelter.BOSITUASJONEN_DIN]
)
) {
settManglendeFelter((prev: string[]): string[] => [
...prev,
manglendeFelterTilTekst[ManglendeFelter.BOSITUASJONEN_DIN],
]);
const feilIkkeRegistrertFor = (felt: ManglendeFelter) => {
return !manglendeFelter.includes(manglendeFelterTilTekst[felt]);
};

const oppdaterManglendeFelter = (manglendeFelt: ManglendeFelter) => {
settManglendeFelter((prev: string[]): string[] => [
...prev,
manglendeFelterTilTekst[manglendeFelt],
]);
};

const validerHvisSøkerSkalGifteSeg = () => {
if (søknad.bosituasjon.skalGifteSegEllerBliSamboer?.verdi) {
const harGyldigDatoForGiftemål =
datoSkalGifteSegEllerBliSamboerSchema.isValidSync(
søknad.bosituasjon.datoSkalGifteSegEllerBliSamboer
);
const harGyldigIdent =
søknad.bosituasjon.vordendeSamboerEktefelle &&
identSchema.isValidSync(
søknad.bosituasjon.vordendeSamboerEktefelle.ident
);
const harGyldigFødselsdato =
søknad.bosituasjon.vordendeSamboerEktefelle &&
fødselsdatoSchema.isValidSync(
søknad.bosituasjon.vordendeSamboerEktefelle.fødselsdato
);
const harGyldigIdentEllerDatoPåVordende =
harGyldigFødselsdato || harGyldigIdent;
if (!harGyldigIdentEllerDatoPåVordende || !harGyldigDatoForGiftemål) {
if (feilIkkeRegistrertFor(ManglendeFelter.BOSITUASJONEN_DIN)) {
oppdaterManglendeFelter(ManglendeFelter.BOSITUASJONEN_DIN);
}
logManglendeFelter(
ESkjemanavn.Overgangsstønad,
skjemaId,
'ValidationError: vordendeSamboerEktefelle mangler gyldig ident eller fødselsdato'
);
}
}
};

logManglendeFelter(ESkjemanavn.Overgangsstønad, skjemaId, e);
});
useEffect(() => {
{
toggles[ToggleName.validerBosituasjon] && validerHvisSøkerSkalGifteSeg();
}

aktivitetSchema
.validate(søknad.aktivitet)
Expand All @@ -86,66 +119,38 @@ const Oppsummering: React.FC = () => {
manglendeFelterTilTekst[ManglendeFelter.AKTIVITET]
)
) {
settManglendeFelter((prev: string[]): string[] => [
...prev,
manglendeFelterTilTekst[ManglendeFelter.AKTIVITET],
]);
oppdaterManglendeFelter(ManglendeFelter.AKTIVITET);
}

logManglendeFelter(ESkjemanavn.Overgangsstønad, skjemaId, e);
});

sivilstatusSchema
.validate(søknad.sivilstatus)
.then()
.catch((e) => {
if (
!manglendeFelter.includes(
manglendeFelterTilTekst[ManglendeFelter.OM_DEG]
)
) {
settManglendeFelter((prev: string[]): string[] => [
...prev,
manglendeFelterTilTekst[ManglendeFelter.OM_DEG],
]);
if (feilIkkeRegistrertFor(ManglendeFelter.OM_DEG)) {
oppdaterManglendeFelter(ManglendeFelter.OM_DEG);
}

logManglendeFelter(ESkjemanavn.Overgangsstønad, skjemaId, e);
});

merOmDinSituasjonSchema
.validate(søknad.merOmDinSituasjon)
.then()
.catch((e) => {
if (
!manglendeFelter.includes(
manglendeFelterTilTekst[ManglendeFelter.MER_OM_DIN_SITUASJON]
)
) {
settManglendeFelter((prev: string[]): string[] => [
...prev,
manglendeFelterTilTekst[ManglendeFelter.MER_OM_DIN_SITUASJON],
]);
if (feilIkkeRegistrertFor(ManglendeFelter.MER_OM_DIN_SITUASJON)) {
oppdaterManglendeFelter(ManglendeFelter.MER_OM_DIN_SITUASJON);
}

logManglendeFelter(ESkjemanavn.Overgangsstønad, skjemaId, e);
});

medlemskapSchema
.validate(søknad.medlemskap)
.then()
.catch((e) => {
if (
!manglendeFelter.includes(
manglendeFelterTilTekst[ManglendeFelter.OM_DEG]
)
) {
settManglendeFelter((prev: string[]): string[] => [
...prev,
manglendeFelterTilTekst[ManglendeFelter.OM_DEG],
]);
if (feilIkkeRegistrertFor(ManglendeFelter.OM_DEG)) {
oppdaterManglendeFelter(ManglendeFelter.OM_DEG);
}

logManglendeFelter(ESkjemanavn.Overgangsstønad, skjemaId, e);
});
}, [søknad, manglendeFelter, skjemaId]);
Expand Down
30 changes: 21 additions & 9 deletions src/utils/validering/validering.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { object, string, array } from 'yup';
import { dnr as dnrValidator, fnr as fnrValidator } from '@navikt/fnrvalidator';

// eslint-disable-next-line
const datoRegex = /^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$/;
Expand Down Expand Up @@ -113,13 +114,24 @@ export const sivilstatusSchema = object({
}).default(undefined),
});

export const bosituasjonSchema = object({
datoSkalGifteSegEllerBliSamboer: object({
verdi: string().required().matches(datoRegex, 'Ikke en gyldig dato'),
}).default(undefined),
vordendeSamboerEktefelle: object({
fødselsdato: object({
verdi: string().required().matches(datoRegex, 'Ikke en gyldig dato'),
}),
}).default(undefined),
const identErGyldig = (ident: string): boolean =>
fnrValidator(ident).status === 'valid' ||
dnrValidator(ident).status === 'valid';

export const datoSkalGifteSegEllerBliSamboerSchema = object({
verdi: string().required().matches(datoRegex, 'Ikke en gyldig dato'),
});

export const identSchema = object({
verdi: string()
.required()
.test('ident', 'Ikke gyldig ident', (ident: string) =>
identErGyldig(ident)
),
});

export const fødselsdatoSchema = object({
verdi: string()
.required('Fødselsdato mangler')
.matches(datoRegex, 'Ikke en gyldig dato'),
});

0 comments on commit 938bd29

Please sign in to comment.