Skip to content
Open
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
a9ee331
Versjon 0 - spørre om fravær i stedet for arbeidstid
frodehansen2 Feb 2, 2026
cf348b2
Fix + skru på toggle
frodehansen2 Feb 2, 2026
ecfcf4e
fix 2
frodehansen2 Feb 2, 2026
30d6bff
Tydeligere toggle
frodehansen2 Feb 2, 2026
d030406
Feature endring
frodehansen2 Feb 2, 2026
a589a7a
Midlertidig håndtering av kurstid og reisetid ved fravær
frodehansen2 Feb 3, 2026
179939e
Toggle navneendring
frodehansen2 Feb 3, 2026
c111a4a
oppdatere mock mellomlagringsversjon
frodehansen2 Feb 3, 2026
f2976a8
Fix PW-test
frodehansen2 Feb 3, 2026
1578f5f
Revert define i feil app
frodehansen2 Feb 3, 2026
f40dfab
Fix feil mapping av api-data
frodehansen2 Feb 4, 2026
967ae54
Merge branch 'main' into opplaring-fravar
frodehansen2 Feb 10, 2026
e67acff
Merge branch 'main' into opplaring-fravar
frodehansen2 Feb 12, 2026
67deee2
Fjerne fravær feature
frodehansen2 Feb 12, 2026
f055e0b
demo versjon
frodehansen2 Feb 12, 2026
0e04e16
demo index.html
frodehansen2 Feb 12, 2026
e8892f1
retry [gh-pages]
frodehansen2 Feb 12, 2026
387a259
Demo info [gh-pages]
frodehansen2 Feb 12, 2026
8fc4fd1
Fjerne unødevndig fil + rydd [gh-pages]
frodehansen2 Feb 13, 2026
007cf3e
revert index.html endringer [gh-pages]
frodehansen2 Feb 13, 2026
f211b43
Fix - reload side på arbeidstid
frodehansen2 Feb 13, 2026
b215d71
Merge branch 'main' into opplaring-fravar
frodehansen2 Feb 16, 2026
26f9737
Rydde tekster
frodehansen2 Feb 16, 2026
de150bc
Merge branch 'main' into opplaring-fravar
frodehansen2 Feb 16, 2026
a9f8821
Tekstendringer + layoutendringer, også i sif-pakker [gh-pages]
frodehansen2 Feb 17, 2026
b634b92
Tekstkorrigering [gh-pages]
frodehansen2 Feb 17, 2026
598ae81
Fix playwright-tester
frodehansen2 Feb 17, 2026
d35494f
Fix - : [gh-pages]
frodehansen2 Feb 17, 2026
c313ddf
Fjerne månedsvisning + oppdatere tekster [gh-pages]
frodehansen2 Feb 17, 2026
a77bf8c
Endringer velkommenside [gh-pages]
frodehansen2 Feb 17, 2026
482f41c
Tekstfix 2 - [gh-pages]
frodehansen2 Feb 17, 2026
e8af7f6
PW-test fix
frodehansen2 Feb 17, 2026
cb97bc1
Fjerne tekst som ikke var i bruk lenger
frodehansen2 Feb 17, 2026
837d29f
Merge branch 'main' into opplaring-fravar
frodehansen2 Feb 18, 2026
e7925a5
Merge branch 'main' into opplaring-fravar
frodehansen2 Feb 18, 2026
68a374e
Nynorsktekster
frodehansen2 Feb 19, 2026
2e5d4ae
Merge branch 'main' into opplaring-fravar
frodehansen2 Feb 19, 2026
c53ab9f
Legge til manglende valideringstekst [gh-pages]
frodehansen2 Feb 19, 2026
a03e7d1
Merge branch 'main' into opplaring-fravar
frodehansen2 Feb 19, 2026
2680c47
Tekstkorrigeringer [gh-pages]
frodehansen2 Feb 19, 2026
adb5403
Tilbakeføre tekst som skal endres [gh-pages]
frodehansen2 Feb 19, 2026
1ca6e3b
PW fix
frodehansen2 Feb 19, 2026
b36b18f
Nynorsktekster [gh-pages]
frodehansen2 Feb 20, 2026
d7f20ae
Valideringstekster - nynorsk
frodehansen2 Feb 20, 2026
7fb3f0d
Legge til at veileder-demo deployes [gh-pages]
frodehansen2 Feb 24, 2026
3079445
Fremheve info om kun velge dager en har søkt om i dialoger [gh-pages]
frodehansen2 Feb 25, 2026
d75bdb7
Tekstendring kurs - forslag [gh-pages]
frodehansen2 Feb 25, 2026
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
11 changes: 11 additions & 0 deletions .github/workflows/build-gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,17 @@ jobs:
# mkdir -p deployment/ungdomsytelse-veileder
# mv apps-intern/ungdomsytelse-veileder/dist-demo/* deployment/ungdomsytelse-veileder/

