Skip to content

Commit

Permalink
IS-1650: Huskelapp filter if toggle enabled (#364)
Browse files Browse the repository at this point in the history
  • Loading branch information
andersrognstad authored Oct 9, 2023
1 parent 20fe08b commit 18bf6fc
Show file tree
Hide file tree
Showing 14 changed files with 107 additions and 17 deletions.
39 changes: 39 additions & 0 deletions mock/data/personoversiktEnhetMock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
dialogmotesvarUbehandlet: false,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
},
{
fnr: '99999922222',
Expand All @@ -38,6 +39,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
dialogmotesvarUbehandlet: false,
behandlerdialogUbehandlet: true,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
},
{
fnr: '99999922220',
Expand All @@ -55,6 +57,25 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
dialogmotesvarUbehandlet: false,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: true,
huskelappActive: false,
},
{
fnr: '99999911120',
navn: 'Hans Huskelappen',
enhet: '0316',
veilederIdent: null,
motebehovUbehandlet: true,
aktivitetskrav: null,
aktivitetskravActive: false,
aktivitetskravSistVurdert: null,
aktivitetskravVurderingFrist: null,
oppfolgingsplanLPSBistandUbehandlet: null,
dialogmotekandidat: undefined,
motestatus: undefined,
dialogmotesvarUbehandlet: false,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: true,
},
{
fnr: '59999933333',
Expand All @@ -72,6 +93,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
dialogmotesvarUbehandlet: false,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-10-25'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -111,6 +133,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
dialogmotesvarUbehandlet: false,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-08-03'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -146,6 +169,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: new Date('2023-04-01'),
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-08-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -177,6 +201,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: null,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -204,6 +229,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: null,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -231,6 +257,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: null,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -258,6 +285,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: null,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-05-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -285,6 +313,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: null,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-10-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -316,6 +345,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: null,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -343,6 +373,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: null,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -371,6 +402,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: null,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
},
{
fnr: '99999966673',
Expand All @@ -388,6 +420,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: null,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -415,6 +448,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: null,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -442,6 +476,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
aktivitetskravVurderingFrist: null,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -469,6 +504,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
dialogmotesvarUbehandlet: false,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -496,6 +532,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
dialogmotesvarUbehandlet: false,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -523,6 +560,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
dialogmotesvarUbehandlet: false,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down Expand Up @@ -550,6 +588,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
dialogmotesvarUbehandlet: false,
behandlerdialogUbehandlet: false,
aktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
latestOppfolgingstilfelle: {
oppfolgingstilfelleStart: new Date('2022-01-01'),
oppfolgingstilfelleEnd: new Date('2022-12-31'),
Expand Down
1 change: 1 addition & 0 deletions server/unleash.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,5 +46,6 @@ export const getToggles = (veilederId: any, enhetId: any) => {
'isSendingAvForhandsvarselEnabled',
context
),
isHuskelappEnabled: unleash.isEnabled('isHuskelappEnabled', context),
};
};
1 change: 1 addition & 0 deletions src/api/types/personoversiktTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export interface PersonOversiktStatusDTO {
aktivitetskravVurderingFrist: Date | null;
behandlerdialogUbehandlet: boolean;
aktivitetskravVurderStansUbehandlet: boolean;
huskelappActive: boolean;
}

export interface OppfolgingstilfelleDTO {
Expand Down
1 change: 1 addition & 0 deletions src/api/types/personregisterTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ export interface PersonData {
aktivitetskravVurderingFrist: Date | null;
harBehandlerdialogUbehandlet: boolean;
harAktivitetskravVurderStansUbehandlet: boolean;
huskelappActive: boolean;
}

export interface PersonregisterState {
Expand Down
10 changes: 10 additions & 0 deletions src/components/HendelseTypeFilter.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ export const HendelseTekster = {
AKTIVITETSKRAV: 'Aktivitetskrav',
BEHANDLERDIALOG: 'Dialog med behandler',
AKTIVITETSKRAV_VURDER_STANS: 'Vurder stans',
HUSKELAPP: 'Huskelapp',
} as const;

type HendelseTeksterKeys = keyof typeof HendelseTekster;
Expand All @@ -48,6 +49,7 @@ const enkeltFilterFraTekst = (
aktivitetskrav: false,
behandlerdialog: false,
aktivitetskravVurderStans: false,
huskelapp: false,
};
return lagNyttFilter(filter, tekst, checked);
};
Expand Down Expand Up @@ -92,6 +94,10 @@ const lagNyttFilter = (
filter.aktivitetskravVurderStans = checked;
return filter;
}
case HendelseTekster.HUSKELAPP: {
filter.huskelapp = checked;
return filter;
}
}
};

Expand All @@ -116,6 +122,8 @@ const isCheckedInState = (
return state.behandlerdialog;
case HendelseTekster.AKTIVITETSKRAV_VURDER_STANS:
return state.aktivitetskravVurderStans;
case HendelseTekster.HUSKELAPP:
return state.huskelapp;
}
};

Expand All @@ -136,6 +144,8 @@ const showCheckbox = (
return tabType === OverviewTabType.ENHET_OVERVIEW;
case 'AKTIVITETSKRAV_VURDER_STANS':
return toggles.isSendingAvForhandsvarselEnabled;
case 'HUSKELAPP':
return toggles.isHuskelappEnabled;
}
};

