Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ const søknadsdata: Søknadsdata = {
],
reisedagerBeskrivelse: 'Kombinerer med ferie',
},
enkeltdagEllerPeriode: 'PERIODE' as any,
kursholder: 'Barnas Fysioterapisenter i Bergen',
kursperioder: [
{
Expand All @@ -51,6 +52,7 @@ const søknadsdata: Søknadsdata = {
},
},
],
kursdager: [],
ferieuttakIPerioden: {
type: 'skalTaUtFerieSøknadsdata',
skalTaUtFerieIPerioden: true,
Expand Down Expand Up @@ -163,5 +165,5 @@ export const mellomlagringMock = {
søknadsdata,
søknadRoute: '/soknad/arbeidssituasjon',
registrerteBarn: [],
versjon: '0.2.3',
versjon: '0.4.0',
};
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
import { expect, test } from '@playwright/test';
import { SøknadRoutes } from '../../../src/app/types/SøknadRoutes';
import {
fyllUtOpplæringEnkeltdag,
fyllUtOpplæringEnPeriode,
fyllUtOpplæringFlereEnkeltdager,
fyllUtOpplæringToPerioder,
kontrollerOpplæringEnEnkeltdagOppsummering,
kontrollerOpplæringEnPeriodeOppsummering,
kontrollerOpplæringFlereEnkeltdagerOppsummering,
kontrollerOpplæringFlerePerioderOppsummering,
} from '../../utfylling-utils/2.opplæringStep';
import { routeUtils } from '../../utils/routeUtils';
Expand All @@ -16,6 +20,24 @@ test.beforeEach(async ({ page, context }) => {
});

test.describe('Opplæring-steg', () => {
test('Opplæring med én enkeltdag', async ({ page }) => {
await fyllUtOpplæringEnkeltdag(page);
await expect(page.getByRole('heading', { name: 'Din arbeidssituasjon' })).toBeVisible();
await page.getByTestId('typedFormikForm-submitButton').click();
await page.getByTestId('typedFormikForm-submitButton').click();
await page.getByTestId('typedFormikForm-submitButton').click();
await page.getByTestId('typedFormikForm-submitButton').click();
await kontrollerOpplæringEnEnkeltdagOppsummering(page);
});
test('Opplæring med flere enkeltdager', async ({ page }) => {
await fyllUtOpplæringFlereEnkeltdager(page);
await expect(page.getByRole('heading', { name: 'Din arbeidssituasjon' })).toBeVisible();
await page.getByTestId('typedFormikForm-submitButton').click();
await page.getByTestId('typedFormikForm-submitButton').click();
await page.getByTestId('typedFormikForm-submitButton').click();
await page.getByTestId('typedFormikForm-submitButton').click();
await kontrollerOpplæringFlereEnkeltdagerOppsummering(page);
});
test('Opplæring med én periode', async ({ page }) => {
await fyllUtOpplæringEnPeriode(page);
await expect(page.getByRole('heading', { name: 'Din arbeidssituasjon' })).toBeVisible();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,57 @@
import { expect, Page } from '@playwright/test';

export const fyllUtOpplæringEnkeltdag = async (page: Page) => {
await page.getByRole('heading', { name: 'Om opplæringen' }).isVisible();
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).click();
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('ArrowDown');
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('ArrowDown');
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('Enter');

await page.getByRole('radio', { name: 'Enkeltdag' }).check();
await page.getByRole('button', { name: 'Åpne datovelger' }).click();
await page.getByRole('button', { name: 'mandag 2', exact: true }).click();
await page.getByRole('group', { name: 'Timer med opplæring' }).getByLabel('Timer').click();
await page.getByRole('group', { name: 'Timer med opplæring' }).getByLabel('Timer').fill('5');
await page.getByRole('group', { name: 'Timer med reise', exact: true }).getByLabel('Timer').click();
await page.getByRole('group', { name: 'Timer med reise', exact: true }).getByLabel('Timer').fill('4');
await page.getByRole('group', { name: 'Timer med reise', exact: true }).getByLabel('Timer').press('Tab');
await page.getByRole('group', { name: 'Timer med reise', exact: true }).getByLabel('Minutter').fill('30');
await page.getByTestId('typedFormikForm-submitButton').click();
};

export const fyllUtOpplæringFlereEnkeltdager = async (page: Page) => {
await page.getByRole('heading', { name: 'Om opplæringen' }).isVisible();
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).click();
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('ArrowDown');
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('ArrowDown');
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('Enter');

await page.getByRole('radio', { name: 'Enkeltdag' }).check();
await page.getByRole('button', { name: 'Åpne datovelger' }).click();
await page.getByRole('button', { name: 'mandag 2', exact: true }).click();
await page.getByRole('group', { name: 'Timer med opplæring' }).getByLabel('Timer').click();
await page.getByRole('group', { name: 'Timer med opplæring' }).getByLabel('Timer').fill('5');
await page.getByRole('group', { name: 'Timer med reise', exact: true }).getByLabel('Timer').click();
await page.getByRole('group', { name: 'Timer med reise', exact: true }).getByLabel('Timer').fill('4');
await page.getByRole('group', { name: 'Timer med reise', exact: true }).getByLabel('Timer').press('Tab');
await page.getByRole('group', { name: 'Timer med reise', exact: true }).getByLabel('Minutter').fill('30');
await page.getByRole('button', { name: 'Legg til ny dag' }).click();
await page.getByRole('button', { name: 'Åpne datovelger' }).nth(1).click();
await page.getByRole('button', { name: 'onsdag 11' }).click();
await page.getByRole('textbox', { name: 'Timer' }).nth(2).click();
await page.getByRole('textbox', { name: 'Timer' }).nth(2).fill('2');
await page.getByRole('textbox', { name: 'Timer' }).nth(3).click();
await page.getByRole('textbox', { name: 'Timer' }).nth(3).fill('5');
await page.getByTestId('typedFormikForm-submitButton').click();
};

export const fyllUtOpplæringEnPeriode = async (page: Page) => {
await page.getByRole('heading', { name: 'Om opplæringen' }).isVisible();
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).click();
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('ArrowDown');
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('ArrowDown');
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('Enter');
await page.getByRole('radio', { name: 'Periode' }).check();
await leggTilPeriode1(page);
await leggTilReisedag(page);
await leggTilFerie(page);
Expand All @@ -19,6 +65,7 @@ export const fyllUtOpplæringToPerioder = async (page: Page) => {
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('ArrowDown');
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('ArrowDown');
await page.getByRole('combobox', { name: 'Hvor foregår opplæringen?' }).press('Enter');
await page.getByRole('radio', { name: 'Periode' }).check();
await page.getByRole('button', { name: 'Legg til ny periode' }).click();
await leggTilPeriode1(page);
await leggTilPeriode2(page);
Expand Down Expand Up @@ -110,6 +157,17 @@ export const leggTilUtenlandsopphold = async (page: Page) => {
await page.getByRole('button', { name: 'Ok' }).click();
};

export const kontrollerOpplæringEnEnkeltdagOppsummering = async (page: Page) => {
await expect(page.getByText('Hvor foregår opplæringen?Barnas')).toBeVisible();
await expect(page.getByText('02.12.2024. Kurstid: 5 t. 0 m. Reisetid: 4 t. 30 m.')).toBeVisible();
};

export const kontrollerOpplæringFlereEnkeltdagerOppsummering = async (page: Page) => {
await expect(page.getByText('Hvor foregår opplæringen?Barnas')).toBeVisible();
await expect(page.getByText('02.12.2024. Kurstid: 5 t. 0 m. Reisetid: 4 t. 30 m.')).toBeVisible();
await expect(page.getByText('11.12.2024. Kurstid: 2 t. 0 m. Reisetid: 5 t. 0 m.')).toBeVisible();
};

export const kontrollerOpplæringEnPeriodeOppsummering = async (page: Page) => {
await expect(page.getByText('Hvor foregår opplæringen?Barnas')).toBeVisible();
await expect(page.locator('li').filter({ hasText: '02.12.2024 - 08.12.2024' })).toBeVisible();
Expand All @@ -125,7 +183,7 @@ export const kontrollerOpplæringEnPeriodeOppsummering = async (page: Page) => {
export const kontrollerOpplæringFlerePerioderOppsummering = async (page: Page) => {
await expect(page.getByText('Hvor foregår opplæringen?Barnas')).toBeVisible();
await expect(
page.getByText('Hvilke dager søker du opplæringspenger?02.12.2024 - 08.12.202416.12.2024 -'),
page.getByText('Hvilke perioder søker du opplæringspenger?02.12.2024 - 08.12.202416.12.2024 -'),
).toBeVisible();
await expect(page.getByText('Reiser du på dager du ikke har kurs eller opplæring?Ja')).toBeVisible();
await expect(page.getByText('Reisedager uten kurs eller opplæringTirsdag')).toBeVisible();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
// Siste endring: fjerne spørsmål om bruker sluttet før søknadsperiode
export const MELLOMLAGRING_VERSJON = '0.2.3';
// Søke om enkeltdager
export const MELLOMLAGRING_VERSJON = '0.4.0';

/**
* 0.3.0: fjerne spørsmål om bruker sluttet før søknadsperiode
*
* Husk å oppdatere versjonsnummer i mellomlagringMock - ellers feiler Playwright testene
*/
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,9 @@ export const useOnValidSubmit = <T>(
...submitHandler(values),
];
Promise.all([...actions.map(dispatchAction)]).then(() => setSubmitted(true));
} catch {
} catch (e) {
// eslint-disable-next-line no-console
console.error(e);
setIsSubmitting(false);
}
};
Expand Down
9 changes: 7 additions & 2 deletions apps/opplaringspenger-soknad/src/app/hooks/useSendSøknad.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import { KvitteringInfo } from '../types/KvitteringInfo';
import { SøknadApiData } from '../types/søknadApiData/SøknadApiData';
import { SøknadRoutes } from '../types/SøknadRoutes';
import { getKvitteringInfoFromApiData } from '../utils/kvitteringUtils';
import { EnkeltdagEllerPeriode } from '../søknad/steps/kurs/KursStep';

export const useSendSøknad = () => {
const { dispatch } = useSøknadContext();
Expand Down Expand Up @@ -58,15 +59,19 @@ export const useSendSøknad = () => {
};

interface SendtSøknadMetadata {
enkeltdagEllerPeriode: EnkeltdagEllerPeriode;
antallEnkeltdager: number;
antallPerioder: number;
antallReisedager: number;
antallReisedager?: number;
antallFerieperioder: number;
}

const getSendtSøknadMetadata = (apiData: SøknadApiData): SendtSøknadMetadata => {
return {
enkeltdagEllerPeriode: apiData.kurs.enkeltdagEllerPeriode,
antallEnkeltdager: apiData.kurs.kursdager.length,
antallPerioder: apiData.kurs.kursperioder.length,
antallReisedager: apiData.kurs.reise.reiserUtenforKursdager ? apiData.kurs.reise.reisedager.length : 0,
antallReisedager: apiData.kurs.reise?.reiserUtenforKursdager ? apiData.kurs.reise.reisedager.length : 0,
antallFerieperioder: apiData.ferieuttakIPerioden?.skalTaUtFerieIPerioden
? apiData.ferieuttakIPerioden.ferieuttak.length
: 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { useStepFormValuesContext } from '../søknad/context/StepFormValuesConte
import { ArbeidssituasjonFormValues } from '../søknad/steps/arbeidssituasjon/ArbeidssituasjonStep';
import { getArbeidssituasjonSøknadsdataFromFormValues } from '../søknad/steps/arbeidssituasjon/arbeidssituasjonStepUtils';
import { KursFormValues } from '../søknad/steps/kurs/KursStep';
import { getKursSøknadsdataFromFormValues } from '../søknad/steps/kurs/kursStepUtils';
import { getKursSøknadsdataFromFormValues } from '../søknad/steps/kurs/utils/kursStepUtils';
import { LegeerklæringFormValues } from '../søknad/steps/legeerklæring/LegeerklæringForm';
import { getLegeerklæringSøknadsdataFromFormValues } from '../søknad/steps/legeerklæring/legeerklæringStepUtils';
import { MedlemskapFormValues } from '../søknad/steps/medlemskap/MedlemskapStep';
Expand Down
5 changes: 4 additions & 1 deletion apps/opplaringspenger-soknad/src/app/i18n/appMessages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import { arbeidssituasjonMessages } from '../søknad/steps/arbeidssituasjon/arbe
import { arbeidstidMessages } from '../søknad/steps/arbeidstid/arbeidstidMessages';
import { arbeidstidPeriodeMessages } from '../søknad/steps/arbeidstid/arbeidstidPeriodeMessages';
import { kursMessages } from '../søknad/steps/kurs/kursMessages';
import { kursperiodeMessages } from '../søknad/steps/kurs/kursperioder-form-part/kursperiodeMessages';
import { kursdagMessages } from '../søknad/steps/kurs/parts/kursdager-form-part/kursdagMessages';
import { kursperiodeMessages } from '../søknad/steps/kurs/parts/kursperioder-form-part/kursperiodeMessages';
import { legeerklæringMessages } from '../søknad/steps/legeerklæring/legeerklæringMessages';
import { omBarnetFormIntlMessages } from '../søknad/steps/om-barnet/om-barnet-form/omBarnetFormMessages';
import { oppsummeringMessages } from '../søknad/steps/oppsummering/oppsummeringMessages';
Expand All @@ -27,6 +28,7 @@ const nb = {
...kursperiodeMessages.nb,
...arbeidstidMessages.nb,
...omBarnetFormIntlMessages.nb,
...kursdagMessages.nb,

'application.title': 'Søknad om opplæringspenger',

Expand Down Expand Up @@ -227,6 +229,7 @@ const nn: Record<keyof typeof nb, string> = {
...oppsummeringMessages.nn,
...validateApiDataMessages.nn,
...velkommenPageMessages.nn,
...kursdagMessages.nn,

'application.title': 'Søknad om opplæringspengar',

Expand Down

This file was deleted.

Loading
Loading