blob: 1b986432b8a4ab6a6e06b24144f62b14641e25d7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
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);
});
});
});
|