# Bygg opplaringspenger-soknad demo-app med gh-pages:rebuild
- name: Build opplaringspenger-soknad
run: yarn gh-pages:rebuild
working-directory: apps/opplaringspenger-soknad

# Flytt opplaringspenger-soknad-output til en subfolder
- name: Kopier opplaringspenger-soknad til gh-pages
run: |
mkdir -p deployment/opplaringspenger-soknad
mv apps/opplaringspenger-soknad/dist-demo/* deployment/opplaringspenger-soknad/

# Bygg ungdomsytelse-deltaker-storybook
- name: Build ungdomsytelse-deltaker-storybook
run: yarn storybook:build
Expand Down
3 changes: 2 additions & 1 deletion apps/opplaringspenger-soknad/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ node_modules/
/test-results/
/playwright-report/
/playwright/.cache/
demo/
dist-e2e
dist-demo
docs/
53 changes: 53 additions & 0 deletions apps/opplaringspenger-soknad/demo/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="no">

<head>
<meta charset="UTF-8">
<link rel="icon" type="image/svg+xml" href="/src/resources/favicon.svg">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Søknad om opplæringspenger</title>
<style>
@layer base, dekorator-base, dekorator-utilities, theme, components, utilities;
</style>
<script type="text/json" id="nav:appSettings">
{
"APP_VERSION": "dev",
"PUBLIC_PATH": "/sif-brukerdialog/opplaringspenger-soknad",
"ENV": "development",
"GITHUB_REF_NAME": "branch",
"IMAGE": "unknown",
"VELG_SCENARIO": "on",
"SIF_PUBLIC_ANALYTICS_API_KEY": "default",
"SIF_PUBLIC_APPSTATUS_DATASET": "production",
"SIF_PUBLIC_APPSTATUS_PROJECT_ID": "ryujtq87",
"SIF_PUBLIC_DEKORATOR_URL": "#",
"SIF_PUBLIC_LOGIN_URL": "#",
"SIF_PUBLIC_MINSIDE_URL": "/sif-brukerdialog/opplaringspenger-soknad/#/",
"SIF_PUBLIC_SKIP_ORGNUM_VALIDATION": "true",
"SIF_PUBLIC_USE_ANALYTICS": "false",
"SIF_PUBLIC_FEATURE_NYNORSK": "on",

"K9_BRUKERDIALOG_PROSESSERING_API_URL": "http://k9-brukerdialog-prosessering",
"K9_BRUKERDIALOG_PROSESSERING_API_SCOPE": "scope",
"K9_BRUKERDIALOG_PROSESSERING_FRONTEND_PATH": "/sif-brukerdialog/opplaringspenger-soknad/api/k9-brukerdialog",

"K9_SAK_INNSYN_FRONTEND_PATH": "/sif-brukerdialog/opplaringspenger-soknad/api/k9-sak-innsyn",
"K9_SAK_INNSYN_API_SCOPE": "scope",
"K9_SAK_INNSYN_API_URL": "#"
}
</script>

<link type="text/css" rel="stylesheet"
href="https://cdn.nav.no/personbruker/decorator-next/public/assets/main-BU5XK9x5.css">
<link rel="preload" href="https://cdn.nav.no/aksel/fonts/SourceSans3-normal.woff2" as="font" type="font/woff2"
crossorigin="">
</head>

<body>
<div id="decorator-header"></div>
<div id="root"></div>
<div id="decorator-footer"></div>
<script type="module" src="/src/app/main.tsx"></script>
</body>

</html>
4 changes: 3 additions & 1 deletion apps/opplaringspenger-soknad/env.schema.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { commonEnvSchema, k9SakInnsynEnvSchema } from '@navikt/sif-common-env';
import * as z from 'zod';

export const appEnvSchema = commonEnvSchema.merge(k9SakInnsynEnvSchema);
const localSchema = z.object({});

export const appEnvSchema = commonEnvSchema.merge(k9SakInnsynEnvSchema).merge(localSchema);

export type AppEnv = z.infer<typeof appEnvSchema>;
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
export const arbeidsgiverMock = {
organisasjoner: [
{
navn: 'Arbeids- og velferdsetaten',
navn: 'SNODIG FISKER',
organisasjonsnummer: '123451234',
ansattFom: '2019-09-25',
ansattTom: null,
Expand Down
11 changes: 11 additions & 0 deletions apps/opplaringspenger-soknad/mock/msw/enableMocking.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,16 @@ export async function enableMocking() {
return;
}
const { worker } = await import('./browser');
try {
if (typeof __IS_GITHUB_PAGES__ !== 'undefined' && __IS_GITHUB_PAGES__) {
return worker.start({
serviceWorker: {
url: import.meta.env.BASE_URL + 'mockServiceWorker.js',
},
});
}
} catch {
// __IS_GITHUB_PAGES__ is not defined, continue with default
}
return worker.start();
}
34 changes: 0 additions & 34 deletions apps/opplaringspenger-soknad/nais/demo-gcp.json

This file was deleted.

10 changes: 9 additions & 1 deletion apps/opplaringspenger-soknad/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
"eslint-plugin-vitest": "0.5.4",
"helmet": "8.1.0",
"msw": "2.12.10",
"npm-run-all": "4.1.5",
"playwright-core": "1.58.2",
"postcss": "8.5.6",
"postcss-nesting": "14.0.0",
Expand All @@ -86,8 +87,15 @@
"scripts": {
"build-storybook": "storybook build",
"build": "vite build --base=/familie/sykdom-i-familien/soknad/opplaringspenger",
"clean": "rm -rf node_modules dist",
"clean": "rm -rf node_modules dist dist-demo",
"demo:build": "run-s demo:build-app demo:copy-app-files",
"demo:build-app": "vite build --config vite.demo.config.ts",
"demo:copy-app-files": "cp ./dist-demo/demo/index.html ./dist-demo/index.html && rm -rf ./dist-demo/demo && cp ./mockServiceWorker.js ./dist-demo/",
"demo:start": "vite preview --base /sif-brukerdialog/opplaringspenger-soknad/ --config vite.demo.config.ts",
"dev": "vite --config vite.dev.config.ts",
"gh-pages:rebuild": "run-s demo:build gh-pages:clean gh-pages:copy",
"gh-pages:clean": "rm -rf ../../docs/opplaringspenger-soknad",
"gh-pages:copy": "cp -r ./dist-demo ../../docs/opplaringspenger-soknad",
"lint:eslint": "eslint \"./src/**/*.{js,ts,tsx}\"",
"lint:fix": "eslint --quiet --fix './src/**/*.{js,ts,tsx}' './*.{ts,tsx}' './playwright/**/*.{js,ts,tsx}' './mock/**/*.{js,ts,tsx}'",
"lint:tsc": "tsc --noEmit",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ const søknadsdata: Søknadsdata = {
type: ArbeidsgiverType.ORGANISASJON,
id: '123451234',
organisasjonsnummer: '123451234',
navn: 'Arbeids- og velferdsetaten',
navn: 'SNODIG FISKER',
},
erAnsattISøknadsperiode: true,
jobberNormaltTimer: 20,
Expand All @@ -112,7 +112,7 @@ const søknadsdata: Søknadsdata = {
arbeidstid: {
arbeidsgivere: {
'123451234': {
navn: 'Arbeids- og velferdsetaten',
navn: 'SNODIG FISKER',
arbeidIPeriode: {
type: ArbeidIPeriodeType.arbeiderUlikeUkerTimer,
arbeiderIPerioden: true,
Expand Down Expand Up @@ -165,5 +165,5 @@ export const mellomlagringMock = {
søknadsdata,
søknadRoute: '/soknad/arbeidssituasjon',
registrerteBarn: [],
versjon: '0.4.0',
versjon: '1.0.0',
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { setNow } from '../../utils/setNow';
test.beforeEach(async ({ page }) => {
await setNow(page);
await routeUtils.resumeFromRoute(page, SøknadRoutes.ARBEIDSTID);
await expect(page.getByRole('heading', { name: 'Jobb i søknadsperioden' })).toBeVisible();
await expect(page.getByRole('heading', { name: 'Fravær fra jobb på dagene du er i opplæring' })).toBeVisible();
});

test('Fyll ut arbeidstid steg', async ({ page }) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,6 @@ export const fyllUtOpplæringEnkeltdag = async (page: Page) => {
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 testAccessibility(page);
await page.getByTestId('typedFormikForm-submitButton').click();
};
Expand All @@ -32,20 +26,10 @@ export const fyllUtOpplæringFlereEnkeltdager = async (page: Page) => {
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 testAccessibility(page);
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 testAccessibility(page);
await page.getByTestId('typedFormikForm-submitButton').click();
};
Expand Down Expand Up @@ -169,13 +153,13 @@ export const leggTilUtenlandsopphold = async (page: Page) => {

export const kontrollerOpplæringEnEnkeltdagOppsummering = async (page: Page) => {
await expect(page.getByText('Hvor foregår opplæringen?Barnas')).toBeVisible();
await expect(page.getByText('2. desember 2024 Kurs: 5 t. 0 m. Reise: 4 t. 30 m.')).toBeVisible();
await expect(page.getByRole('listitem').filter({ hasText: '2. desember 2024' })).toBeVisible();
};

export const kontrollerOpplæringFlereEnkeltdagerOppsummering = async (page: Page) => {
await expect(page.getByText('Hvor foregår opplæringen?Barnas')).toBeVisible();
await expect(page.getByText('2. desember 2024 Kurs: 5 t. 0 m. Reise: 4 t. 30 m.')).toBeVisible();
await expect(page.getByText('11. desember 2024 Kurs: 2 t. 0 m. Reise: 5 t. 0 m.')).toBeVisible();
await expect(page.getByRole('listitem').filter({ hasText: '2. desember 2024' })).toBeVisible();
await expect(page.getByRole('listitem').filter({ hasText: '11. desember 2024' })).toBeVisible();
};

export const kontrollerOpplæringEnPeriodeOppsummering = async (page: Page) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ export const fyllUtArbeidssituasjonStep = async (page: Page, harFrilansoppdrag:
await expect(page.getByRole('heading', { level: 1, name: 'Din arbeidssituasjon' })).toBeVisible();
await page
.getByRole('group', {
name: 'Stemmer det at du er ansatt hos Arbeids- og velferdsetaten i perioden du søker for?',
name: 'Stemmer det at du er ansatt hos SNODIG FISKER i perioden du søker for?',
})
.getByLabel('Ja')
.check();
await page
.getByLabel('Hvor mange timer jobber du normalt per uke hos Arbeids- og velferdsetaten når du ikke har fravær?')
.getByLabel('Hvor mange timer jobber du normalt per uke hos SNODIG FISKER når du ikke har fravær?')
.click();
await page
.getByLabel('Hvor mange timer jobber du normalt per uke hos Arbeids- og velferdsetaten når du ikke har fravær?')
.getByLabel('Hvor mange timer jobber du normalt per uke hos SNODIG FISKER når du ikke har fravær?')
.fill('37,5');

if (harFrilansoppdrag === false) {
Expand Down Expand Up @@ -78,7 +78,7 @@ export const fyllUtArbeidssituasjonStepIngenArbeid = async (page: Page) => {
};

export const kontrollerArbeidssituasjonOppsummering = async (page: Page) => {
await expect(page.getByText('Arbeids- og velferdsetaten (organisasjonsnummer 123451234)Er ansatt i')).toBeVisible();
await expect(page.getByText('SNODIG FISKER (organisasjonsnummer 123451234)Er ansatt i')).toBeVisible();
await expect(page.getByText('Jobber normalt 20 timer per')).toBeVisible();
await expect(page.getByText('FrilanserStartet som frilanser 06.12.2021')).toBeVisible();
await expect(page.getByText('Er ikke selvstendig næ')).toBeVisible();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,33 @@ import { expect, Page } from '@playwright/test';
import { testAccessibility } from '../utils/testAccessibility';

export const fyllUtArbeidstid = async (page: Page) => {
await expect(page.getByRole('heading', { level: 1, name: 'Jobb i søknadsperioden' })).toBeVisible();
await page.getByRole('group', { name: 'Jobber du noe hos Arbeids- og' }).getByLabel('Jeg jobber noe').check();
await expect(
page.getByRole('heading', { level: 1, name: 'Fravær fra jobb på dagene du er i opplæring' }),
).toBeVisible();
await page
.getByRole('group', { name: 'Hvor mye fravær har du fra jobb hos SNODIG FISKER' })
.getByLabel('Jeg er delvis borte')
.check();
await page.getByRole('group', { name: 'mandag 2. desember' }).getByLabel('Timer').click();
await page.getByRole('group', { name: 'mandag 2. desember' }).getByLabel('Timer').fill('5');
await page.getByRole('group', { name: 'Uke 49' }).getByLabel('Timer').first().click();
await page.getByRole('group', { name: 'Uke 49' }).getByLabel('Timer').first().fill('5');
await page.getByRole('group', { name: 'fredag 6. desember' }).getByLabel('Minutt').click();
await page.getByRole('group', { name: 'fredag 6. desember' }).getByLabel('Minutt').fill('30');
await page
.getByRole('group', { name: 'Jobber du noe som frilanser i søknadsperioden' })
.getByLabel('Jeg jobber som normalt, og')
.getByRole('group', { name: 'Hvor mye fravær har du fra jobb som frilanser' })
.getByLabel('Jeg jobber som normalt')
.check();
await testAccessibility(page);
await page.getByTestId('typedFormikForm-submitButton').click();
};

export const kontrollerArbeidstidOppsummering = async (page: Page) => {
await expect(page.getByRole('heading', { name: 'Jobb i søknadsperioden' })).toBeVisible();
await expect(page.getByRole('heading', { name: 'Arbeids- og velferdsetaten (' }).nth(1)).toBeVisible();
await expect(page.getByText('Jeg jobber noe de dagene jeg')).toBeVisible();
await expect(page.getByText('Jeg jobber noe de dagene jeg')).toBeVisible();
await expect(page.getByRole('heading', { name: 'Timer med fravær' })).toBeVisible();
await expect(page.getByRole('heading', { name: 'SNODIG FISKER (' }).nth(1)).toBeVisible();
await expect(page.getByText('Jeg har noe fravær fra jobb på grunn')).toBeVisible();
await expect(page.getByText('mandag 02.12.2024:5 timer 0')).toBeVisible();
await expect(page.getByText('fredag 06.12.2024:0 timer 30')).toBeVisible();
await expect(page.getByText('fredag 06.12.2024:0 timer 30')).toBeVisible();
await expect(page.getByText('FrilanserJeg jobber som')).toBeVisible();
await expect(page.getByText('FrilanserJeg har ikke fravær fra jobb')).toBeVisible();
};
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export const fyllUtMedlemskap = async (page: Page) => {
};

export const kontrollerMedlemskap = async (page: Page) => {
await expect(page.getByRole('heading', { name: 'Arbeids- og velferdsetaten (' }).nth(1)).toBeVisible();
await expect(page.getByRole('heading', { name: 'SNODIG FISKER (' }).nth(1)).toBeVisible();
await expect(page.getByText('Har du bodd i utlandet i de siste 12 månedene?Ja')).toBeVisible();
await expect(
page.getByText('Utenlandsopphold siste 12 måneder1. oktober 2024 - 1. november 2024Bahamas'),
Expand Down
Loading
Loading