Skip to content

Commit ff86927

Browse files
Bruker nytt oppsett for feature toggles i ung (#7233)
* Bruker nytt oppsett for feature toggles i ung * fiks formattering * sync pakker og fiks test * Fix story
1 parent c32539d commit ff86927

17 files changed

+109
-426
lines changed

deploy/ung/dev-gcp.yml

+14-64
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
apiVersion: "nais.io/v1alpha1"
2-
kind: "Application"
1+
apiVersion: 'nais.io/v1alpha1'
2+
kind: 'Application'
33
metadata:
44
name: ung-sak-web
55
namespace: k9saksbehandling
66
labels:
77
team: k9saksbehandling
88
annotations:
9-
nais.io/run-as-user: "101" #nginx
10-
nais.io/read-only-file-system: "false" #nginx
11-
nginx.ingress.kubernetes.io/proxy-buffer-size: "32k"
12-
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
13-
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
9+
nais.io/run-as-user: '101' #nginx
10+
nais.io/read-only-file-system: 'false' #nginx
11+
nginx.ingress.kubernetes.io/proxy-buffer-size: '32k'
12+
nginx.ingress.kubernetes.io/proxy-read-timeout: '600'
13+
nginx.ingress.kubernetes.io/proxy-send-timeout: '600'
1414
spec:
1515
image: {{ image }}
1616
port: 9005
@@ -31,7 +31,7 @@ spec:
3131
limits:
3232
memory: 64Mi
3333
ingresses:
34-
- "https://ung.intern.dev.nav.no"
34+
- 'https://ung.intern.dev.nav.no'
3535
accessPolicy:
3636
outbound:
3737
rules:
@@ -40,61 +40,11 @@ spec:
4040
- name: APP_NAME
4141
value: ung-sak-web
4242
- name: APP_URL
43-
value: "http://ung-sak"
43+
value: 'http://ung-sak'
4444
- name: APP_PORT
45-
value: "9005"
46-
47-
# Feature-flag
48-
- name: KLAGE_KABAL
49-
value: "true"
50-
- name: VARSELTEKST
51-
value: "true"
52-
- name: DOKUMENTDATA
53-
value: "true"
54-
- name: UNNTAKSBEHANDLING
55-
value: "true"
56-
- name: KLAGEBEHANDLING
57-
value: "true"
58-
- name: TILBAKE
59-
value: "true"
60-
- name: SOKNADPERIODESTRIPE
61-
value: "false"
62-
- name: TYPE_MEDISINSKE_OPPLYSNINGER_BREV
63-
value: "true"
64-
- name: LOS_MARKER_BEHANDLING
65-
value: "true"
66-
- name: LOS_MARKER_BEHANDLING_SUBMIT
67-
value: "true"
68-
- name: AKSJONSPUNKT_9015
69-
value: "true"
70-
- name: ALDERSVILKAR_KRONISK_SYK
71-
value: "true"
72-
- name: FRITEKST_REDIGERING
73-
value: "true"
74-
- name: INKLUDER_KALENDER_PILS
75-
value: "true"
76-
- name: SKJUL_AVSLUTTET_ARBEIDSGIVER
77-
value: "true"
78-
- name: OMS_PUNSJSTRIPE
79-
value: "true"
80-
- name: OMSORGEN_FOR_PERIODISERT
81-
value: "true"
82-
- name: OVERSTYR_BEREGNING
83-
value: "true"
84-
- name: "BRUK_V2_MELDINGER"
85-
value: "false"
86-
- name: NYE_NOKKELTALL
87-
value: "true"
88-
- name: PROSESS_VILKAR_SOKNADSFRIST
89-
value: "true"
90-
- name: UTVIDET_VARSELFELT
91-
value: "true"
92-
- name: SKILL_UT_PRIVATPERSON
93-
value: "true"
94-
- name: AUTOMATISK_VURDERT_MEDLEMSKAP
95-
value: "true"
96-
- name: BRUK_V2_SAK_DOKUMENTER
97-
value: "true"
98-
- name: OPPTJENING_READ_ONLY_PERIODER
99-
value: "true"
45+
value: '9005'
10046

47+
# Setter flagg som bestemmer hvilket sett med feature toggles som skal brukes i frontend.
48+
# Faktiske feature toggles for ulike miljø er satt i ulike filer i packages/v2/gui/src/featuretoggles
49+
- name: FEATURE_TOGGLES_ENV
50+
value: 'ung-sak-q'

envDir/ung/.env.development

+1-26
Original file line numberDiff line numberDiff line change
@@ -1,26 +1 @@
1-
VITE_BRUK_V2_MELDINGER=false
2-
VITE_KLAGE_KABAL=true
3-
VITE_VARSELTEKST=true
4-
VITE_DOKUMENTDATA=true
5-
VITE_UNNTAKSBEHANDLING=true
6-
VITE_UTENLANDSOPPHOLD=true
7-
VITE_TYPE_MEDISINSKE_OPPLYSNINGER_BREV=true
8-
VITE_LOS_MARKER_BEHANDLING=true
9-
VITE_LOS_MARKER_BEHANDLING_SUBMIT=true
10-
VITE_AKSJONSPUNKT_9014=true
11-
VITE_FRITEKST_REDIGERING=true
12-
VITE_FIX_SOKNADSFRIST_KALENDER_OG_READONLY=true
13-
VITE_INKLUDER_KALENDER_PILS=true
14-
VITE_NYE_NOKKELTALL=true
15-
VITE_PROSESS_VILKAR_SOKNADSFRIST=true
16-
VITE_SKILL_UT_PRIVATPERSON=true
17-
VITE_AUTOMATISK_VURDERT_MEDLEMSKAP=true
18-
VITE_BRUK_V2_SAK_DOKUMENTER=true
19-
VITE_OPPTJENING_READ_ONLY_PERIODER=true
20-
VITE_BRUK_INNTEKTSGRADERING_I_UTTAK=true
21-
VITE_AKSJONSPUNKT_OVERLAPPENDE_SAKER=true
22-
VITE_BRUK_V2_BEHANDLING_VELGER=true
23-
VITE_BRUK_V2_SAK_SOK=true
24-
VITE_HISTORIKK_V2_VIS=true
25-
VITE_BRUK_V2_VILKAR_OVERSTYRING=true
26-
VITE_SAK_MENY_V2=true
1+
VITE_FEATURE_TOGGLES_ENV=ung-sak-dev

loosely-type-checked-files.json

-1
Original file line numberDiff line numberDiff line change
@@ -518,7 +518,6 @@
518518
"packages/tidslinje/src/Timeline.tsx",
519519
"packages/tidslinje/src/components/pleiepenger/Tidslinje.spec.tsx",
520520
"packages/tidslinje/src/components/pleiepenger/Tidslinje.tsx",
521-
"packages/ung/sak-app/app/AppConfigResolver.tsx",
522521
"packages/ung/sak-app/app/components/Dekorator.tsx",
523522
"packages/ung/sak-app/app/paths.ts",
524523
"packages/ung/sak-app/app/useTrackRouteParam.tsx",

packages/behandling-ungdomsytelse/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@
1818
"@k9-sak-web/types": "1.0.0",
1919
"axios": "1.8.3",
2020
"react": "19.0.0",
21-
"react-intl": "6.8.9"
21+
"react-intl": "7.1.6"
2222
}
2323
}

