signoz/frontend/src/hooks/usePreviousValue.test.tsx

44 lines
919 B
TypeScript
Raw Normal View History

import { renderHook } from '@testing-library/react';
import usePreviousValue from './usePreviousValue';
describe('usePreviousValue', () => {
test('returns the previous value of a given variable', () => {
const { result, rerender } = renderHook(
({ value }) => usePreviousValue(value),
{
initialProps: { value: 1 },
baseElement: document.body,
},
);
expect(result.current).toBeUndefined();
rerender({ value: 2 });
expect(result.current).toBe(1);
rerender({ value: 3 });
expect(result.current).toBe(2);
});
test('works with different types of values', () => {
const { result, rerender } = renderHook(
({ value }) => usePreviousValue(value),
{
initialProps: { value: 'a' },
},
);
expect(result.current).toBeUndefined();
rerender({ value: 'b' });
expect(result.current).toBe('a');
rerender({ value: 'c' });
expect(result.current).toBe('b');
});
});