Expand Down
2 changes: 2 additions & 0 deletions src/context/filters/filterContextState.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export interface HendelseTypeFilters {
aktivitetskrav: boolean;
behandlerdialog: boolean;
aktivitetskravVurderStans: boolean;
huskelapp: boolean;
}

export interface FilterState {
Expand All @@ -33,5 +34,6 @@ export const filterInitialState: FilterState = {
aktivitetskrav: false,
behandlerdialog: false,
aktivitetskravVurderStans: false,
huskelapp: false,
},
};
2 changes: 2 additions & 0 deletions src/data/unleash/types/unleash_types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ export type Toggles = {
export enum ToggleNames {
isMotebehovTilbakemeldingEnabled = 'isMotebehovTilbakemeldingEnabled',
isSendingAvForhandsvarselEnabled = 'isSendingAvForhandsvarselEnabled',
isHuskelappEnabled = 'isHuskelappEnabled',
}

export const defaultToggles: Toggles = {
isMotebehovTilbakemeldingEnabled: false,
isSendingAvForhandsvarselEnabled: false,
isHuskelappEnabled: false,
};
42 changes: 31 additions & 11 deletions src/utils/hendelseFilteringUtils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,35 @@ export const filterOnBirthDates = (
return Object.fromEntries(filtered);
};

type HendelseTypeFilterKey = keyof HendelseTypeFilters;

const matchesFilter = (
key: HendelseTypeFilterKey,
filters: HendelseTypeFilters,
personData: PersonData
): boolean => {
switch (key) {
case 'onskerMote':
return !filters[key] || personData.harMotebehovUbehandlet;
case 'arbeidsgiverOnskerMote':
return !filters[key] || personData.harOppfolgingsplanLPSBistandUbehandlet;
case 'dialogmotekandidat':
return !filters[key] || personData.dialogmotekandidat === true;
case 'ufordeltBruker':
return !filters[key] || !personData.tildeltVeilederIdent;
case 'dialogmotesvar':
return !filters[key] || personData.harDialogmotesvar;
case 'aktivitetskrav':
return !filters[key] || personData.aktivitetskravActive;
case 'behandlerdialog':
return !filters[key] || personData.harBehandlerdialogUbehandlet;
case 'aktivitetskravVurderStans':
return !filters[key] || personData.harAktivitetskravVurderStansUbehandlet;
case 'huskelapp':
return !filters[key] || personData.huskelappActive;
}
};

export const filterOnPersonregister = (
personregister: PersonregisterState,
filter?: HendelseTypeFilters
Expand All @@ -92,17 +121,8 @@ export const filterOnPersonregister = (
}

const filtered = Object.entries(personregister).filter(([, personData]) => {
return (
(!filter.onskerMote || personData.harMotebehovUbehandlet) &&
(!filter.arbeidsgiverOnskerMote ||
personData.harOppfolgingsplanLPSBistandUbehandlet) &&
(!filter.dialogmotekandidat || personData.dialogmotekandidat) &&
(!filter.ufordeltBruker || !personData.tildeltVeilederIdent) &&
(!filter.dialogmotesvar || personData.harDialogmotesvar) &&
(!filter.aktivitetskrav || personData.aktivitetskravActive) &&
(!filter.behandlerdialog || personData.harBehandlerdialogUbehandlet) &&
(!filter.aktivitetskravVurderStans ||
personData.harAktivitetskravVurderStansUbehandlet)
return Object.keys(filter).every((key) =>
matchesFilter(key as HendelseTypeFilterKey, filter, personData)
);
});

Expand Down
1 change: 1 addition & 0 deletions src/utils/toPersondata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ export const toPersonData = (
harBehandlerdialogUbehandlet: person.behandlerdialogUbehandlet,
harAktivitetskravVurderStansUbehandlet:
person.aktivitetskravVurderStansUbehandlet,
huskelappActive: person.huskelappActive,
};
});

Expand Down
11 changes: 11 additions & 0 deletions test/components/HendelseTypeFilter.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,12 @@ describe('HendelseTypeFilter', () => {
checked: false,
});
expect(vurderStansCheckbox).to.exist;

const huskelappCheckbox = screen.getByRole('checkbox', {
name: /Huskelapp/,
checked: false,
});
expect(huskelappCheckbox).to.exist;
});
it('Skal ikke inneholde checkbokser bak toggle når toggles disabled', () => {
queryClient.setQueryData(
Expand Down Expand Up @@ -119,6 +125,11 @@ describe('HendelseTypeFilter', () => {
name: /Vurder stans/,
})
).to.not.exist;
expect(
screen.queryByRole('checkbox', {
name: /Huskelapp/,
})
).to.not.exist;
});
it('Viser ikke ufordelte brukere-checkboks i min oversikt', () => {
render(
Expand Down
1 change: 1 addition & 0 deletions test/components/Personrad.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ const defaultPersonData: PersonData = {
aktivitetskravVurderingFrist: null,
harBehandlerdialogUbehandlet: false,
harAktivitetskravVurderStansUbehandlet: false,
huskelappActive: false,
};
const personDataAktivitetskravAvventUtenFrist: PersonData = {
...defaultPersonData,
Expand Down
1 change: 1 addition & 0 deletions test/components/Sokeresultat.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ describe('Sokeresultat', () => {
aktivitetskrav: false,
behandlerdialog: false,
aktivitetskravVurderStans: false,
huskelapp: false,
},
};

Expand Down
Loading

0 comments on commit 18bf6fc

Please sign in to comment.