Skip to content

Commit

Permalink
tester møtevarighet (#1192)
Browse files Browse the repository at this point in the history
* tester møtevarighet

* fix feilende tester
  • Loading branch information
johatr authored Sep 15, 2023
1 parent 1ca9b9a commit 4260b7f
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 40 deletions.
17 changes: 10 additions & 7 deletions src/moduler/aktivitet/aktivitet-forms/mote/MoteAktivitetForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@ const schema = z.object({
export type MoteAktivitetFormValues = z.infer<typeof schema>;

interface Props {
onSubmit: (data: MoteAktivitetFormValues & { status: string; avtalt: boolean }) => Promise<void>;
onSubmit: (
data: Omit<MoteAktivitetFormValues, 'klokkeslett'> & { status: string; avtalt: boolean },
) => Promise<void>;
dirtyRef: MutableRefObject<boolean>;
aktivitet?: MoteAktivitet;
}
Expand Down Expand Up @@ -114,15 +116,16 @@ const MoteAktivitetForm = (props: Props) => {
<form
autoComplete="off"
noValidate
onSubmit={handleSubmit((data) =>
onSubmit({
...data,
onSubmit={handleSubmit((data) => {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
const { klokkeslett, ...rest } = data;
return onSubmit({
...rest,
...beregnFraTil(data),
status: AktivitetStatus.PLANLAGT,
avtalt: false,
// dato: selectedDay!!.toString(),
}),
)}
});
})}
>
<FormProvider {...formHandlers}>
<div className="space-y-8">
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { configureStore } from '@reduxjs/toolkit';
import { RenderResult, fireEvent, render, screen, act } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { addDays, addMinutes, subYears } from 'date-fns';
import { addDays, addMinutes, differenceInMinutes, subYears } from 'date-fns';
import React from 'react';
import { Provider as ReduxProvider } from 'react-redux';

Expand Down Expand Up @@ -32,8 +32,9 @@ const fillForm = () => {
fireEvent.change(screen.getByLabelText<HTMLInputElement>('Dato (obligatorisk)'), {
target: { value: '21.09.2023' },
});
const klokkeslett = new Date('2023-09-20T06:00:00.000Z').getHours();
fireEvent.change(screen.getByLabelText<HTMLInputElement>('Klokkeslett (obligatorisk)'), {
target: { value: '08:00' },
target: { value: '0' + klokkeslett + ':00' },
});
fireEvent.change(screen.getByLabelText<HTMLInputElement>('Møteform (obligatorisk)'), {
target: { value: Kanal.TELEFON },
Expand Down Expand Up @@ -133,10 +134,23 @@ describe('MoteAktivitetForm', () => {
screen.getByDisplayValue('Dette er en beskrivelse');
});

it.skip('Skal validere form', async () => {
it('Skal validere form', async () => {
const expectedResult = {
adresse: 'Kontor',
avtalt: false,
beskrivelse: 'Møte med NAV',
// dato: new Date('2023-09-20T22:00:00.000Z'),
forberedelser: '',
// fraDato: '2023-09-21T06:00:00.000Z',
kanal: 'TELEFON',
status: 'PLANLAGT',
// tilDato: '2023-09-21T06:30:00.000Z',
tittel: 'Møte med NAV',
varighet: 30,
};

const mock = vi.fn();
mountWithIntl(<MoteAktivitetForm onSubmit={mock} isDirtyRef={dirtyRef} />);

fillForm();
fireEvent.change(screen.getByLabelText<HTMLInputElement>('Varighet (obligatorisk)'), {
target: { value: '30' },
Expand All @@ -145,23 +159,14 @@ describe('MoteAktivitetForm', () => {
fireEvent.click(screen.getByText('Lagre'));
});

expect(mock).toHaveBeenCalledWith({
adresse: 'Kontor',
avtalt: false,
beskrivelse: 'Møte med NAV',
dato: new Date('2023-09-20T22:00:00.000Z'),
forberedelser: '',
fraDato: '2023-09-21T06:00:00.000Z',
kanal: 'TELEFON',
klokkeslett: '08:00',
status: 'PLANLAGT',
tilDato: '2023-09-21T06:30:00.000Z',
tittel: 'Møte med NAV',
varighet: 30,
});
const lastcall = mock.mock.lastCall[0];
const { fraDato, tilDato, varighet }: { fraDato: Date; tilDato: Date; varighet: number } = lastcall;
expect(differenceInMinutes(new Date(tilDato), new Date(fraDato))).toBe(varighet);

expect(lastcall).toEqual(expect.objectContaining(expectedResult));
});

it.skip('Skal selekte riktig varighet', async () => {
it('Skal selekte riktig varighet', async () => {
const mock = vi.fn();
mountWithIntl(<MoteAktivitetForm onSubmit={mock} isDirtyRef={dirtyRef} />);

Expand All @@ -172,20 +177,25 @@ describe('MoteAktivitetForm', () => {
fireEvent.click(screen.getByText('Lagre'));
});

expect(mock).toHaveBeenCalledWith({
adresse: 'Kontor',
avtalt: false,
beskrivelse: 'Møte med NAV',
dato: new Date('2023-09-20T22:00:00.000Z'),
forberedelser: '',
fraDato: '2023-09-21T06:00:00.000Z',
kanal: 'TELEFON',
klokkeslett: '08:00',
status: 'PLANLAGT',
tilDato: '2023-09-21T08:30:00.000Z',
tittel: 'Møte med NAV',
varighet: 150,
});
const lastcall = mock.mock.lastCall[0];
const { fraDato, tilDato, varighet }: { fraDato: Date; tilDato: Date; varighet: number } = lastcall;
expect(differenceInMinutes(new Date(tilDato), new Date(fraDato))).toBe(varighet);

expect(lastcall).toEqual(
expect.objectContaining({
adresse: 'Kontor',
avtalt: false,
beskrivelse: 'Møte med NAV',
// dato: new Date('2023-09-20T22:00:00.000Z'),
forberedelser: '',
// fraDato: '2023-09-21T06:00:00.000Z',
kanal: 'TELEFON',
status: 'PLANLAGT',
// tilDato: '2023-09-21T08:30:00.000Z',
tittel: 'Møte med NAV',
varighet: 150,
}),
);
});

it('Skal være disablede felter ved endring av aktivitet', () => {
Expand Down

0 comments on commit 4260b7f

Please sign in to comment.