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
|
import { createAppOptions } from '~/pipelines/pipeline_tabs';
jest.mock('~/lib/utils/url_utility', () => ({
removeParams: () => 'gitlab.com',
joinPaths: () => {},
setUrlFragment: () => {},
}));
jest.mock('~/pipelines/utils', () => ({
getPipelineDefaultTab: () => '',
}));
describe('~/pipelines/pipeline_tabs.js', () => {
describe('createAppOptions', () => {
const SELECTOR = 'SELECTOR';
let el;
const createElement = () => {
el = document.createElement('div');
el.id = SELECTOR;
el.dataset.canGenerateCodequalityReports = 'true';
el.dataset.codequalityReportDownloadPath = 'codequalityReportDownloadPath';
el.dataset.downloadablePathForReportType = 'downloadablePathForReportType';
el.dataset.exposeSecurityDashboard = 'true';
el.dataset.exposeLicenseScanningData = 'true';
el.dataset.failedJobsCount = 1;
el.dataset.graphqlResourceEtag = 'graphqlResourceEtag';
el.dataset.pipelineIid = '123';
el.dataset.pipelineProjectPath = 'pipelineProjectPath';
document.body.appendChild(el);
};
afterEach(() => {
el = null;
});
it("extracts the properties from the element's dataset", () => {
createElement();
const options = createAppOptions(`#${SELECTOR}`, null);
expect(options).toMatchObject({
el,
provide: {
canGenerateCodequalityReports: true,
codequalityReportDownloadPath: 'codequalityReportDownloadPath',
downloadablePathForReportType: 'downloadablePathForReportType',
exposeSecurityDashboard: true,
exposeLicenseScanningData: true,
failedJobsCount: '1',
graphqlResourceEtag: 'graphqlResourceEtag',
pipelineIid: '123',
pipelineProjectPath: 'pipelineProjectPath',
},
});
});
it('returns `null` if el does not exist', () => {
expect(createAppOptions('foo', null)).toBe(null);
});
});
});
|