Skip to content

Commit

Permalink
tests: useLogger (#670)
Browse files Browse the repository at this point in the history
  • Loading branch information
Kevin Norris authored and wardoost committed Oct 12, 2019
1 parent 8fcf8d4 commit 87d4613
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions src/__tests__/useLogger.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import { renderHook } from '@testing-library/react-hooks';
import useLogger from '../useLogger';

const logSpy = jest.spyOn(global.console, 'log').mockImplementation(() => {});

describe('useLogger', () => {
it('should be defined', () => {
expect(useLogger).toBeDefined();
});

it('should log the provided props on mount', () => {
const props = { question: 'What is the meaning?', answer: 42 };
renderHook(() => useLogger('Test', props));

expect(logSpy).toBeCalledTimes(1);
expect(logSpy).toHaveBeenLastCalledWith('Test mounted', props);
});

it('should log when the component has unmounted', () => {
const props = { question: 'What is the meaning?', answer: 42 };
const { unmount } = renderHook(() => useLogger('Test', props));

unmount();

expect(logSpy).toHaveBeenLastCalledWith('Test unmounted');
});

it('should log updates as props change', () => {
const { rerender } = renderHook(
({ componentName, props }: { componentName: string; props: any }) => useLogger(componentName, props),
{
initialProps: { componentName: 'Test', props: { one: 1 } },
}
);

const newProps = { one: 1, two: 2 };
rerender({ componentName: 'Test', props: newProps });

expect(logSpy).toHaveBeenLastCalledWith('Test updated', newProps);
});
});

0 comments on commit 87d4613

Please sign in to comment.