39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
import { FaviconOverlayManager } from '@gitlab/favicon-overlay';
|
|
import * as faviconUtils from '~/lib/utils/favicon';
|
|
|
|
jest.mock('@gitlab/favicon-overlay');
|
|
|
|
describe('~/lib/utils/favicon', () => {
|
|
afterEach(() => {
|
|
faviconUtils.clearMemoizeCache();
|
|
});
|
|
|
|
describe.each`
|
|
fnName | managerFn | args
|
|
${'setFaviconOverlay'} | ${FaviconOverlayManager.setFaviconOverlay} | ${['test']}
|
|
${'resetFavicon'} | ${FaviconOverlayManager.resetFaviconOverlay} | ${[]}
|
|
`('$fnName', ({ fnName, managerFn, args }) => {
|
|
const call = () => faviconUtils[fnName](...args);
|
|
|
|
it('initializes only once when called', async () => {
|
|
expect(FaviconOverlayManager.initialize).not.toHaveBeenCalled();
|
|
|
|
// Call twice so we can make sure initialize is only called once
|
|
await call();
|
|
await call();
|
|
|
|
expect(FaviconOverlayManager.initialize).toHaveBeenCalledWith({
|
|
faviconSelector: '#favicon',
|
|
});
|
|
expect(FaviconOverlayManager.initialize).toHaveBeenCalledTimes(1);
|
|
});
|
|
|
|
it('passes call to manager', async () => {
|
|
expect(managerFn).not.toHaveBeenCalled();
|
|
|
|
await call();
|
|
|
|
expect(managerFn).toHaveBeenCalledWith(...args);
|
|
});
|
|
});
|
|
});
|