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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
import initGkeDropdowns from '~/create_cluster/gke_cluster';
import initGkeNamespace from '~/create_cluster/gke_cluster_namespace';
import initCreateCluster from '~/create_cluster/init_create_cluster';
import PersistentUserCallout from '~/persistent_user_callout';
// This import is loaded dynamically in `init_create_cluster`.
// Let's eager import it here so that the first spec doesn't timeout.
// https://gitlab.com/gitlab-org/gitlab/issues/118499
import '~/create_cluster/eks_cluster';
jest.mock('~/create_cluster/gke_cluster', () => jest.fn());
jest.mock('~/create_cluster/gke_cluster_namespace', () => jest.fn());
jest.mock('~/persistent_user_callout', () => ({
factory: jest.fn(),
}));
describe('initCreateCluster', () => {
let document;
let gon;
beforeEach(() => {
document = {
body: { dataset: {} },
querySelector: jest.fn(),
};
gon = { features: {} };
});
afterEach(() => {
jest.clearAllMocks();
});
describe.each`
pageSuffix | page
${':clusters:new'} | ${'project:clusters:new'}
${':clusters:create_gcp'} | ${'groups:clusters:create_gcp'}
${':clusters:create_user'} | ${'admin:clusters:create_user'}
`('when cluster page ends in $pageSuffix', ({ page }) => {
beforeEach(() => {
document.body.dataset = { page };
initCreateCluster(document, gon);
});
it('initializes create GKE cluster app', () => {
expect(initGkeDropdowns).toHaveBeenCalled();
});
it('initializes gcp signup offer banner', () => {
expect(PersistentUserCallout.factory).toHaveBeenCalled();
});
});
describe('when creating a project level cluster', () => {
it('initializes gke namespace app', () => {
document.body.dataset.page = 'project:clusters:new';
initCreateCluster(document, gon);
expect(initGkeNamespace).toHaveBeenCalled();
});
});
describe.each`
clusterLevel | page
${'group level'} | ${'groups:clusters:new'}
${'instance level'} | ${'admin:clusters:create_gcp'}
`('when creating a $clusterLevel cluster', ({ page }) => {
it('does not initialize gke namespace app', () => {
document.body.dataset = { page };
initCreateCluster(document, gon);
expect(initGkeNamespace).not.toHaveBeenCalled();
});
});
});
|