refactoring
This commit is contained in:
72
src/hooks/usePickupConfig.test.js
Normal file
72
src/hooks/usePickupConfig.test.js
Normal file
@@ -0,0 +1,72 @@
|
||||
import React from 'react';
|
||||
import { act, render } from '@testing-library/react';
|
||||
import usePickupConfig from './usePickupConfig';
|
||||
|
||||
describe('usePickupConfig', () => {
|
||||
const advanceTimers = async (ms = 0) => {
|
||||
await act(async () => {
|
||||
jest.advanceTimersByTime(ms);
|
||||
await Promise.resolve();
|
||||
});
|
||||
};
|
||||
|
||||
const renderHook = () => {
|
||||
let latest;
|
||||
const TestHarness = () => {
|
||||
latest = usePickupConfig();
|
||||
return null;
|
||||
};
|
||||
render(<TestHarness />);
|
||||
return () => latest;
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
jest.useFakeTimers();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.useRealTimers();
|
||||
});
|
||||
|
||||
test('fetchConfig loads sorted configuration', async () => {
|
||||
const getHook = renderHook();
|
||||
await advanceTimers(600);
|
||||
const hook = getHook();
|
||||
expect(hook.loading).toBe(false);
|
||||
expect(hook.config[0].label).toBe('Aldi Biblisweg');
|
||||
expect(hook.config[hook.config.length - 1].label).toBe('Penny Baden-Oos');
|
||||
});
|
||||
|
||||
test('mutators update entries as expected', async () => {
|
||||
const getHook = renderHook();
|
||||
await advanceTimers(600);
|
||||
|
||||
await act(async () => {
|
||||
getHook().toggleActive(0);
|
||||
getHook().toggleProfileCheck(0);
|
||||
getHook().toggleOnlyNotify(0);
|
||||
});
|
||||
|
||||
let updated = getHook().config[0];
|
||||
expect(updated.active).toBe(true);
|
||||
expect(updated.checkProfileId).toBe(false);
|
||||
expect(updated.onlyNotify).toBe(true);
|
||||
|
||||
await act(async () => {
|
||||
getHook().changeWeekday(0, 'Montag');
|
||||
});
|
||||
updated = getHook().config[0];
|
||||
expect(updated.desiredWeekday).toBe('Montag');
|
||||
expect(updated.desiredDateRange).toBeUndefined();
|
||||
|
||||
await act(async () => {
|
||||
getHook().updateDateRange(updated.id, new Date('2025-01-01'), new Date('2025-01-03'));
|
||||
});
|
||||
updated = getHook().config[0];
|
||||
expect(updated.desiredDateRange).toEqual({
|
||||
start: '2025-01-01',
|
||||
end: '2025-01-03'
|
||||
});
|
||||
expect(updated.desiredWeekday).toBeUndefined();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user