Skip to content

Commit c842f02

Browse files
IS-2853: Enable search only on fodselsdato (#557)
1 parent 2cc0b10 commit c842f02

File tree

3 files changed

+24
-15
lines changed

3 files changed

+24
-15
lines changed

src/components/sokperson/SokPerson.tsx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ function logSokPersonResults(amount: number) {
5151
}
5252

5353
export default function SokPerson() {
54-
const [nameInitials, setNameInitials] = useState<string>('');
54+
const [initials, setInitials] = useState<string>('');
5555
const [birthdate, setBirthdate] = useState<string>('');
5656
const {
5757
mutate,
@@ -72,15 +72,15 @@ export default function SokPerson() {
7272
}
7373
};
7474

75-
const validInitials = (initials: string): boolean => {
76-
return initials.length <= 3 && initials.length > 1;
75+
const isValidInitials = (initials: string): boolean => {
76+
return initials === '' || (initials.length <= 3 && initials.length > 1);
7777
};
7878

7979
const handleSubmit = () => {
8080
const parsedBirthdate = parseBirthdate(birthdate);
81-
if (validInitials(nameInitials) && !!parsedBirthdate) {
81+
if (isValidInitials(initials) && !!parsedBirthdate) {
8282
const requestDTO: SokDTO = {
83-
initials: nameInitials.toLowerCase(),
83+
initials: initials.toLowerCase(),
8484
birthdate: parsedBirthdate,
8585
};
8686
mutate(requestDTO, {
@@ -92,8 +92,8 @@ export default function SokPerson() {
9292
}
9393
};
9494

95-
const invalidInitials = isFormError && !validInitials(nameInitials);
96-
const invalidBirthdate = isFormError && parseBirthdate(birthdate) === null;
95+
const isInvalidInitials = isFormError && !isValidInitials(initials);
96+
const isInvalidBirthdate = isFormError && parseBirthdate(birthdate) === null;
9797

9898
return (
9999
<>
@@ -115,16 +115,16 @@ export default function SokPerson() {
115115
description="AB"
116116
htmlSize={10}
117117
type="text"
118-
onChange={(e) => setNameInitials(e.target.value)}
119-
error={invalidInitials}
118+
onChange={(e) => setInitials(e.target.value)}
119+
error={isFormError && !isValidInitials(initials)}
120120
/>
121121
<TextField
122122
label="Fødselsdato"
123123
description="ddmmåå"
124124
htmlSize={14}
125125
type="text"
126126
onChange={(e) => setBirthdate(e.target.value)}
127-
error={invalidBirthdate}
127+
error={isInvalidBirthdate}
128128
/>
129129
<Button
130130
loading={isLoading}
@@ -134,12 +134,12 @@ export default function SokPerson() {
134134
Søk
135135
</Button>
136136
</HStack>
137-
{invalidInitials && (
137+
{isInvalidInitials && (
138138
<ErrorMessage size="small">
139139
{texts.validation.initials}
140140
</ErrorMessage>
141141
)}
142-
{invalidBirthdate && (
142+
{isInvalidBirthdate && (
143143
<ErrorMessage size="small">
144144
{texts.validation.birthdate}
145145
</ErrorMessage>

src/mocks/data/personoversiktEnhetMock.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ export const personoversiktEnhetMock: PersonOversiktStatusDTO[] = [
149149
{
150150
...behandletPerson,
151151
fnr: '59999933333',
152-
navn: '',
152+
navn: 'Navn Navnesen',
153153
fodselsdato: new Date('1990-01-01'),
154154
enhet: '0316',
155155
veilederIdent: 'Z101010',

test/components/SokPersonTest.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,24 @@ describe('SokPerson', () => {
4646
expect(screen.getByRole('button', { name: 'Søk' })).to.exist;
4747
});
4848

49-
it('should render validation errors for fields', async () => {
49+
it('should render validation error for fodselsdato not initials', async () => {
5050
renderSokPerson();
5151

5252
await userEvent.click(screen.getByRole('button', { name: 'Søk' }));
5353

54-
expect(screen.getByText('Vennligst angi gyldige initialer')).to.exist;
5554
expect(screen.getByText('Vennligst angi en gyldig fødselsdato')).to.exist;
55+
expect(screen.queryByText('Vennligst angi gyldige initialer')).to.not.exist;
5656
});
57+
it('should render validation error for initialer when blank and too many characters', async () => {
58+
renderSokPerson();
5759

60+
const initialsInput = screen.getByRole('textbox', { name: 'Initialer' });
61+
fireEvent.change(initialsInput, { target: { value: ' ' } });
62+
await userEvent.click(screen.getByRole('button', { name: 'Søk' }));
63+
expect(screen.getByText('Vennligst angi gyldige initialer')).to.exist;
64+
fireEvent.change(initialsInput, { target: { value: 'ABCD' } });
65+
expect(screen.getByText('Vennligst angi gyldige initialer')).to.exist;
66+
});
5867
it('should send correct parameters', async () => {
5968
renderSokPerson();
6069

0 commit comments

Comments
 (0)