mirror of
https://github.com/streamich/react-use.git
synced 2026-01-18 14:06:52 +00:00
Also reduce max line width to 100. And remove `lint:types` step for commit sequence, it bothers when committing incomplete (wip) changes.
58 lines
1.9 KiB
TypeScript
58 lines
1.9 KiB
TypeScript
import { renderHook } from '@testing-library/react-hooks';
|
|
import useFavicon from '../src/useFavicon';
|
|
|
|
afterEach(() => {
|
|
const favicon = document.querySelector("link[rel*='icon']");
|
|
if (favicon) {
|
|
favicon.remove();
|
|
}
|
|
});
|
|
|
|
describe('useFavicon', () => {
|
|
it('should be defined', () => {
|
|
expect(useFavicon).toBeDefined();
|
|
});
|
|
|
|
it('should create a HTMLLinkElement', () => {
|
|
const faviconBeforeHook = document.querySelector("link[rel*='icon']");
|
|
|
|
expect(faviconBeforeHook).toBe(null);
|
|
renderHook(() => useFavicon('My-favicon'));
|
|
|
|
const faviconAfterHook = document.querySelector("link[rel*='icon']");
|
|
expect(faviconAfterHook).toBeInstanceOf(HTMLLinkElement);
|
|
});
|
|
|
|
it('should set the elements type to "image/x-icon"', () => {
|
|
renderHook(() => useFavicon('My-favicon'));
|
|
const favicon = document.querySelector("link[rel*='icon']") as HTMLLinkElement;
|
|
|
|
expect(favicon.type).toBe('image/x-icon');
|
|
});
|
|
|
|
it('should set the elements rel to "shortcut icon"', () => {
|
|
renderHook(() => useFavicon('My-favicon'));
|
|
const favicon = document.querySelector("link[rel*='icon']") as HTMLLinkElement;
|
|
|
|
expect(favicon.rel).toBe('shortcut icon');
|
|
});
|
|
|
|
it('should set the elements href to the provided string', () => {
|
|
renderHook(() => useFavicon('https://github.com/streamich/react-use'));
|
|
const favicon = document.querySelector("link[rel*='icon']") as HTMLLinkElement;
|
|
|
|
expect(favicon.href).toBe('https://github.com/streamich/react-use');
|
|
});
|
|
|
|
it('should update an existing favicon', () => {
|
|
const hook = renderHook((props) => useFavicon(props), {
|
|
initialProps: 'https://github.com/streamich/react-use',
|
|
});
|
|
const favicon = document.querySelector("link[rel*='icon']") as HTMLLinkElement;
|
|
|
|
expect(favicon.href).toBe('https://github.com/streamich/react-use');
|
|
hook.rerender('https://en.wikipedia.org/wiki/Favicon');
|
|
expect(favicon.href).toBe('https://en.wikipedia.org/wiki/Favicon');
|
|
});
|
|
});
|