packages/ung/sak-app/app/AppConfigResolver.tsx

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ import { ReactElement, useEffect } from 'react';
33
import { LoadingPanel } from '@fpsak-frontend/shared-components';
44
import { RestApiState, useRestApiErrorDispatcher } from '@k9-sak-web/rest-api-hooks';
55

6-
import FeatureTogglesContext from '@k9-sak-web/gui/utils/featureToggles/FeatureTogglesContext.js';
7-
import { useFeatureToggles } from '@k9-sak-web/gui/utils/featureToggles/useFeatureToggles.js';
6+
import FeatureTogglesContext from '@k9-sak-web/gui/featuretoggles/FeatureTogglesContext.js';
7+
import { qFeatureToggles } from '@k9-sak-web/gui/featuretoggles/ung/qFeatureToggles.js';
8+
import { useFeatureToggles } from '@k9-sak-web/gui/featuretoggles/useFeatureToggles.js';
89
import { UngSakApiKeys, requestApi, restApiHooks } from '../data/ungsakApi';
910
import useHentInitLenker from './useHentInitLenker';
1011
import useHentKodeverk from './useHentKodeverk';
@@ -49,7 +50,7 @@ const AppConfigResolver = ({ children }: OwnProps) => {
4950
!!featureToggles;
5051

5152
return (
52-
<FeatureTogglesContext.Provider value={featureToggles}>
53+
<FeatureTogglesContext.Provider value={featureToggles ?? qFeatureToggles}>
5354
{harFeilet || erFerdig ? children : <LoadingPanel />}
5455
</FeatureTogglesContext.Provider>
5556
);

packages/ung/sak-app/behandling/BehandlingIndex.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { NavigateFunction, useLocation, useNavigate } from 'react-router';
55
import { LoadingPanel } from '@fpsak-frontend/shared-components';
66
import { parseQueryString, replaceNorwegianCharacters } from '@fpsak-frontend/utils';
77
import BehandlingUngdomsytelseIndex from '@k9-sak-web/behandling-ungdomsytelse/src/BehandlingUngdomsytelseIndex';
8-
import FeatureTogglesContext from '@k9-sak-web/gui/utils/featureToggles/FeatureTogglesContext.js';
8+
import FeatureTogglesContext from '@k9-sak-web/gui/featuretoggles/FeatureTogglesContext.js';
99
import { useRestApiErrorDispatcher } from '@k9-sak-web/rest-api-hooks';
1010
import ErrorBoundary from '@k9-sak-web/sak-app/src/app/ErrorBoundary';
1111
import getAccessRights from '@k9-sak-web/sak-app/src/app/util/access';

packages/ung/sak-app/behandlingmenu/BehandlingMenuIndex.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ import MenyNyBehandlingIndex, {
1010
import MenySettPaVentIndex, { getMenytekst as getSettPaVentMenytekst } from '@fpsak-frontend/sak-meny-sett-pa-vent';
1111
import MenyTaAvVentIndex, { getMenytekst as getTaAvVentMenytekst } from '@fpsak-frontend/sak-meny-ta-av-vent';
1212
import KlagePart from '@k9-sak-web/behandling-klage/src/types/klagePartTsType';
13+
import FeatureTogglesContext from '@k9-sak-web/gui/featuretoggles/FeatureTogglesContext.js';
1314
import { MenySakIndex as MenySakIndexV2 } from '@k9-sak-web/gui/sak/meny/MenySakIndex.js';
1415
import MenyEndreBehandlendeEnhetIndexV2 from '@k9-sak-web/gui/sak/meny/endre-enhet/MenyEndreBehandlendeEnhetIndex.js';
1516
import MenyHenleggIndexV2 from '@k9-sak-web/gui/sak/meny/henlegg-behandling/MenyHenleggIndex.js';
1617
import MenyMarkerBehandlingV2 from '@k9-sak-web/gui/sak/meny/marker-behandling/MenyMarkerBehandling.js';
1718
import MenyNyBehandlingIndexV2 from '@k9-sak-web/gui/sak/meny/ny-behandling/MenyNyBehandlingIndex.js';
1819
import MenySettPaVentIndexV2 from '@k9-sak-web/gui/sak/meny/sett-paa-vent/MenySettPaVentIndex.js';
1920
import MenyTaAvVentIndexV2 from '@k9-sak-web/gui/sak/meny/ta-av-vent/MenyTaAvVentIndex.js';
20-
import FeatureTogglesContext from '@k9-sak-web/gui/utils/featureToggles/FeatureTogglesContext.js';
2121
import ApplicationContextPath from '@k9-sak-web/sak-app/src/app/ApplicationContextPath';
2222
import BehandlingRettigheter from '@k9-sak-web/sak-app/src/behandling/behandlingRettigheterTsType';
2323
import SakRettigheter from '@k9-sak-web/sak-app/src/fagsak/sakRettigheterTsType';

packages/ung/sak-app/behandlingsupport/historikk/HistorikkIndex.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ import { LoadingPanel, usePrevious } from '@fpsak-frontend/shared-components';
77
import { Historikkinnslag, KodeverkMedNavn } from '@k9-sak-web/types';
88

99
import { Kjønn } from '@k9-sak-web/backend/k9sak/kodeverk/Kjønn.js';
10+
import FeatureTogglesContext from '@k9-sak-web/gui/featuretoggles/FeatureTogglesContext.js';
1011
import { useKodeverkContext } from '@k9-sak-web/gui/kodeverk/hooks/useKodeverkContext.js';
1112
import { HistorikkinnslagV2 } from '@k9-sak-web/gui/sak/historikk/historikkinnslagTsTypeV2.js';
1213
import { Snakkeboble } from '@k9-sak-web/gui/sak/historikk/snakkeboble/Snakkeboble.js';
13-
import FeatureTogglesContext from '@k9-sak-web/gui/utils/featureToggles/FeatureTogglesContext.js';
1414
import { isRequestNotDone } from '@k9-sak-web/rest-api-hooks/src/RestApiState';
1515
import ApplicationContextPath from '@k9-sak-web/sak-app/src/app/ApplicationContextPath';
1616
import { compareRenderedElementTexts } from '@k9-sak-web/sak-app/src/behandlingsupport/historikk/v1v2Sammenligningssjekk';

packages/ung/sak-app/fagsak/FagsakIndex.spec.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ describe('<FagsakIndex>', () => {
126126

127127
it('skal hente alle behandlinger fra ungsak, tilbake og klage', () => {
128128
requestApi.mock(UngSakApiKeys.KODEVERK, kodeverk);
129+
requestApi.mock(UngSakApiKeys.KODEVERK_TILBAKE, kodeverk);
129130
requestApi.mock(UngSakApiKeys.FETCH_FAGSAK, fagsak);
130131
requestApi.mock(UngSakApiKeys.SAK_BRUKER, {});
131132
requestApi.mock(UngSakApiKeys.SAK_RETTIGHETER, {

packages/ung/sak-app/fagsak/FagsakIndex.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ import {
1111
import { useCallback, useContext, useMemo, useState } from 'react';
1212
import { Navigate, Route, Routes, useLocation } from 'react-router';
1313
// eslint-disable-next-line @typescript-eslint/no-unused-vars
14+
import FeatureTogglesContext from '@k9-sak-web/gui/featuretoggles/FeatureTogglesContext.js';
1415
import { KodeverkProvider } from '@k9-sak-web/gui/kodeverk/index.js';
1516
import VisittkortPanel from '@k9-sak-web/gui/sak/visittkort/VisittkortPanel.js';
16-
import FeatureTogglesContext from '@k9-sak-web/gui/utils/featureToggles/FeatureTogglesContext.js';
1717
import { konverterKodeverkTilKode } from '@k9-sak-web/lib/kodeverk/konverterKodeverkTilKode.js';
1818
import { isRequestNotDone } from '@k9-sak-web/rest-api-hooks/src/RestApiState';
1919
import BehandlingRettigheter from '@k9-sak-web/sak-app/src/behandling/behandlingRettigheterTsType';

packages/ung/sak-app/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
"@navikt/ft-form-hooks": "^6.2.4",
3232
"@navikt/ft-plattform-komponenter": "^7.2.8",
3333
"@navikt/ft-ui-komponenter": "^3.1.8",
34-
"@sentry/browser": "9.5.0",
35-
"@sentry/react": "^9.5.0",
36-
"@tanstack/react-query": "^5.67.3",
34+
"@sentry/browser": "9.6.0",
35+
"@sentry/react": "^9.6.0",
36+
"@tanstack/react-query": "^5.68.0",
3737
"axios": "1.8.3",
3838
"classnames": "2.5.1",
3939
"history": "5.3.0",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import type { FeatureToggles } from '../FeatureToggles.js';
2+
3+
export const devFeatureToggles = {
4+
BRUK_V2_MELDINGER: false,
5+
KLAGE_KABAL: true,
6+
VARSELTEKST: true,
7+
DOKUMENTDATA: true,
8+
UNNTAKSBEHANDLING: true,
9+
TYPE_MEDISINSKE_OPPLYSNINGER_BREV: true,
10+
LOS_MARKER_BEHANDLING: true,
11+
LOS_MARKER_BEHANDLING_SUBMIT: true,
12+
FRITEKST_REDIGERING: true,
13+
FIX_SOKNADSFRIST_KALENDER_OG_READONLY: true,
14+
NYE_NOKKELTALL: true,
15+
SKILL_UT_PRIVATPERSON: true,
16+
AUTOMATISK_VURDERT_MEDLEMSKAP: true,
17+
OPPTJENING_READ_ONLY_PERIODER: true,
18+
BRUK_INNTEKTSGRADERING_I_UTTAK: true,
19+
SAK_MENY_V2: true,
20+
AKSJONSPUNKT_OVERLAPPENDE_SAKER: true,
21+
BRUK_V2_BEHANDLING_VELGER: true,
22+
HISTORIKK_V2_VIS: true,
23+
VIS_BEGRUNNELSE_FRA_BRUKER_I_KRONISK_SYK: true,
24+
NY_INNTEKT_EGET_PANEL: true,
25+
BRUK_V2_FAKTA_INSTITUSJON: true,
26+
BRUK_V2_VILKAR_OVERSTYRING: true,
27+
OPPLAERINGSPENGER: false,
28+
SKJUL_AVSLUTTET_ARBEIDSGIVER: false,
29+
OVERSTYR_BEREGNING: false,
30+
UTVIDET_VARSELFELT: false,
31+
FJERN_BEGRUNNELSE_PROSESS_BEREGNING: true,
32+
} satisfies FeatureToggles;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import type { FeatureToggles } from '../FeatureToggles.js';
2+
3+
export const qFeatureToggles = {
4+
BRUK_V2_MELDINGER: false,
5+
KLAGE_KABAL: true,
6+
VARSELTEKST: true,
7+
DOKUMENTDATA: true,
8+
UNNTAKSBEHANDLING: true,
9+
TYPE_MEDISINSKE_OPPLYSNINGER_BREV: true,
10+
LOS_MARKER_BEHANDLING: true,
11+
LOS_MARKER_BEHANDLING_SUBMIT: true,
12+
FRITEKST_REDIGERING: true,
13+
FIX_SOKNADSFRIST_KALENDER_OG_READONLY: true,
14+
NYE_NOKKELTALL: true,
15+
SKILL_UT_PRIVATPERSON: true,
16+
AUTOMATISK_VURDERT_MEDLEMSKAP: true,
17+
OPPTJENING_READ_ONLY_PERIODER: true,
18+
BRUK_INNTEKTSGRADERING_I_UTTAK: true,
19+
SAK_MENY_V2: true,
20+
AKSJONSPUNKT_OVERLAPPENDE_SAKER: true,
21+
BRUK_V2_BEHANDLING_VELGER: true,
22+
HISTORIKK_V2_VIS: true,
23+
VIS_BEGRUNNELSE_FRA_BRUKER_I_KRONISK_SYK: true,
24+
NY_INNTEKT_EGET_PANEL: true,
25+
BRUK_V2_FAKTA_INSTITUSJON: true,
26+
BRUK_V2_VILKAR_OVERSTYRING: true,
27+
OPPLAERINGSPENGER: false,
28+
SKJUL_AVSLUTTET_ARBEIDSGIVER: false,
29+
OVERSTYR_BEREGNING: false,
30+
UTVIDET_VARSELFELT: false,
31+
FJERN_BEGRUNNELSE_PROSESS_BEREGNING: true,
32+
} satisfies FeatureToggles;

packages/v2/gui/src/featuretoggles/useFeatureToggles.ts

+8-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
import { useQuery } from '@tanstack/react-query';
22
import axios from 'axios';
33
import { devFeatureToggles } from './devFeatureToggles.js';
4-
import { qFeatureToggles } from './qFeatureToggles.js';
5-
import { prodFeatureToggles } from './prodFeatureToggles.js';
64
import type { FeatureToggles } from './FeatureToggles.js';
5+
import { prodFeatureToggles } from './prodFeatureToggles.js';
6+
import { qFeatureToggles } from './qFeatureToggles.js';
7+
import { devFeatureToggles as ungDevFeatureToggles } from './ung/devFeatureToggles.js';
8+
import { qFeatureToggles as ungQFeatureToggles } from './ung/qFeatureToggles.js';
79

810
// feature-toggles/toggles.json returnerer array av {key: string, value: string} objekter
911
const getKeyValueFromArray = (data: any, dataKey: string): string | undefined => {
@@ -36,6 +38,10 @@ export const useFeatureToggles = (): { featureToggles: FeatureToggles | undefine
3638
return { featureToggles: qFeatureToggles };
3739
} else if (featureTogglesEnv === 'k9-sak-prod') {
3840
return { featureToggles: prodFeatureToggles };
41+
} else if (featureTogglesEnv === 'ung-sak-dev') {
42+
return { featureToggles: ungDevFeatureToggles };
43+
} else if (featureTogglesEnv === 'ung-sak-q') {
44+
return { featureToggles: ungQFeatureToggles };
3945
} else {
4046
// If feature toggles are not resolved, log it, and return prodFeatureToggles as default
4147
if (isError) {

packages/v2/gui/src/sak/visittkort/VisittkortPanel.stories.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ export const Default: StoryObj<typeof VisittkortPanel> = {
5555
personopplysninger: personopplysningerSoker,
5656
},
5757
play: async ({ canvas }) => {
58-
await expect(canvas.getByText(personopplysningerSoker.navn)).toBeInTheDocument();
58+
await expect(canvas.getByText(personopplysningerSoker.navn, { exact: false })).toBeInTheDocument();
5959
await expect(canvas.getByText('987738 95')).toBeInTheDocument();
60-
await expect(canvas.getByText(fagsakPerson.navn)).toBeInTheDocument();
60+
await expect(canvas.getByText(`${fagsakPerson.navn} (80 år)`, { exact: false })).toBeInTheDocument();
6161
},
6262
};
6363

@@ -67,7 +67,7 @@ export const ManglerPersonOpplysninger: StoryObj<typeof VisittkortPanel> = {
6767
personopplysninger: undefined,
6868
},
6969
play: async ({ canvas }) => {
70-
await expect(canvas.getByText(fagsakPerson.navn)).toBeInTheDocument();
70+
await expect(canvas.getByText(fagsakPerson.navn, { exact: false })).toBeInTheDocument();
7171
await expect(canvas.getByText('123456 7')).toBeInTheDocument();
7272
},
7373
};

0 commit comments

Comments
 (0)