Skip to content

Commit

Permalink
EndringPSB - Åpne for brukere som har flere saker, men bare én sak in…
Browse files Browse the repository at this point in the history
…nenfor tillatt endringstidsrom (#1106)

* Tillate arbeidsgiver ikke i aa-reg
  • Loading branch information
frodehansen2 authored Sep 13, 2023
1 parent 08617f0 commit 361998f
Show file tree
Hide file tree
Showing 70 changed files with 748 additions and 322 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export const flereSakerMock = [
'2022-12-05/2022-12-19',
'2023-01-17/2023-01-19',
'2023-01-24/2023-01-25',
'2023-01-27/2023-02-15',
'2023-01-27/2023-06-15',
],
endringsperiode: [],
trekkKravPerioder: [],
Expand Down Expand Up @@ -218,7 +218,7 @@ export const flereSakerMock = [
ytelse: {
type: 'PLEIEPENGER_SYKT_BARN',
barn: { norskIdentitetsnummer: '00000000000', fødselsdato: null },
søknadsperiode: ['2022-08-01/2022-10-30', '2022-12-01/2022-12-28', '2023-01-04/2023-01-22'],
søknadsperiode: ['2022-08-01/2022-10-30', '2022-12-01/2022-12-28', '2023-01-04/2023-06-22'],
endringsperiode: [],
trekkKravPerioder: [],
opptjeningAktivitet: {},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ describe('Endre arbeidstid for én arbeidsgiver', () => {
saker: enSakEnArbeidsgiverMock,
});

beforeEach(() => {
cyHelpers.setTestDate();
});
before(() => {
cy.clock(cyHelpers.date);
cy.clearLocalStorage();
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ describe('Endre arbeidstid for flere arbeidsgivere', () => {
mellomlagring: {},
});
before(() => {
cy.clock(cyHelpers.date);
cyHelpers.setTestDate();
cy.clearLocalStorage();
cy.visit(cyHelpers.startUrl);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { contextConfig } from '../../contextConfig';
import { enSakEnArbeidsgiverEnPeriodeMock } from '../../data/enSakEnArbeidsgiverEnPeriodeMock';
import { enSakEnArbeidsgiverMock } from '../../data/enSakEnArbeidsgiverMock';
import { flereArbeidsgivereMock } from '../../data/flereArbeidsgivereMock';
import { submitSkjema } from '../../utils';
import { cyHelpers } from './cyHelpers';

const settings = `
Expand All @@ -21,7 +20,6 @@ window.appSettings={
MSW:'off',
PUBLIC_PATH:'/familie/sykdom-i-familien/soknad/endringsmelding-pleiepenger',
USE_AMPLITUDE:'true',
UKJENT_ARBEIDSFOHOLD:'true',
IMAGE:'ghcr.io/navikt/sif-brukerdialog/endringsmelding-pleiepenger-mono:825c85c3ef8c5a7ac4906dd4443620715a40a68a',
};`;

Expand All @@ -33,7 +31,7 @@ describe('Ukjent arbeidsgiver - jobber ikke', () => {
});

before(() => {
cy.clock(cyHelpers.date);
cyHelpers.setTestDate();
cy.clearLocalStorage();
});

Expand All @@ -53,7 +51,7 @@ describe('Ukjent arbeidsgiver - jobber vanlig', () => {
});

before(() => {
cy.clock(cyHelpers.date);
cyHelpers.setTestDate();
cy.clearLocalStorage();
});

Expand All @@ -73,7 +71,7 @@ describe('Ukjent arbeidsgiver - redusert', () => {
});

before(() => {
cy.clock(cyHelpers.date);
cyHelpers.setTestDate();
cy.clearLocalStorage();
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ const captureScreenshot = () => {
// cy.screenshot({ capture: 'fullPage' });
};

const setTestDate = () => {
cy.clock(cyHelpers.date.getTime(), ['Date']);
};

const startSøknad = ({
endreArbeidstid,
endreLovbestemtFerie,
Expand Down Expand Up @@ -82,7 +86,7 @@ const leggTilFerie = (submit?: boolean) => {
cy.get('.lovbestemtFerieListe li').should('have.length', 2);
cy.get('.lovbestemtFerieListe li:nth-child(2) .lovbestemtFerieListe__ferie__periode .dato').should(
'have.text',
'søndag 20.11.2022 - fredag 25.11.2022'
'søndag 20.11.2022 - fredag 25.11.2022',
);
});
cy.checkA11y();
Expand All @@ -106,7 +110,7 @@ const endreOgFjernFerie = () => {
cy.get('.lovbestemtFerieListe li').should('have.length', 2);
cy.get('.lovbestemtFerieListe li:nth-child(2) .lovbestemtFerieListe__ferie__periode .dato').should(
'have.text',
'mandag 28.11.2022 - tirsdag 29.11.2022'
'mandag 28.11.2022 - tirsdag 29.11.2022',
);
cy.checkA11y();
});
Expand All @@ -116,7 +120,7 @@ const endreOgFjernFerie = () => {
cy.get('.lovbestemtFerieListe li:nth-child(1) .lovbestemtFerieListe__ferie__fjernKnapp').click();
cy.get('.lovbestemtFerieListe li').should('have.length', 2);
const angreKnapp = cy.get(
'.lovbestemtFerieListe li:nth-child(1) button[data-testid="angre_fjern_ferie_knapp"]'
'.lovbestemtFerieListe li:nth-child(1) button[data-testid="angre_fjern_ferie_knapp"]',
);
angreKnapp.should('exist');
});
Expand Down Expand Up @@ -251,7 +255,7 @@ interface UkeMedArbeidstid {
const fyllUtArbeidstidUkjentArbeidsforhold = (
orgnummer: string,
arbeiderIPeriodenSvar: 'HELT_FRAVÆR' | 'SOM_VANLIG' | 'REDUSERT',
uker?: UkeMedArbeidstid[]
uker?: UkeMedArbeidstid[],
) => {
if (arbeiderIPeriodenSvar === 'REDUSERT' && uker) {
it('legger til arbeidstid for enkeltuker', () => {
Expand Down Expand Up @@ -358,6 +362,7 @@ const bekreftOpplysningerOgSendInn = () => {
export const cyHelpers = {
startUrl,
date,
setTestDate,
startSøknad,
fyllUtUkjentArbeidsforhold,
leggTilOgFjernFerie,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const startUrl = 'http://localhost:8080';

describe('Bruker har ikke tilgang til løsningen', () => {
beforeEach(() => {
cy.clock(cyHelpers.date.getTime(), ['Date']);
cyHelpers.setTestDate();
});
describe('Ugyldig k9format på sak', () => {
contextConfig({ saker: [ugyldigK9FormatSakMock], arbeidsgivere: enArbeidsgiverMock });
Expand All @@ -34,7 +34,7 @@ describe('Bruker har ikke tilgang til løsningen', () => {
});
describe('Flere saker', () => {
contextConfig({ saker: flereSakerMock, arbeidsgivere: enArbeidsgiverMock });
it('Viser riktig melding når bruker har flere saker', () => {
it('Viser riktig melding når bruker har flere saker som er innenfor endringsperiode', () => {
cy.visit(startUrl);
cy.wait(['@getSak', '@getArbeidsgiver', '@getSoker']).then(() => {
expect(getTestElement('ingen-tilgang-heading').first().contains('Hei STERK'));
Expand All @@ -44,7 +44,7 @@ describe('Bruker har ikke tilgang til løsningen', () => {
});
describe('Er SN', () => {
contextConfig({ saker: enSakSN, arbeidsgivere: enArbeidsgiverMock });
it('Viser riktig melding når bruker har flere saker', () => {
it('Viser riktig melding når bruker er selvstendig næringsdrivende', () => {
cy.visit(startUrl);
cy.wait(['@getSak', '@getArbeidsgiver', '@getSoker']).then(() => {
expect(getTestElement('ingen-tilgang-heading').first().contains('Hei STERK'));
Expand Down
2 changes: 1 addition & 1 deletion apps/endringsmelding-pleiepenger/envSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ const envSettings = (MSW) => {
MINSIDE_URL: '${process.env.MINSIDE_URL}',
MSW: '${MSW || process.env.MSW}',
PUBLIC_PATH: '${process.env.PUBLIC_PATH}',
UKJENT_ARBEIDSFOHOLD: '${process.env.UKJENT_ARBEIDSFOHOLD}',
USE_AMPLITUDE: '${process.env.USE_AMPLITUDE}',
IMAGE: '${process.env.IMAGE}',
};`
.trim()
.replace(/ /g, '');
Expand Down
1 change: 0 additions & 1 deletion apps/endringsmelding-pleiepenger/nais/dev-gcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
"MSW_MODE": "dev",
"NPM_CONFIG_CACHE": "/tmp",
"PUBLIC_PATH": "/familie/sykdom-i-familien/soknad/endringsmelding-pleiepenger",
"UKJENT_ARBEIDSFOHOLD": "true",
"USE_AMPLITUDE": "true"
},
"externalHosts": ["www.nav.no", "dekoratoren.ekstern.dev.nav.no"],
Expand Down
3 changes: 1 addition & 2 deletions apps/endringsmelding-pleiepenger/nais/prod-gcp.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@
"MINSIDE_URL": "https://www.nav.no/minside",
"NPM_CONFIG_CACHE": "/tmp",
"PUBLIC_PATH": "/familie/sykdom-i-familien/soknad/endringsmelding-pleiepenger",
"USE_AMPLITUDE": "true",
"UKJENT_ARBEIDSFOHOLD": "true"
"USE_AMPLITUDE": "true"
},
"externalHosts": ["www.nav.no"],
"ingresses": ["https://www.nav.no/familie/sykdom-i-familien/soknad/endringsmelding-pleiepenger"],
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
import { getEnvironmentVariable } from '@navikt/sif-common-core-ds/lib/utils/envUtils';
import { isK9FormatError, K9Format, K9FormatArbeidstid, K9Sak, UgyldigK9SakFormat } from '@types';
import { appSentryLogger, maskString, parseK9Format } from '@utils';
import {
appSentryLogger,
getEndringsdato,
getTillattEndringsperiode,
isK9SakErInnenforGyldigEndringsperiode,
maskString,
parseK9Format,
} from '@utils';
import api from '../api';
import { ApiEndpointInnsyn } from './';
import { verifyK9Format } from '../../utils/verifyk9Format';
Expand All @@ -27,17 +34,21 @@ const maskK9FormatSak = (sak: K9Format) => {
};

const sakerEndpoint = {
fetch: async (): Promise<K9SakResult[]> => {
fetch: async (): Promise<{ k9Saker: K9SakResult[]; eldreSaker: K9SakResult[] }> => {
const endringsperiode = getTillattEndringsperiode(getEndringsdato());
try {
const { data } = await api.innsyn.get<K9Format[]>(ApiEndpointInnsyn.sak);
const k9saker: K9SakResult[] = [];
const k9Saker: K9SakResult[] = [];
const eldreSaker: K9SakResult[] = [];
data.forEach((sak) => {
try {
const erGyldig = verifyK9Format(sak);
if (erGyldig) {
const parsedSak = parseK9Format(sak);
if (parsedSak.ytelse.søknadsperioder.length > 0) {
k9saker.push(parsedSak);
if (isK9SakErInnenforGyldigEndringsperiode(parsedSak, endringsperiode)) {
k9Saker.push(parsedSak);
} else {
eldreSaker.push(parsedSak);
}
if (getEnvironmentVariable('DEBUG') === 'true') {
appSentryLogger.logInfo('debug.k9format.gyldig', JSON.stringify(maskK9FormatSak(sak)));
Expand All @@ -51,15 +62,15 @@ const sakerEndpoint = {
const ugyldigSak: UgyldigK9SakFormat = {
erUgyldigK9SakFormat: true,
};
k9saker.push(ugyldigSak);
k9Saker.push(ugyldigSak);
appSentryLogger.logError('ugyldigK9Format', JSON.stringify(error));
appSentryLogger.logInfo('debug.k9format.ikkeGyldig', JSON.stringify(maskK9FormatSak(sak)));
} else {
throw error;
}
}
});
return Promise.resolve(k9saker);
return Promise.resolve({ k9Saker, eldreSaker });
} catch (error) {
return Promise.reject(error);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export type SøknadStatePersistence = {
søknadsdata: Søknadsdata;
søknadRoute?: SøknadRoutes;
søknadHashString: string;
harUkjentArbeidsforhold: boolean;
harArbeidsgivereIkkeISak: boolean;
valgteEndringer: ValgteEndringer;
søknadSteps: StepId[];
metadata: {
Expand Down Expand Up @@ -67,7 +67,7 @@ const søknadStateEndpoint: SøknadStatePersistenceEndpoint = {
create: persistSetup.create,
purge: persistSetup.purge,
update: (
{ søknadsdata, søknadRoute, barnAktørId, valgteEndringer, harUkjentArbeidsforhold, søknadSteps },
{ søknadsdata, søknadRoute, barnAktørId, valgteEndringer, harArbeidsgivereIkkeISak, søknadSteps },
søker,
) => {
return persistSetup.update({
Expand All @@ -77,7 +77,7 @@ const søknadStateEndpoint: SøknadStatePersistenceEndpoint = {
søknadsdata,
søknadRoute,
valgteEndringer,
harUkjentArbeidsforhold,
harArbeidsgivereIkkeISak,
søknadSteps,
metadata: {
updatedTimestamp: new Date().toISOString(),
Expand Down
25 changes: 16 additions & 9 deletions apps/endringsmelding-pleiepenger/src/app/api/fetchInitialData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ export const fetchInitialData = async (
): Promise<{
søker: Søker;
k9saker: K9Sak[];
antallSakerFørEndringsperiode: number;
arbeidsgivere: Arbeidsgiver[];
lagretSøknadState?: SøknadStatePersistence;
}> => {
Expand All @@ -50,7 +51,10 @@ export const fetchInitialData = async (
let k9saker: K9Sak[];
let arbeidsgivere: Arbeidsgiver[];

return kontrollerSaker(k9sakerResult, tillattEndringsperiode)
const sakerInnenforEndringsperiode = k9sakerResult.k9Saker;
const sakerFørEndringsperiode = k9sakerResult.eldreSaker;

return kontrollerSaker(sakerInnenforEndringsperiode, sakerFørEndringsperiode.length, tillattEndringsperiode)
.then((result) => {
k9saker = result.k9saker;
const periodeForArbeidsgiveroppslag = getPeriodeForArbeidsgiverOppslag(
Expand All @@ -68,14 +72,15 @@ export const fetchInitialData = async (
})
.then((result) => {
arbeidsgivere = result;
return kontrollerTilgang(k9saker, arbeidsgivere, tillattEndringsperiode);
return kontrollerTilgang(k9saker, tillattEndringsperiode);
})
.then(() => hentOgKontrollerLagretSøknadState(søker, k9saker))
.then((lagretSøknadState) => {
return Promise.resolve({
søker,
arbeidsgivere,
k9saker,
antallSakerFørEndringsperiode: sakerFørEndringsperiode.length,
lagretSøknadState,
});
})
Expand Down Expand Up @@ -112,11 +117,17 @@ const getKanIkkeBrukeSøknadRejection = (

const kontrollerSaker = (
k9sakerResult: K9SakResult[],
antallSakerFørEndringsperiode: number,
tillattEndringsperiode: DateRange,
): Promise<{ k9saker: K9Sak[]; dateRangeAlleSaker: DateRange }> => {
if (k9sakerResult.length === 0) {
if (k9sakerResult.length === 0 && antallSakerFørEndringsperiode === 0) {
return Promise.reject(getKanIkkeBrukeSøknadRejection([IngenTilgangÅrsak.harIngenSak]));
}
if (k9sakerResult.length === 0 && antallSakerFørEndringsperiode > 0) {
return Promise.reject(
getKanIkkeBrukeSøknadRejection([IngenTilgangÅrsak.søknadsperioderUtenforTillattEndringsperiode]),
);
}

const ugyldigk9FormatSaker: UgyldigK9SakFormat[] = k9sakerResult.filter(isUgyldigK9SakFormat);
const k9saker: K9Sak[] = k9sakerResult.filter(isK9Sak);
Expand All @@ -137,12 +148,8 @@ const kontrollerSaker = (
return Promise.resolve({ k9saker, dateRangeAlleSaker });
};

const kontrollerTilgang = async (
k9saker: K9Sak[],
arbeidsgivere: Arbeidsgiver[],
tillattEndringsperiode: DateRange,
): Promise<boolean> => {
const resultat = tilgangskontroll(k9saker, arbeidsgivere, tillattEndringsperiode);
const kontrollerTilgang = async (k9saker: K9Sak[], tillattEndringsperiode: DateRange): Promise<boolean> => {
const resultat = tilgangskontroll(k9saker, tillattEndringsperiode);
if (resultat.kanBrukeSøknad) {
return Promise.resolve(true);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export const APP_VERSJON = '1.1.2'; /** Ukjent arbeidsforhold */
export const APP_VERSJON = '1.2.0'; /** Arbeidsgivere ikke i AA-reg */
13 changes: 7 additions & 6 deletions apps/endringsmelding-pleiepenger/src/app/dev/DevFooter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { useMellomlagring } from '../hooks/useMellomlagring';
import actionsCreator from '../søknad/context/action/actionCreator';
import { relocateToWelcomePage } from '../utils/navigationUtils';
import { getScenarioFromLocalStorage, saveScenarioToLocalStorage, Scenario, scenarioer } from './scenarioer';
import './devFooter.scss';

const DevFooter: React.FunctionComponent = () => {
const [showModal, setShowModal] = useState(false);
Expand Down Expand Up @@ -46,10 +47,12 @@ const DevFooter: React.FunctionComponent = () => {
portal={true}
onClose={() => setShowModal(false)}
header={{
heading: 'Velg scenario som skal brukes',
}}>
heading: 'Velg scenario',
}}
className="scenario-modal"
style={{ width: '100%' }}>
<Modal.Body>
<FormBlock>
<div className="scenarioes">
<RadioGroup
value={scenario.value}
legend="Scenario hvor bruker har tilgang"
Expand All @@ -62,8 +65,6 @@ const DevFooter: React.FunctionComponent = () => {
</Radio>
))}
</RadioGroup>
</FormBlock>
<FormBlock>
<RadioGroup
value={scenario.value}
legend="Scenario hvor bruker stoppes"
Expand All @@ -76,7 +77,7 @@ const DevFooter: React.FunctionComponent = () => {
</Radio>
))}
</RadioGroup>
</FormBlock>
</div>
<FormBlock>
<Button
type="button"
Expand Down
Loading

0 comments on commit 361998f

Please sign in to comment.