Skip to content
This repository has been archived by the owner on Mar 28, 2023. It is now read-only.

Commit

Permalink
Tillate 0 dager på enkeltinnsending uten å gjøre det samme på bulk (#380
Browse files Browse the repository at this point in the history
)
  • Loading branch information
MrFjellstad committed Jan 6, 2022
1 parent df02ed4 commit 1cb2a4d
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 11 deletions.
3 changes: 2 additions & 1 deletion src/components/bulk/BulkDager.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export const BulkDager = (props: BulkDagerInterface) => {
const aktuellAnsatt = ansatte.find((ansatt) => ansatt.id === props.id);
const handleChange = (evt) => {
if (aktuellAnsatt) {
aktuellAnsatt.antallDagerMedRefusjon = parseInt(evt.target.selectedIndex);
aktuellAnsatt.antallDagerMedRefusjon = parseInt(evt.target.value);
aktuellAnsatt.dagerError = validateDager(
aktuellAnsatt.antallDagerMedRefusjon
);
Expand All @@ -26,6 +26,7 @@ export const BulkDager = (props: BulkDagerInterface) => {
const refusjonsdager = antallRefusjonsdager(props.startdato);

const optionArr = Array.from(Array(refusjonsdager + 1).keys());

return (
<Select
id={'dager_' + props.id}
Expand Down
16 changes: 11 additions & 5 deletions src/components/bulk/ValideringAnsatte.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,25 +104,29 @@ describe('ValideringAnsatte', () => {
fnr: TestFnr.GyldigeFraDolly.TestPerson1,
fnrError: undefined,
fom: '2020-01-01',
fomError: undefined,
id: 123,
oppdatert: 1,
periodeError: undefined,
status: 0,
tom: '2020-02-02'
tom: '2020-02-02',
tomError: undefined
},
{
antallDagerMedRefusjon: -1,
beloep: 123,
beloepError: undefined,
dagerError: 'Dager må være 0 eller høyere',
dagerError: 'Dager må være høyere enn 0',
fnr: TestFnr.GyldigeFraDolly.TestPerson2,
fnrError: undefined,
fom: '2020-03-03',
fomError: undefined,
id: 123,
oppdatert: 1,
periodeError: undefined,
status: 0,
tom: '2020-04-04'
tom: '2020-04-04',
tomError: undefined
}
];

Expand Down Expand Up @@ -267,15 +271,17 @@ describe('ValideringAnsatte', () => {
antallDagerMedRefusjon: 0,
beloep: 666,
beloepError: 'Beløpet må være 0 når antall dager med refusjon er 0',
dagerError: undefined,
dagerError: 'Dager må være høyere enn 0',
fnr: TestFnr.GyldigeFraDolly.TestPerson2,
fnrError: undefined,
fom: '2020-03-03',
fomError: undefined,
id: 123,
oppdatert: 1,
periodeError: undefined,
status: 0,
tom: '2020-04-04'
tom: '2020-04-04',
tomError: undefined
}
];

Expand Down
4 changes: 2 additions & 2 deletions src/components/bulk/ValideringAnsatte.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { validateAnsatteFnr } from './validateAnsatteFnr';
import { validatePerioder } from './validatePerioder';
import validateDager from '../dager/validateDager';
import validateDagerEnkeltinnsending from '../dager/validateDagerEnkeltinnsending';
import validateRefusjon from '../refusjon/validateRefusjon';
import { Ansatt } from './Ansatt';
import { validateDato } from './validateDato';
Expand All @@ -12,7 +12,7 @@ export const valideringAnsatte = (ansatte: Ansatt[]) => {
a.periodeError = validatePerioder(a.fom, a.tom);
a.fomError = validateDato(dayjs(a.fom, 'YYYY-MM-DD').toDate());
a.tomError = validateDato(dayjs(a.tom, 'YYYY-MM-DD').toDate());
a.dagerError = validateDager(a.antallDagerMedRefusjon);
a.dagerError = validateDagerEnkeltinnsending(a.antallDagerMedRefusjon);
a.beloepError = validateRefusjon(a.beloep, a.antallDagerMedRefusjon);
});

Expand Down
3 changes: 2 additions & 1 deletion src/components/dager/DagerInput.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export const DagerInput = ({
const [lokalFeil, setLokalFeil] = useState<string | undefined>();
const valgbareDager = antallRefusjonsdager(startdato);
const optionArr = Array.from(Array(valgbareDager + 1).keys());
optionArr.unshift(-1);

const handleDagerBlur = (evt) => {
const feilmelding = validateDager(evt.target.value);
Expand Down Expand Up @@ -55,7 +56,7 @@ export const DagerInput = ({
>
{optionArr.map((optionValue) => (
<option key={optionValue} value={optionValue}>
{optionValue ? optionValue : '-'}
{optionValue !== -1 ? optionValue : '-'}
</option>
))}
</Select>
Expand Down
30 changes: 30 additions & 0 deletions src/components/dager/validateDagerEnkeltinnsending.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import validateDagerEnkeltinnsending from './validateDagerEnkeltinnsending';

describe('validateDagerEnkeltinnsending', () => {
it('should not allow zero', () => {
expect(validateDagerEnkeltinnsending(0)).toEqual(
'Dager må være høyere enn 0'
);
});

it('should not accept undefined', () => {
expect(validateDagerEnkeltinnsending()).toBe('Feltet må fylles ut');
});

it('should accept 1-13', () => {
expect(validateDagerEnkeltinnsending(1)).toBeUndefined();
expect(validateDagerEnkeltinnsending(13)).toBeUndefined();
});

it('should not accept negative', () => {
expect(validateDagerEnkeltinnsending(-1)).toEqual(
'Dager må være høyere enn 0'
);
});

it('should not allow to high value', () => {
expect(validateDagerEnkeltinnsending(14)).toEqual(
'Dager må være 13 eller lavere'
);
});
});
12 changes: 12 additions & 0 deletions src/components/dager/validateDagerEnkeltinnsending.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
const validateDager = (value?: number): string | undefined => {
if (value === undefined) {
return 'Feltet må fylles ut';
} else if (value <= 0) {
return 'Dager må være høyere enn 0';
} else if (value > 13) {
return 'Dager må være 13 eller lavere';
}
return undefined;
};

export default validateDager;
2 changes: 1 addition & 1 deletion src/components/enkel/EnkelDager.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const EnkelDager = (props: EnkelDagerProps) => {
} = useFormContext();
const componentId = 'dager_' + props.index;
const onChange = (dager?: number) => {
if (!dager) {
if (dager < 0) {
setError(componentId, {
type: 'Antall dager må fylles ut',
message: 'Antall dager må fylles ut'
Expand Down
2 changes: 1 addition & 1 deletion src/pages/Sykepenger.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ function validateValuesAreSet(
}
break;
case 'dager':
if (!formAsJson[element] || formAsJson[element] === '0') {
if (!formAsJson[element] || Number(formAsJson[element]) < 0) {
methods.setError(element, {
type: 'Antall dager må fylles ut',
message: 'Antall dager må fylles ut'
Expand Down

0 comments on commit 1cb2a4d

Please sign in to comment.