diff --git a/apps/dine-pleiepenger/api-mock-server/api-mock-server.js b/apps/dine-pleiepenger/api-mock-server/api-mock-server.js index 66feb887d4..22733414c0 100644 --- a/apps/dine-pleiepenger/api-mock-server/api-mock-server.js +++ b/apps/dine-pleiepenger/api-mock-server/api-mock-server.js @@ -4,6 +4,7 @@ const helmet = require('helmet'); const server = express(); const søknader = require('./mockdata/soknader.json'); +const saker = require('./mockdata/saker.json'); server.use(express.json()); @@ -49,11 +50,7 @@ const startServer = () => { }); server.get('/saker', (req, res) => { - res.send([ - { - saksbehandlingsFrist: '2024-02-02', - }, - ]); + res.send(saker); }); server.get('/saker/saksbehandlingstid', (req, res) => { diff --git a/apps/dine-pleiepenger/api-mock-server/mockdata/saker.json b/apps/dine-pleiepenger/api-mock-server/mockdata/saker.json new file mode 100644 index 0000000000..1df47b3110 --- /dev/null +++ b/apps/dine-pleiepenger/api-mock-server/mockdata/saker.json @@ -0,0 +1,363 @@ +[ + { + "pleietrengende": { + "identitetsnummer": "27870899799", + "fødselsdato": "2008-07-27", + "fornavn": "RAVGUL", + "mellomnavn": null, + "etternavn": "LØVETANN", + "aktørId": "2175638020356" + }, + "sak": { + "saksnummer": "1DQAQRW", + "saksbehandlingsFrist": "2024-03-26", + "fagsakYtelseType": { "kode": "PSB", "kodeverk": "FAGSAK_YTELSE" }, + "behandlinger": [ + { + "status": "PÅ_VENT", + "opprettetDato": null, + "avsluttetDato": null, + "søknader": [ + { + "søknadId": "af5088f4-7739-4c47-8665-ee1397200e8f", + "søknadstype": "ENDRINGSMELDING", + "k9FormatSøknad": { + "søknadId": "af5088f4-7739-4c47-8665-ee1397200e8f", + "versjon": "1.0.0", + "mottattDato": "2024-02-14T11:59:40.061Z", + "søker": { "norskIdentitetsnummer": "03867198392" }, + "språk": null, + "ytelse": { + "type": "PLEIEPENGER_SYKT_BARN", + "barn": { "norskIdentitetsnummer": "27870899799", "fødselsdato": "2008-07-27" }, + "søknadsperiode": [], + "endringsperiode": [], + "trekkKravPerioder": [], + "opptjeningAktivitet": {}, + "dataBruktTilUtledning": { + "harForståttRettigheterOgPlikter": null, + "harBekreftetOpplysninger": null, + "samtidigHjemme": null, + "harMedsøker": null, + "soknadDialogCommitSha": null, + "bekrefterPeriodeOver8Uker": null, + "ukjenteArbeidsforhold": [] + }, + "annetDataBruktTilUtledning": { + "harForståttRettigheterOgPlikter": null, + "harBekreftetOpplysninger": null, + "soknadDialogCommitSha": null, + "annetData": "{\"valgteEndringer\":{\"arbeidstid\":true,\"lovbestemtFerie\":false}}" + }, + "infoFraPunsj": null, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "tilsynsordning": { "perioder": {} }, + "lovbestemtFerie": { "perioder": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "norskIdentitetsnummer": null, + "organisasjonsnummer": "839942907", + "organisasjonsnavn": "HÅRREISENDE FRISØR", + "arbeidstidInfo": { + "perioder": { + "2024-02-26/2024-02-29": { + "jobberNormaltTimerPerDag": "PT8H", + "faktiskArbeidTimerPerDag": "PT48M" + } + } + } + } + ], + "frilanserArbeidstidInfo": null, + "selvstendigNæringsdrivendeArbeidstidInfo": null + }, + "uttak": { "perioder": {} }, + "omsorg": { "relasjonTilBarnet": null, "beskrivelseAvOmsorgsrollen": null } + }, + "journalposter": [], + "begrunnelseForInnsending": { "tekst": null }, + "kildesystem": "endringsdialog" + }, + "dokumenter": [ + { + "journalpostId": "637581723", + "dokumentInfoId": "667124045", + "saksnummer": "1DQAQRW", + "tittel": "Endringsmelding for pleiepenger sykt barn", + "filtype": "PDF", + "harTilgang": true, + "url": "http://sif-innsyn-api/dokument/637581723/667124045/ARKIV", + "relevanteDatoer": [ + { "dato": "2024-02-14T12:59:43", "datotype": "DATO_OPPRETTET" }, + { "dato": "2024-02-14T12:59:43", "datotype": "DATO_DOKUMENT" }, + { "dato": "2024-02-14T12:59:50", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2024-02-14T12:59:40", "datotype": "DATO_REGISTRERT" } + ] + } + ] + }, + { + "søknadId": "7cfe7997-cea2-4bb6-a0e1-23899fc38bda", + "søknadstype": "ENDRINGSMELDING", + "k9FormatSøknad": { + "søknadId": "7cfe7997-cea2-4bb6-a0e1-23899fc38bda", + "versjon": "1.0.0", + "mottattDato": "2024-02-13T07:57:22.932Z", + "søker": { "norskIdentitetsnummer": "03867198392" }, + "språk": null, + "ytelse": { + "type": "PLEIEPENGER_SYKT_BARN", + "barn": { "norskIdentitetsnummer": "27870899799", "fødselsdato": "2008-07-27" }, + "søknadsperiode": [], + "endringsperiode": [], + "trekkKravPerioder": [], + "opptjeningAktivitet": {}, + "dataBruktTilUtledning": { + "harForståttRettigheterOgPlikter": null, + "harBekreftetOpplysninger": null, + "samtidigHjemme": null, + "harMedsøker": null, + "soknadDialogCommitSha": null, + "bekrefterPeriodeOver8Uker": null, + "ukjenteArbeidsforhold": [] + }, + "annetDataBruktTilUtledning": { + "harForståttRettigheterOgPlikter": null, + "harBekreftetOpplysninger": null, + "soknadDialogCommitSha": null, + "annetData": "{\"valgteEndringer\":{\"arbeidstid\":true,\"lovbestemtFerie\":false}}" + }, + "infoFraPunsj": null, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "tilsynsordning": { "perioder": {} }, + "lovbestemtFerie": { "perioder": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "norskIdentitetsnummer": null, + "organisasjonsnummer": "839942907", + "organisasjonsnavn": "HÅRREISENDE FRISØR", + "arbeidstidInfo": { + "perioder": { + "2024-02-26/2024-02-29": { + "jobberNormaltTimerPerDag": "PT8H", + "faktiskArbeidTimerPerDag": "PT1H36M" + } + } + } + } + ], + "frilanserArbeidstidInfo": null, + "selvstendigNæringsdrivendeArbeidstidInfo": null + }, + "uttak": { "perioder": {} }, + "omsorg": { "relasjonTilBarnet": null, "beskrivelseAvOmsorgsrollen": null } + }, + "journalposter": [], + "begrunnelseForInnsending": { "tekst": null }, + "kildesystem": "endringsdialog" + }, + "dokumenter": [ + { + "journalpostId": "637581441", + "dokumentInfoId": "667123746", + "saksnummer": "1DQAQRW", + "tittel": "Endringsmelding for pleiepenger sykt barn", + "filtype": "PDF", + "harTilgang": true, + "url": "http://sif-innsyn-api/dokument/637581441/667123746/ARKIV", + "relevanteDatoer": [ + { "dato": "2024-02-13T08:57:24", "datotype": "DATO_OPPRETTET" }, + { "dato": "2024-02-13T08:57:24", "datotype": "DATO_DOKUMENT" }, + { "dato": "2024-02-13T08:57:30", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2024-02-13T08:57:22", "datotype": "DATO_REGISTRERT" } + ] + } + ] + }, + { + "søknadId": "9aaee6b4-0218-4a3b-a56a-1164c0fb7f75", + "søknadstype": "ENDRINGSMELDING", + "k9FormatSøknad": { + "søknadId": "9aaee6b4-0218-4a3b-a56a-1164c0fb7f75", + "versjon": "1.0.0", + "mottattDato": "2024-02-13T07:56:25.433Z", + "søker": { "norskIdentitetsnummer": "03867198392" }, + "språk": null, + "ytelse": { + "type": "PLEIEPENGER_SYKT_BARN", + "barn": { "norskIdentitetsnummer": "27870899799", "fødselsdato": "2008-07-27" }, + "søknadsperiode": [], + "endringsperiode": [], + "trekkKravPerioder": [], + "opptjeningAktivitet": {}, + "dataBruktTilUtledning": { + "harForståttRettigheterOgPlikter": null, + "harBekreftetOpplysninger": null, + "samtidigHjemme": null, + "harMedsøker": null, + "soknadDialogCommitSha": null, + "bekrefterPeriodeOver8Uker": null, + "ukjenteArbeidsforhold": [] + }, + "annetDataBruktTilUtledning": { + "harForståttRettigheterOgPlikter": null, + "harBekreftetOpplysninger": null, + "soknadDialogCommitSha": null, + "annetData": "{\"valgteEndringer\":{\"arbeidstid\":false,\"lovbestemtFerie\":true}}" + }, + "infoFraPunsj": null, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "tilsynsordning": { "perioder": {} }, + "lovbestemtFerie": { + "perioder": { "2024-02-27/2024-02-28": { "skalHaFerie": true } } + }, + "arbeidstid": { + "arbeidstakerList": [], + "frilanserArbeidstidInfo": null, + "selvstendigNæringsdrivendeArbeidstidInfo": null + }, + "uttak": { "perioder": {} }, + "omsorg": { "relasjonTilBarnet": null, "beskrivelseAvOmsorgsrollen": null } + }, + "journalposter": [], + "begrunnelseForInnsending": { "tekst": null }, + "kildesystem": "endringsdialog" + }, + "dokumenter": [ + { + "journalpostId": "637581440", + "dokumentInfoId": "667123745", + "saksnummer": "1DQAQRW", + "tittel": "Endringsmelding for pleiepenger sykt barn", + "filtype": "PDF", + "harTilgang": true, + "url": "http://sif-innsyn-api/dokument/637581440/667123745/ARKIV", + "relevanteDatoer": [ + { "dato": "2024-02-13T08:56:40", "datotype": "DATO_OPPRETTET" }, + { "dato": "2024-02-13T08:56:40", "datotype": "DATO_DOKUMENT" }, + { "dato": "2024-02-13T08:56:45", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2024-02-13T08:56:25", "datotype": "DATO_REGISTRERT" } + ] + } + ] + }, + { + "søknadId": "cb528acf-d452-4572-959d-27492e3f10ed", + "søknadstype": "SØKNAD", + "k9FormatSøknad": { + "søknadId": "cb528acf-d452-4572-959d-27492e3f10ed", + "versjon": "1.0.0", + "mottattDato": "2024-02-13T07:52:43.049Z", + "søker": { "norskIdentitetsnummer": "03867198392" }, + "språk": "nb", + "ytelse": { + "type": "PLEIEPENGER_SYKT_BARN", + "barn": { "norskIdentitetsnummer": "27870899799", "fødselsdato": null }, + "søknadsperiode": ["2024-02-26/2024-02-29"], + "endringsperiode": [], + "trekkKravPerioder": [], + "opptjeningAktivitet": {}, + "dataBruktTilUtledning": null, + "annetDataBruktTilUtledning": { + "harForståttRettigheterOgPlikter": true, + "harBekreftetOpplysninger": true, + "soknadDialogCommitSha": null, + "annetData": null + }, + "infoFraPunsj": null, + "bosteder": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "utenlandsopphold": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "beredskap": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "nattevåk": { "perioder": {}, "perioderSomSkalSlettes": {} }, + "tilsynsordning": { + "perioder": { "2024-02-26/2024-02-29": { "etablertTilsynTimerPerDag": "PT0S" } } + }, + "lovbestemtFerie": { "perioder": {} }, + "arbeidstid": { + "arbeidstakerList": [ + { + "norskIdentitetsnummer": null, + "organisasjonsnummer": "839942907", + "organisasjonsnavn": "HÅRREISENDE FRISØR", + "arbeidstidInfo": { + "perioder": { + "2024-02-26/2024-02-29": { + "jobberNormaltTimerPerDag": "PT8H", + "faktiskArbeidTimerPerDag": "PT0S" + } + } + } + } + ], + "frilanserArbeidstidInfo": { + "perioder": { + "2024-02-26/2024-02-29": { + "jobberNormaltTimerPerDag": "PT0S", + "faktiskArbeidTimerPerDag": "PT0S" + } + } + }, + "selvstendigNæringsdrivendeArbeidstidInfo": null + }, + "uttak": { + "perioder": { + "2024-02-26/2024-02-29": { "timerPleieAvBarnetPerDag": "PT7H30M" } + } + }, + "omsorg": { "relasjonTilBarnet": null, "beskrivelseAvOmsorgsrollen": null } + }, + "journalposter": [], + "begrunnelseForInnsending": { "tekst": null }, + "kildesystem": "søknadsdialog" + }, + "dokumenter": [ + { + "journalpostId": "637581439", + "dokumentInfoId": "667123743", + "saksnummer": "1DQAQRW", + "tittel": "Søknad om pleiepenger for sykt barn", + "filtype": "PDF", + "harTilgang": true, + "url": "http://sif-innsyn-api/dokument/637581439/667123743/ARKIV", + "relevanteDatoer": [ + { "dato": "2024-02-13T08:52:46", "datotype": "DATO_OPPRETTET" }, + { "dato": "2024-02-13T08:52:46", "datotype": "DATO_DOKUMENT" }, + { "dato": "2024-02-13T08:52:54", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2024-02-13T08:52:43", "datotype": "DATO_REGISTRERT" } + ] + }, + { + "journalpostId": "637581439", + "dokumentInfoId": "667123744", + "saksnummer": "1DQAQRW", + "tittel": "gray-tile.png", + "filtype": "PDF", + "harTilgang": true, + "url": "http://sif-innsyn-api/dokument/637581439/667123744/ARKIV", + "relevanteDatoer": [ + { "dato": "2024-02-13T08:52:46", "datotype": "DATO_OPPRETTET" }, + { "dato": "2024-02-13T08:52:46", "datotype": "DATO_DOKUMENT" }, + { "dato": "2024-02-13T08:52:54", "datotype": "DATO_JOURNALFOERT" }, + { "dato": "2024-02-13T08:52:43", "datotype": "DATO_REGISTRERT" } + ] + } + ] + } + ], + "aksjonspunkter": [{ "venteårsak": "MEDISINSK_DOKUMENTASJON" }] + } + ] + } + } +] diff --git a/apps/dine-pleiepenger/e2e/playwright/tests/svarfrist.test.ts b/apps/dine-pleiepenger/e2e/playwright/tests/svarfrist.test.ts index 0859be669b..795ade674d 100644 --- a/apps/dine-pleiepenger/e2e/playwright/tests/svarfrist.test.ts +++ b/apps/dine-pleiepenger/e2e/playwright/tests/svarfrist.test.ts @@ -1,14 +1,9 @@ import { Innsynsdata } from '../../../src/types/InnsynData'; import { søkerMockData } from '../mockdata/søker.mock'; import { søknaderMockData } from '../mockdata/søknader.mock'; -import { ISODateToDate } from '@navikt/sif-common-utils'; import { test, expect } from '@playwright/test'; import { setupMockRoutes } from '../utils/setup-mock-routes'; -import { Sak } from '../../../src/types/Sak'; - -const sak: Sak = { - saksbehandlingsFrist: ISODateToDate('2021-01-01'), -}; +import dayjs from 'dayjs'; const defaultInnsynsdata: Innsynsdata = { saker: [], @@ -22,20 +17,46 @@ test.beforeEach(async ({ page }) => { await setupMockRoutes(page); }); -test('Mottar svarfrist fra api', async ({ page }) => { +test('Svarfrist er i fremtid', async ({ page }) => { + await page.route('**/innsynsdata', async (route) => { + const response: Innsynsdata = { + ...defaultInnsynsdata, + saker: [{ sak: { saksbehandlingsFrist: dayjs().add(1, 'day').toDate() } }], + harSak: true, + }; + await route.fulfill({ status: 200, body: JSON.stringify(response) }); + }); + await page.goto('http://localhost:8080/innsyn'); + await expect(page.getByText('Du kan forvente svar innen:')).toBeVisible(); +}); + +test('Svarfrist er i dag', async ({ page }) => { + await page.route('**/innsynsdata', async (route) => { + const response: Innsynsdata = { + ...defaultInnsynsdata, + saker: [{ sak: { saksbehandlingsFrist: dayjs().toDate() } }], + harSak: true, + }; + await route.fulfill({ status: 200, body: JSON.stringify(response) }); + }); + await page.goto('http://localhost:8080/innsyn'); + await expect(page.getByText('Du kan forvente svar innen:')).toBeVisible(); +}); + +test('Svarfrist er i fortid', async ({ page }) => { await page.route('**/innsynsdata', async (route) => { const response: Innsynsdata = { ...defaultInnsynsdata, - saker: [sak], + saker: [{ sak: { saksbehandlingsFrist: dayjs().subtract(1, 'day').toDate() } }], harSak: true, }; await route.fulfill({ status: 200, body: JSON.stringify(response) }); }); await page.goto('http://localhost:8080/innsyn'); - await expect(page.getByText('Du kan forvente svar innen: fredag 1. januar 2021')).toBeVisible(); + await expect(page.getByText('Forventet behandlingstid er')).toBeVisible(); }); -test('Mottar ikke svarfrist men behandlingstid fra api', async ({ page }) => { +test('Ingen svarfrist, men behandlingstid', async ({ page }) => { await page.route('**/innsynsdata', async (route) => { const response: Innsynsdata = { ...defaultInnsynsdata, @@ -47,7 +68,7 @@ test('Mottar ikke svarfrist men behandlingstid fra api', async ({ page }) => { await expect(page.getByText('Forventet behandlingstid er 3 uker fra vi fikk søknaden din.')).toBeVisible(); }); -test('Mottar hverken svarfrist eller behandlingstid fra api', async ({ page }) => { +test('Hverken svarfrist eller behandlingstid', async ({ page }) => { await page.route('**/innsynsdata', async (route) => { await route.fulfill({ status: 200, body: JSON.stringify(defaultInnsynsdata) }); }); diff --git a/apps/dine-pleiepenger/e2e/playwright/utils/setup-mock-routes.ts b/apps/dine-pleiepenger/e2e/playwright/utils/setup-mock-routes.ts index 5cd22620dc..d185c9eca3 100644 --- a/apps/dine-pleiepenger/e2e/playwright/utils/setup-mock-routes.ts +++ b/apps/dine-pleiepenger/e2e/playwright/utils/setup-mock-routes.ts @@ -2,10 +2,12 @@ import { ISODateToDate } from '@navikt/sif-common-utils'; import { Innsynsdata } from '../../../src/types/InnsynData'; import { søkerMockData } from '../mockdata/søker.mock'; import { søknaderMockData } from '../mockdata/søknader.mock'; -import { Sak } from '../../../src/types/Sak'; +import { Saker } from '../../../src/types/Saker'; -const sak: Sak = { - saksbehandlingsFrist: ISODateToDate('2021-01-01'), +const saker: Saker = { + sak: { + saksbehandlingsFrist: ISODateToDate('2021-01-01'), + }, }; export const setupMockRoutes = async (page: any) => { await page.route('https://login.nav.no/**', async (route) => { @@ -20,7 +22,7 @@ export const setupMockRoutes = async (page: any) => { await page.route('**/innsynsdata', async (route) => { const response: Innsynsdata = { - saker: [sak], + saker: [saker], harSak: true, søker: søkerMockData as any, mellomlagring: {}, diff --git a/apps/dine-pleiepenger/nais/envs/.env.prod b/apps/dine-pleiepenger/nais/envs/.env.prod index 0ee4356333..f21663c156 100644 --- a/apps/dine-pleiepenger/nais/envs/.env.prod +++ b/apps/dine-pleiepenger/nais/envs/.env.prod @@ -26,6 +26,6 @@ NEXT_PUBLIC_SYKDOM_I_FAMILIEN_INFO_URL=https://www.nav.no/familie/sykdom-i-famil NEXT_PUBLIC_ARBEIDSGIVER_PLEIEPENGER_URL=https://www.nav.no/arbeidsgiver/pleiepenger-barn NEXT_PUBLIC_MINSIDE_DOKUMENTOVERSIKT_URL=https://person.nav.no/mine-saker NEXT_PUBLIC_UTBETALINGSOVERSIKT_URL=https://tjenester.nav.no/utbetalingsoversikt -NEXT_PUBLIC_FEATURE_HENT_SAKER=off +NEXT_PUBLIC_FEATURE_HENT_SAKER=on NEXT_PUBLIC_FEATURE_HENT_BEHANDLINGSTID=on diff --git a/apps/dine-pleiepenger/nais/prod-gcp.json b/apps/dine-pleiepenger/nais/prod-gcp.json index d43c019ba6..eec4f59cf4 100644 --- a/apps/dine-pleiepenger/nais/prod-gcp.json +++ b/apps/dine-pleiepenger/nais/prod-gcp.json @@ -39,7 +39,7 @@ "NEXT_PUBLIC_ARBEIDSGIVER_PLEIEPENGER_URL": "https://www.nav.no/arbeidsgiver/pleiepenger-barn", "NEXT_PUBLIC_MINSIDE_DOKUMENTOVERSIKT_URL": "https://person.nav.no/mine-saker", "NEXT_PUBLIC_UTBETALINGSOVERSIKT_URL": "https://tjenester.nav.no/utbetalingsoversikt", - "NEXT_PUBLIC_FEATURE_HENT_SAKER": "off", + "NEXT_PUBLIC_FEATURE_HENT_SAKER": "on", "NEXT_PUBLIC_FEATURE_HENT_BEHANDLINGSTID": "on" } } diff --git a/apps/dine-pleiepenger/playwright.config.ts b/apps/dine-pleiepenger/playwright.config.ts index abf6a3e1e5..6edef3fc4c 100644 --- a/apps/dine-pleiepenger/playwright.config.ts +++ b/apps/dine-pleiepenger/playwright.config.ts @@ -57,7 +57,7 @@ export default defineConfig({ NEXT_PUBLIC_ARBEIDSGIVER_PLEIEPENGER_URL: 'https://www.nav.no/arbeidsgiver/pleiepenger-barn', NEXT_PUBLIC_MINSIDE_DOKUMENTOVERSIKT_URL: 'https://person.dev.nav.no/mine-saker', NEXT_PUBLIC_UTBETALINGSOVERSIKT_URL: 'https://tjenester.nav.no/utbetalingsoversikt', - NEXT_PUBLIC_FEATURE_HENT_SAKER: 'off', + NEXT_PUBLIC_FEATURE_HENT_SAKER: 'on', }, }, }); diff --git a/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.stories.tsx b/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.stories.tsx index ebee13d9d7..12958b1832 100644 --- a/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.stories.tsx +++ b/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.stories.tsx @@ -1,3 +1,4 @@ +import dayjs from 'dayjs'; import { withEmptyPage } from '../../storybook/hooks/withEmptyPage'; import Svarfrist from './Svarfrist'; @@ -15,19 +16,28 @@ export default meta; type Story = StoryObj; export const Default: Story = { + name: 'Med frist', args: { - frist: new Date(), + frist: dayjs().add(10, 'day').toDate(), }, }; export const UtenFristMedBehandlingstid: Story = { - name: 'Med 3 ukers behandlingstid', + name: 'Ingen frist', args: { saksbehandlingstidUker: 3, }, }; -export const UtenFrist: Story = { - name: 'Uten frist - default 7 uker behandlingstid', - args: {}, +export const FristIGår: Story = { + name: 'Frist i går', + args: { + frist: dayjs().subtract(1, 'day').toDate(), + }, +}; +export const FristPassert: Story = { + name: 'Frist i dag', + args: { + frist: dayjs().toDate(), + }, }; diff --git a/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.tsx b/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.tsx index 4f7c9b01fd..ec1b0b0d14 100644 --- a/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.tsx +++ b/apps/dine-pleiepenger/src/components/svarfrist/Svarfrist.tsx @@ -3,6 +3,7 @@ import { BodyShort, Box, Heading, Link } from '@navikt/ds-react'; import React from 'react'; import { dateFormatter } from '@navikt/sif-common-utils'; import { browserEnv } from '../../utils/env'; +import dayjs from 'dayjs'; interface Props { frist?: Date; @@ -10,13 +11,14 @@ interface Props { } const Svarfrist: React.FunctionComponent = ({ frist, saksbehandlingstidUker = 7 }) => { + const fristErPassert = frist && dayjs(frist).isBefore(dayjs(), 'day'); return ( Saksbehandlingstid - {frist ? ( + {frist && fristErPassert === false ? (

Du kan forvente svar innen:
diff --git a/apps/dine-pleiepenger/src/pages/api/dokument/[...info].api.ts b/apps/dine-pleiepenger/src/pages/api/dokument/[...info].api.ts index 0852af6cdb..781eb7b304 100644 --- a/apps/dine-pleiepenger/src/pages/api/dokument/[...info].api.ts +++ b/apps/dine-pleiepenger/src/pages/api/dokument/[...info].api.ts @@ -30,7 +30,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { res.write(resBuffer, 'binary'); res.end(); } catch (err) { - res.status(500).json({ error: 'Kunne ikke hente dokument', err }); + res.status(500).json({ error: 'Kunne ikke hente dokument' }); } } diff --git a/apps/dine-pleiepenger/src/pages/api/innsynsdata.api.ts b/apps/dine-pleiepenger/src/pages/api/innsynsdata.api.ts index 359d2f330e..2f666860ab 100644 --- a/apps/dine-pleiepenger/src/pages/api/innsynsdata.api.ts +++ b/apps/dine-pleiepenger/src/pages/api/innsynsdata.api.ts @@ -52,7 +52,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { saker, harSak: saker.length > 0, }; - res.send(innsynsdata); + res.json(innsynsdata); } catch (err) { childLogger.error(`Hent innsynsdata feilet: ${err}`); if ( @@ -61,7 +61,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { ) { res.status(403).json({ error: 'Ikke tilgang' }); } else { - res.status(500).json({ error: 'Kunne ikke hente innsynsdata', err }); + res.status(500).json({ error: 'Kunne ikke hente innsynsdata' }); } } } diff --git a/apps/dine-pleiepenger/src/pages/api/mellomlagring.api.ts b/apps/dine-pleiepenger/src/pages/api/mellomlagring.api.ts index 2f30d0a917..db8184906d 100644 --- a/apps/dine-pleiepenger/src/pages/api/mellomlagring.api.ts +++ b/apps/dine-pleiepenger/src/pages/api/mellomlagring.api.ts @@ -15,7 +15,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { } catch (err) { const childLogger = createChildLogger(getXRequestId(req)); childLogger.error(`Hent mellomlagring feilet: ${err}`); - res.status(500).json({ error: 'Kunne ikke hente mellomlagring', err }); + res.status(500).json({ error: 'Kunne ikke hente mellomlagring' }); } } diff --git a/apps/dine-pleiepenger/src/pages/api/saker.api.ts b/apps/dine-pleiepenger/src/pages/api/saker.api.ts index 3a6dd018a5..4619db6905 100644 --- a/apps/dine-pleiepenger/src/pages/api/saker.api.ts +++ b/apps/dine-pleiepenger/src/pages/api/saker.api.ts @@ -3,10 +3,10 @@ import { createChildLogger } from '@navikt/next-logger'; import axios from 'axios'; import { withAuthenticatedApi } from '../../auth/withAuthentication'; import { fetchSaker } from '../../server/apiService'; -import { Sak } from '../../types/Sak'; +import { Saker } from '../../types/Saker'; import { getXRequestId } from '../../utils/apiUtils'; -export const sakerFetcher = async (url: string): Promise => axios.get(url).then((res) => res.data); +export const sakerFetcher = async (url: string): Promise => axios.get(url).then((res) => res.data); async function handler(req: NextApiRequest, res: NextApiResponse) { try { @@ -15,7 +15,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { } catch (err) { const childLogger = createChildLogger(getXRequestId(req)); childLogger.error(`Hent saker feilet: ${err}`); - res.status(500).json({ error: 'Kunne ikke hente saker', err }); + res.status(500).json({ error: 'Kunne ikke hente saker' }); } } diff --git a/apps/dine-pleiepenger/src/pages/api/saksbehandlingstid.api.ts b/apps/dine-pleiepenger/src/pages/api/saksbehandlingstid.api.ts index 178ac4245e..7a436f3c2e 100644 --- a/apps/dine-pleiepenger/src/pages/api/saksbehandlingstid.api.ts +++ b/apps/dine-pleiepenger/src/pages/api/saksbehandlingstid.api.ts @@ -16,7 +16,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { } catch (err) { const childLogger = createChildLogger(getXRequestId(req)); childLogger.error(`Hent saksbehandlingstid feilet: ${err}`); - res.status(500).json({ error: 'Kunne ikke hente saksbehandlingstid', err }); + res.status(500).json({ error: 'Kunne ikke hente saksbehandlingstid' }); } } diff --git a/apps/dine-pleiepenger/src/pages/api/soker.api.ts b/apps/dine-pleiepenger/src/pages/api/soker.api.ts index 0a756f4776..36f474fc17 100644 --- a/apps/dine-pleiepenger/src/pages/api/soker.api.ts +++ b/apps/dine-pleiepenger/src/pages/api/soker.api.ts @@ -14,7 +14,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { } catch (err) { const childLogger = createChildLogger(getXRequestId(req)); childLogger.error(`Hent søker feilet: ${err}`); - res.status(500).json({ error: 'Kunne ikke hente søker', err }); + res.status(500).json({ error: 'Kunne ikke hente søker' }); } } diff --git a/apps/dine-pleiepenger/src/pages/api/soknad/[id]/arbeidsgivermelding.api.ts b/apps/dine-pleiepenger/src/pages/api/soknad/[id]/arbeidsgivermelding.api.ts index 09583f8de1..d83c69c126 100644 --- a/apps/dine-pleiepenger/src/pages/api/soknad/[id]/arbeidsgivermelding.api.ts +++ b/apps/dine-pleiepenger/src/pages/api/soknad/[id]/arbeidsgivermelding.api.ts @@ -29,7 +29,7 @@ export async function handler(req: NextApiRequest, res: NextApiResponse) { res.write(resBuffer, 'binary'); res.end(); } catch (err) { - res.status(500).json({ error: 'Kunne ikke hente arbeidsgivermelding', err }); + res.status(500).json({ error: 'Kunne ikke hente arbeidsgivermelding' }); } } diff --git a/apps/dine-pleiepenger/src/pages/api/soknader.api.ts b/apps/dine-pleiepenger/src/pages/api/soknader.api.ts index 9d4cf682b8..ee4fc7685c 100644 --- a/apps/dine-pleiepenger/src/pages/api/soknader.api.ts +++ b/apps/dine-pleiepenger/src/pages/api/soknader.api.ts @@ -16,7 +16,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { } catch (err) { const childLogger = createChildLogger(getXRequestId(req)); childLogger.error(`Hent søknader feilet: ${err}`); - res.status(500).json({ error: 'Kunne ikke hente søknader', err }); + res.status(500).json({ error: 'Kunne ikke hente søknader' }); } } diff --git a/apps/dine-pleiepenger/src/pages/index.page.tsx b/apps/dine-pleiepenger/src/pages/index.page.tsx index 0e53486090..b64e925046 100644 --- a/apps/dine-pleiepenger/src/pages/index.page.tsx +++ b/apps/dine-pleiepenger/src/pages/index.page.tsx @@ -11,6 +11,23 @@ import Snarveier from '../components/snarveier/Snarveier'; import Svarfrist from '../components/svarfrist/Svarfrist'; import { useInnsynsdataContext } from '../hooks/useInnsynsdataContext'; import { Feature } from '../utils/features'; +import { Søknad, Søknadstype } from '../types/Søknad'; +import { Sak } from '../server/api-models/SakSchema'; + +const harSendtInnSøknadEllerEndringsmelding = (søknader: Søknad[]): boolean => { + return søknader.some( + (søknad) => + søknad.søknadstype === Søknadstype.PP_SYKT_BARN || + søknad.søknadstype === Søknadstype.PP_SYKT_BARN_ENDRINGSMELDING, + ); +}; + +const getSaksbehandlingsfrist = (søknader: Søknad[], saker: Sak[]): Date | undefined => { + if (saker.length === 1 && harSendtInnSøknadEllerEndringsmelding(søknader)) { + return saker[0].sak.saksbehandlingsFrist; + } + return undefined; +}; function DinePleiepengerPage(): ReactElement { const { @@ -44,7 +61,7 @@ function DinePleiepengerPage(): ReactElement {

0 ? saker[0].saksbehandlingsFrist : undefined} + frist={getSaksbehandlingsfrist(søknader, saker)} saksbehandlingstidUker={saksbehandlingstidUker} />
diff --git a/apps/dine-pleiepenger/src/server/api-models/SakSchema.ts b/apps/dine-pleiepenger/src/server/api-models/SakSchema.ts index 418fca90d6..c616e73b8e 100644 --- a/apps/dine-pleiepenger/src/server/api-models/SakSchema.ts +++ b/apps/dine-pleiepenger/src/server/api-models/SakSchema.ts @@ -4,5 +4,10 @@ import { parseMaybeDateStringToDate } from '../../utils/jsonParseUtils'; export type Sak = z.infer; export const SakSchema = z.object({ - saksbehandlingsFrist: z.union([z.preprocess((val) => parseMaybeDateStringToDate(val), z.date()), z.undefined()]), + sak: z.object({ + saksbehandlingsFrist: z.union([ + z.preprocess((val) => parseMaybeDateStringToDate(val), z.date()), + z.undefined(), + ]), + }), }); diff --git a/apps/dine-pleiepenger/src/storybook/hooks/withInnsynsdata.tsx b/apps/dine-pleiepenger/src/storybook/hooks/withInnsynsdata.tsx index 448196a53d..9ae1417ab2 100644 --- a/apps/dine-pleiepenger/src/storybook/hooks/withInnsynsdata.tsx +++ b/apps/dine-pleiepenger/src/storybook/hooks/withInnsynsdata.tsx @@ -8,7 +8,7 @@ import dayjs from 'dayjs'; export const withInnsynsdata = (Story) => ( ; +export type Saker = z.infer;