@gitlab/ui 32.39.0 → 32.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/dist/components/base/form/form_input_group/form_input_group.js +6 -1
- package/dist/components/base/markdown/markdown.documentation.js +2 -6
- package/dist/components/base/search_box_by_click/search_box_by_click.js +1 -0
- package/dist/components/base/search_box_by_type/search_box_by_type.js +1 -1
- package/dist/components/base/token_selector/token_selector.documentation.js +2 -106
- package/dist/components/base/token_selector/token_selector.js +85 -1
- package/dist/components/base/tooltip/tooltip.documentation.js +2 -6
- package/dist/components/charts/area/area.js +1 -1
- package/dist/components/charts/column/column.js +1 -1
- package/dist/components/charts/discrete_scatter/discrete_scatter.js +1 -1
- package/dist/components/charts/line/line.js +1 -1
- package/dist/utility_classes.css +1 -1
- package/dist/utility_classes.css.map +1 -1
- package/documentation/documented_stories.js +3 -0
- package/package.json +13 -13
- package/src/components/base/accordion/accordion.spec.js +0 -4
- package/src/components/base/accordion/accordion_item.spec.js +0 -4
- package/src/components/base/alert/alert.spec.js +0 -4
- package/src/components/base/avatar_labeled/avatar_labeled.spec.js +0 -2
- package/src/components/base/avatars_inline/avatars_inline.spec.js +0 -2
- package/src/components/base/badge/badge.spec.js +0 -2
- package/src/components/base/broadcast_message/broadcast_message.spec.js +0 -4
- package/src/components/base/button/button.spec.js +0 -5
- package/src/components/base/card/card.spec.js +0 -5
- package/src/components/base/carousel/carousel.spec.js +0 -4
- package/src/components/base/collapse/collapse.spec.js +0 -4
- package/src/components/base/datepicker/datepicker.spec.js +0 -4
- package/src/components/base/daterange_picker/daterange_picker.spec.js +0 -5
- package/src/components/base/drawer/drawer.spec.js +0 -4
- package/src/components/base/dropdown/dropdown.spec.js +0 -2
- package/src/components/base/dropdown/dropdown_item.spec.js +0 -2
- package/src/components/base/filtered_search/filtered_search.spec.js +0 -10
- package/src/components/base/filtered_search/filtered_search_suggestion.spec.js +0 -5
- package/src/components/base/filtered_search/filtered_search_suggestion_list.spec.js +0 -5
- package/src/components/base/filtered_search/filtered_search_term.spec.js +0 -5
- package/src/components/base/filtered_search/filtered_search_token.spec.js +0 -5
- package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.spec.js +0 -5
- package/src/components/base/form/form_combobox/form_combobox.spec.js +0 -4
- package/src/components/base/form/form_input/form_input.spec.js +0 -5
- package/src/components/base/form/form_input_group/form_input_group.spec.js +18 -5
- package/src/components/base/form/form_input_group/form_input_group.vue +6 -1
- package/src/components/base/form/form_radio/form_radio.spec.js +0 -4
- package/src/components/base/form/form_radio_group/form_radio_group.spec.js +0 -4
- package/src/components/base/form/form_select/form_select.spec.js +0 -5
- package/src/components/base/form/form_textarea/form_textarea.spec.js +0 -5
- package/src/components/base/icon/icon.spec.js +0 -2
- package/src/components/base/infinite_scroll/infinite_scroll.spec.js +0 -1
- package/src/components/base/keyset_pagination/keyset_pagination.spec.js +0 -5
- package/src/components/base/label/label.spec.js +0 -4
- package/src/components/base/link/link.spec.js +0 -5
- package/src/components/base/loading_icon/loading_icon.spec.js +0 -4
- package/src/components/base/markdown/markdown.documentation.js +0 -3
- package/src/components/base/markdown/markdown.md +0 -2
- package/src/components/base/markdown/markdown.stories.js +25 -24
- package/src/components/base/modal/modal.spec.js +0 -1
- package/src/components/base/nav/nav.spec.js +0 -4
- package/src/components/base/nav/nav_item.spec.js +0 -4
- package/src/components/base/nav/nav_item_dropdown.spec.js +0 -4
- package/src/components/base/paginated_list/paginated_list.spec.js +0 -6
- package/src/components/base/pagination/pagination.spec.js +0 -1
- package/src/components/base/path/path.spec.js +0 -5
- package/src/components/base/popover/popover.spec.js +0 -5
- package/src/components/base/search_box_by_click/search_box_by_click.spec.js +0 -4
- package/src/components/base/search_box_by_click/search_box_by_click.vue +1 -0
- package/src/components/base/search_box_by_type/search_box_by_type.spec.js +0 -5
- package/src/components/base/search_box_by_type/search_box_by_type.vue +1 -1
- package/src/components/base/segmented_control/segmented_control.spec.js +0 -4
- package/src/components/base/skeleton_loader/skeleton_loader.spec.js +0 -5
- package/src/components/base/sorting/sorting.spec.js +0 -4
- package/src/components/base/sorting/sorting_item.spec.js +0 -4
- package/src/components/base/tabs/tabs/scrollable_tabs.spec.js +0 -5
- package/src/components/base/toggle/toggle.spec.js +0 -4
- package/src/components/base/token/token.spec.js +0 -4
- package/src/components/base/token_selector/token_container.spec.js +0 -2
- package/src/components/base/token_selector/token_selector.documentation.js +0 -137
- package/src/components/base/token_selector/token_selector.md +0 -6
- package/src/components/base/token_selector/token_selector.spec.js +0 -5
- package/src/components/base/token_selector/token_selector.stories.js +96 -113
- package/src/components/base/token_selector/token_selector.vue +89 -1
- package/src/components/base/token_selector/token_selector_dropdown.spec.js +0 -5
- package/src/components/base/tooltip/tooltip.documentation.js +0 -3
- package/src/components/base/tooltip/tooltip.md +3 -5
- package/src/components/base/tooltip/tooltip.spec.js +0 -5
- package/src/components/base/tooltip/tooltip.stories.js +49 -25
- package/src/components/base/tooltip/tooltip.vue +1 -0
- package/src/components/charts/area/area.spec.js +8 -24
- package/src/components/charts/area/area.vue +9 -12
- package/src/components/charts/bar/bar.spec.js +4 -11
- package/src/components/charts/chart/chart.spec.js +0 -4
- package/src/components/charts/column/column.vue +3 -2
- package/src/components/charts/column/column_chart.spec.js +35 -19
- package/src/components/charts/discrete_scatter/discrete_scatter.stories.js +1 -0
- package/src/components/charts/discrete_scatter/discrete_scatter.vue +5 -8
- package/src/components/charts/gauge/gauge.spec.js +2 -24
- package/src/components/charts/heatmap/heatmap.spec.js +6 -23
- package/src/components/charts/legend/legend.spec.js +8 -14
- package/src/components/charts/line/line.spec.js +19 -30
- package/src/components/charts/line/line.vue +3 -2
- package/src/components/charts/single_stat/single_stat.spec.js +0 -4
- package/src/components/charts/sparkline/sparkline.spec.js +9 -15
- package/src/components/charts/stacked_column/stacked_column.spec.js +2 -30
- package/src/components/shared_components/clear_icon_button/clear_icon_button.spec.js +0 -4
- package/src/components/shared_components/close_button/close_button.spec.js +0 -4
- package/src/components/utilities/friendly_wrap/friendly_wrap.spec.js +0 -4
- package/src/components/utilities/intersection_observer/intersection_observer.spec.js +1 -1
- package/src/components/utilities/sprintf/sprintf.spec.js +0 -4
- package/src/components/utilities/truncate/truncate.spec.js +10 -15
- package/src/directives/hover_load/hover_load.spec.js +0 -1
- package/src/directives/outside/outside.spec.js +0 -4
- package/src/directives/resize_observer/resize_observer.spec.js +0 -4
- package/src/directives/safe_html/safe_html.spec.js +0 -4
- package/src/directives/safe_link/safe_link.spec.js +0 -5
- package/src/scss/utilities.scss +26 -0
- package/src/scss/utility-mixins/sizing.scss +6 -0
- package/src/scss/utility-mixins/spacing.scss +4 -0
- package/src/scss/utility-mixins/z-index.scss +4 -0
- package/dist/components/base/markdown/examples/index.js +0 -13
- package/dist/components/base/markdown/examples/markdown.basic.example.js +0 -38
- package/dist/components/base/token_selector/examples/index.js +0 -19
- package/dist/components/base/token_selector/examples/token_selector.user_defined_tokens.example.js +0 -48
- package/dist/components/base/token_selector/examples/token_selector.users.example.js +0 -202
- package/dist/components/base/tooltip/examples/index.js +0 -31
- package/dist/components/base/tooltip/examples/tooltip.directive_bottom.example.js +0 -38
- package/dist/components/base/tooltip/examples/tooltip.directive_default.example.js +0 -38
- package/dist/components/base/tooltip/examples/tooltip.directive_left.example.js +0 -38
- package/dist/components/base/tooltip/examples/tooltip.directive_right.example.js +0 -38
- package/src/components/base/markdown/examples/index.js +0 -15
- package/src/components/base/markdown/examples/markdown.basic.example.vue +0 -15
- package/src/components/base/token_selector/examples/index.js +0 -22
- package/src/components/base/token_selector/examples/token_selector.user_defined_tokens.example.vue +0 -17
- package/src/components/base/token_selector/examples/token_selector.users.example.vue +0 -212
- package/src/components/base/tooltip/examples/index.js +0 -36
- package/src/components/base/tooltip/examples/tooltip.directive_bottom.example.vue +0 -7
- package/src/components/base/tooltip/examples/tooltip.directive_default.example.vue +0 -5
- package/src/components/base/tooltip/examples/tooltip.directive_left.example.vue +0 -7
- package/src/components/base/tooltip/examples/tooltip.directive_right.example.vue +0 -7
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { shallowMount } from '@vue/test-utils';
|
|
2
|
-
|
|
3
2
|
import { gaugeSafeHues, gaugeWarningHue } from '../../../utils/charts/theme';
|
|
4
3
|
import Chart from '../chart/chart.vue';
|
|
5
4
|
import GlGauge from './gauge.vue';
|
|
5
|
+
import { createMockChartInstance } from '~helpers/chart_stubs';
|
|
6
6
|
|
|
7
7
|
const placeholder = '--';
|
|
8
8
|
|
|
@@ -20,7 +20,6 @@ jest.mock('echarts', () => ({
|
|
|
20
20
|
|
|
21
21
|
describe('gauge component', () => {
|
|
22
22
|
let wrapper;
|
|
23
|
-
let options;
|
|
24
23
|
|
|
25
24
|
const findChart = () => wrapper.findComponent(Chart);
|
|
26
25
|
const findChartOptions = () => findChart().props('options');
|
|
@@ -38,28 +37,7 @@ describe('gauge component', () => {
|
|
|
38
37
|
};
|
|
39
38
|
|
|
40
39
|
beforeEach(() => {
|
|
41
|
-
|
|
42
|
-
series: [],
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
mockChartInstance = {
|
|
46
|
-
getDom: () => {
|
|
47
|
-
return {
|
|
48
|
-
addEventListener: jest.fn(),
|
|
49
|
-
removeEventListener: jest.fn(),
|
|
50
|
-
};
|
|
51
|
-
},
|
|
52
|
-
on: jest.fn(),
|
|
53
|
-
off: jest.fn(),
|
|
54
|
-
convertToPixel: jest.fn(),
|
|
55
|
-
getOption: () => {
|
|
56
|
-
return options;
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
afterEach(() => {
|
|
62
|
-
wrapper.destroy();
|
|
40
|
+
mockChartInstance = createMockChartInstance();
|
|
63
41
|
});
|
|
64
42
|
|
|
65
43
|
it('emits `created`, with the chart instance', () => {
|
|
@@ -4,6 +4,7 @@ import Chart from '../chart/chart.vue';
|
|
|
4
4
|
import ChartTooltip from '../tooltip/tooltip.vue';
|
|
5
5
|
import HeatMapChart from './heatmap.vue';
|
|
6
6
|
import { TOOLTIP_LEFT_OFFSET } from '~/utils/charts/constants';
|
|
7
|
+
import { createMockChartInstance } from '~helpers/chart_stubs';
|
|
7
8
|
|
|
8
9
|
let mockChartInstance;
|
|
9
10
|
|
|
@@ -13,7 +14,6 @@ jest.mock('echarts', () => ({
|
|
|
13
14
|
|
|
14
15
|
describe('heatmap component', () => {
|
|
15
16
|
let wrapper;
|
|
16
|
-
let options;
|
|
17
17
|
|
|
18
18
|
const findChart = () => wrapper.findComponent(Chart);
|
|
19
19
|
const findChartTooltip = () => wrapper.findComponent(ChartTooltip);
|
|
@@ -22,33 +22,16 @@ describe('heatmap component', () => {
|
|
|
22
22
|
const emitChartCreated = () => findChart().vm.$emit('created', mockChartInstance);
|
|
23
23
|
|
|
24
24
|
beforeEach(() => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
getDom: () => {
|
|
31
|
-
return {
|
|
32
|
-
addEventListener: jest.fn(),
|
|
33
|
-
removeEventListener: jest.fn(),
|
|
34
|
-
};
|
|
35
|
-
},
|
|
36
|
-
convertToPixel: jest.fn(),
|
|
37
|
-
getOption: () => {
|
|
38
|
-
return options;
|
|
39
|
-
},
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
wrapper = shallowMount(HeatMapChart, { propsData: { options, dataSeries: [] } });
|
|
25
|
+
mockChartInstance = createMockChartInstance();
|
|
26
|
+
|
|
27
|
+
wrapper = shallowMount(HeatMapChart, {
|
|
28
|
+
propsData: { options: { series: [] }, dataSeries: [] },
|
|
29
|
+
});
|
|
43
30
|
emitChartCreated();
|
|
44
31
|
|
|
45
32
|
return wrapper.vm.$nextTick();
|
|
46
33
|
});
|
|
47
34
|
|
|
48
|
-
afterEach(() => {
|
|
49
|
-
wrapper.destroy();
|
|
50
|
-
});
|
|
51
|
-
|
|
52
35
|
it('emits `created`, with the chart instance', () => {
|
|
53
36
|
expect(wrapper.emitted('created').length).toBe(1);
|
|
54
37
|
expect(wrapper.emitted('created')[0][0]).toBe(mockChartInstance);
|
|
@@ -2,16 +2,13 @@ import { shallowMount } from '@vue/test-utils';
|
|
|
2
2
|
import Chart from '../chart/chart.vue';
|
|
3
3
|
import GlChartSeriesLabel from '../series_label/series_label.vue';
|
|
4
4
|
import Legend from './legend.vue';
|
|
5
|
+
import { createMockChartInstance } from '~helpers/chart_stubs';
|
|
6
|
+
|
|
7
|
+
let mockChartInstance;
|
|
5
8
|
|
|
6
9
|
jest.mock('echarts', () => ({
|
|
7
|
-
getInstanceByDom:
|
|
8
|
-
init:
|
|
9
|
-
dispatchAction: jest.fn(),
|
|
10
|
-
resize: jest.fn(),
|
|
11
|
-
setOption: jest.fn(),
|
|
12
|
-
on: jest.fn(),
|
|
13
|
-
off: jest.fn(),
|
|
14
|
-
})),
|
|
10
|
+
getInstanceByDom: () => mockChartInstance,
|
|
11
|
+
init: () => mockChartInstance,
|
|
15
12
|
registerTheme: jest.fn(),
|
|
16
13
|
}));
|
|
17
14
|
|
|
@@ -58,24 +55,21 @@ describe('chart legend component', () => {
|
|
|
58
55
|
legendWrapper = shallowMount(Legend, {
|
|
59
56
|
propsData: {
|
|
60
57
|
...propsData,
|
|
61
|
-
chart,
|
|
58
|
+
chart: mockChartInstance,
|
|
62
59
|
seriesInfo,
|
|
63
60
|
},
|
|
64
61
|
});
|
|
65
62
|
};
|
|
66
63
|
|
|
67
64
|
beforeEach(async () => {
|
|
65
|
+
mockChartInstance = createMockChartInstance();
|
|
66
|
+
|
|
68
67
|
chartWrapper = shallowMount(...chartArgs);
|
|
69
68
|
await chartWrapper.vm.$nextTick();
|
|
70
69
|
// Runs after mounting the chart so that it has an up to date reference
|
|
71
70
|
buildLegend();
|
|
72
71
|
});
|
|
73
72
|
|
|
74
|
-
afterEach(() => {
|
|
75
|
-
chartWrapper.destroy();
|
|
76
|
-
legendWrapper.destroy();
|
|
77
|
-
});
|
|
78
|
-
|
|
79
73
|
it('renders the legend with no errors', () => {
|
|
80
74
|
expect(legendWrapper.exists()).toBe(true);
|
|
81
75
|
});
|
|
@@ -6,6 +6,8 @@ import LineChart from './line.vue';
|
|
|
6
6
|
|
|
7
7
|
import { LEGEND_LAYOUT_INLINE, LEGEND_LAYOUT_TABLE } from '~/utils/charts/constants';
|
|
8
8
|
|
|
9
|
+
import { createMockChartInstance, ChartTooltipStub } from '~helpers/chart_stubs';
|
|
10
|
+
|
|
9
11
|
let mockChartInstance;
|
|
10
12
|
|
|
11
13
|
jest.mock('echarts', () => ({
|
|
@@ -23,36 +25,16 @@ describe('line component', () => {
|
|
|
23
25
|
|
|
24
26
|
const emitChartCreated = () => findChart().vm.$emit('created', mockChartInstance);
|
|
25
27
|
|
|
26
|
-
const createShallowWrapper = (props = {}) => {
|
|
28
|
+
const createShallowWrapper = (props = {}, mountOptions = {}) => {
|
|
27
29
|
wrapper = shallowMount(LineChart, {
|
|
28
30
|
propsData: { option, data: [], ...props },
|
|
31
|
+
...mountOptions,
|
|
29
32
|
});
|
|
30
33
|
emitChartCreated();
|
|
31
34
|
};
|
|
32
35
|
|
|
33
36
|
beforeEach(() => {
|
|
34
|
-
|
|
35
|
-
series: [],
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
mockChartInstance = {
|
|
39
|
-
getDom: () => {
|
|
40
|
-
return {
|
|
41
|
-
addEventListener: jest.fn(),
|
|
42
|
-
removeEventListener: jest.fn(),
|
|
43
|
-
};
|
|
44
|
-
},
|
|
45
|
-
on: jest.fn(),
|
|
46
|
-
off: jest.fn(),
|
|
47
|
-
convertToPixel: jest.fn(),
|
|
48
|
-
getOption: () => {
|
|
49
|
-
return option;
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
afterEach(() => {
|
|
55
|
-
wrapper.destroy();
|
|
37
|
+
mockChartInstance = createMockChartInstance();
|
|
56
38
|
});
|
|
57
39
|
|
|
58
40
|
it('emits `created`, with the chart instance', async () => {
|
|
@@ -128,14 +110,21 @@ describe('line component', () => {
|
|
|
128
110
|
},
|
|
129
111
|
};
|
|
130
112
|
|
|
131
|
-
createShallowWrapper(
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
113
|
+
createShallowWrapper(
|
|
114
|
+
{
|
|
115
|
+
annotations: [
|
|
116
|
+
{
|
|
117
|
+
min: '',
|
|
118
|
+
max: '',
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
stubs: {
|
|
124
|
+
'chart-tooltip': ChartTooltipStub,
|
|
136
125
|
},
|
|
137
|
-
|
|
138
|
-
|
|
126
|
+
}
|
|
127
|
+
);
|
|
139
128
|
|
|
140
129
|
wrapper.vm.onChartDataPointMouseOver(params);
|
|
141
130
|
|
|
@@ -339,8 +339,9 @@ export default {
|
|
|
339
339
|
:left="annotationsTooltipPosition.left"
|
|
340
340
|
placement="bottom"
|
|
341
341
|
>
|
|
342
|
-
|
|
343
|
-
|
|
342
|
+
<template #title>
|
|
343
|
+
<div>{{ annotationsTooltipTitle }}</div>
|
|
344
|
+
</template>
|
|
344
345
|
<div>{{ annotationsTooltipContent }}</div>
|
|
345
346
|
</chart-tooltip>
|
|
346
347
|
<chart-tooltip
|
|
@@ -26,10 +26,6 @@ describe('GlSingleStat', () => {
|
|
|
26
26
|
|
|
27
27
|
const findIemByTestId = (testId) => wrapper.find(`[data-testid="${testId}"]`);
|
|
28
28
|
|
|
29
|
-
afterEach(() => {
|
|
30
|
-
wrapper.destroy();
|
|
31
|
-
});
|
|
32
|
-
|
|
33
29
|
describe('displays the correct default data', () => {
|
|
34
30
|
beforeEach(() => createWrapper());
|
|
35
31
|
|
|
@@ -2,14 +2,13 @@ import { shallowMount, createLocalVue } from '@vue/test-utils';
|
|
|
2
2
|
import Chart from '../chart/chart.vue';
|
|
3
3
|
import SparklineChart from './sparkline.vue';
|
|
4
4
|
import { waitForAnimationFrame } from '~/utils/test_utils';
|
|
5
|
+
import { createMockChartInstance, ChartTooltipStub } from '~helpers/chart_stubs';
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
resize: mockResize,
|
|
12
|
-
};
|
|
7
|
+
let mockChartInstance;
|
|
8
|
+
|
|
9
|
+
jest.mock('echarts', () => ({
|
|
10
|
+
getInstanceByDom: () => mockChartInstance,
|
|
11
|
+
}));
|
|
13
12
|
|
|
14
13
|
let triggerResize = () => {};
|
|
15
14
|
jest.mock('~/directives/resize_observer/resize_observer', () => ({
|
|
@@ -22,11 +21,6 @@ jest.mock('~/directives/resize_observer/resize_observer', () => ({
|
|
|
22
21
|
|
|
23
22
|
const localVue = createLocalVue();
|
|
24
23
|
|
|
25
|
-
const ChartToolTipStub = {
|
|
26
|
-
name: 'chart-tooltip-stub',
|
|
27
|
-
template: '<div><slot name="default"></slot><slot name="title"></slot></div>',
|
|
28
|
-
};
|
|
29
|
-
|
|
30
24
|
describe('sparkline chart component', () => {
|
|
31
25
|
let wrapper;
|
|
32
26
|
let componentOptions;
|
|
@@ -39,7 +33,7 @@ describe('sparkline chart component', () => {
|
|
|
39
33
|
},
|
|
40
34
|
scopedSlots: { latestSeriesEntry: jest.fn() },
|
|
41
35
|
stubs: {
|
|
42
|
-
'chart-tooltip':
|
|
36
|
+
'chart-tooltip': ChartTooltipStub,
|
|
43
37
|
},
|
|
44
38
|
};
|
|
45
39
|
|
|
@@ -50,7 +44,7 @@ describe('sparkline chart component', () => {
|
|
|
50
44
|
const getByTestId = (id) => wrapper.find(`[data-testid="${id}"]`);
|
|
51
45
|
const getChart = () => wrapper.findComponent(Chart);
|
|
52
46
|
|
|
53
|
-
const getTooltip = () => wrapper.findComponent(
|
|
47
|
+
const getTooltip = () => wrapper.findComponent(ChartTooltipStub);
|
|
54
48
|
const getTooltipTitle = () => getByTestId('tooltip-title');
|
|
55
49
|
const getTooltipContent = () => getByTestId('tooltip-content');
|
|
56
50
|
|
|
@@ -72,13 +66,13 @@ describe('sparkline chart component', () => {
|
|
|
72
66
|
const emitChartCreated = () => getChart().vm.$emit('created', mockChartInstance);
|
|
73
67
|
|
|
74
68
|
beforeEach(() => {
|
|
69
|
+
mockChartInstance = createMockChartInstance();
|
|
75
70
|
factory();
|
|
76
71
|
// needs to run after every mount, or the chart-instance is `null` and `beforeDestroy` throws
|
|
77
72
|
emitChartCreated();
|
|
78
73
|
});
|
|
79
74
|
|
|
80
75
|
afterEach(() => {
|
|
81
|
-
wrapper.destroy();
|
|
82
76
|
jest.clearAllMocks();
|
|
83
77
|
});
|
|
84
78
|
|
|
@@ -9,9 +9,9 @@ import Chart from '../chart/chart.vue';
|
|
|
9
9
|
import ChartLegend from '../legend/legend.vue';
|
|
10
10
|
import * as themeUtils from '../../../utils/charts/theme';
|
|
11
11
|
import StackedColumnChart from './stacked_column.vue';
|
|
12
|
-
import ChartTooltip from '~/components/charts/tooltip/tooltip.vue';
|
|
13
12
|
import TooltipDefaultFormat from '~/components/shared_components/charts/tooltip_default_format.vue';
|
|
14
13
|
|
|
14
|
+
import { createMockChartInstance, ChartTooltipStub } from '~helpers/chart_stubs';
|
|
15
15
|
import { LEGEND_LAYOUT_INLINE, LEGEND_LAYOUT_TABLE } from '~/utils/charts/constants';
|
|
16
16
|
|
|
17
17
|
let mockChartInstance;
|
|
@@ -29,18 +29,8 @@ const defaultChartProps = {
|
|
|
29
29
|
yAxisTitle: 'Commits',
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
const ChartTooltipStub = {
|
|
33
|
-
props: ChartTooltip.props,
|
|
34
|
-
template: `
|
|
35
|
-
<div>
|
|
36
|
-
<slot name="title" />
|
|
37
|
-
<slot />
|
|
38
|
-
</div>`,
|
|
39
|
-
};
|
|
40
|
-
|
|
41
32
|
describe('stacked column chart component', () => {
|
|
42
33
|
let wrapper;
|
|
43
|
-
let options;
|
|
44
34
|
|
|
45
35
|
const findChart = () => wrapper.findComponent(Chart);
|
|
46
36
|
const findLegend = () => wrapper.findComponent(ChartLegend);
|
|
@@ -62,28 +52,10 @@ describe('stacked column chart component', () => {
|
|
|
62
52
|
};
|
|
63
53
|
|
|
64
54
|
beforeEach(() => {
|
|
65
|
-
|
|
66
|
-
series: [],
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
mockChartInstance = {
|
|
70
|
-
getDom: () => {
|
|
71
|
-
return {
|
|
72
|
-
addEventListener: jest.fn(),
|
|
73
|
-
removeEventListener: jest.fn(),
|
|
74
|
-
};
|
|
75
|
-
},
|
|
76
|
-
on: jest.fn(),
|
|
77
|
-
off: jest.fn(),
|
|
78
|
-
convertToPixel: jest.fn(),
|
|
79
|
-
getOption: () => {
|
|
80
|
-
return options;
|
|
81
|
-
},
|
|
82
|
-
};
|
|
55
|
+
mockChartInstance = createMockChartInstance();
|
|
83
56
|
});
|
|
84
57
|
|
|
85
58
|
afterEach(() => {
|
|
86
|
-
wrapper.destroy();
|
|
87
59
|
jest.restoreAllMocks();
|
|
88
60
|
});
|
|
89
61
|
|
|
@@ -17,19 +17,12 @@ describe('Truncate component', () => {
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
const createComponent = (props) => {
|
|
20
|
-
wrapper = shallowMount(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
});
|
|
20
|
+
wrapper = shallowMount(
|
|
21
|
+
{ extends: Truncate, directives: { GlTooltip: createMockDirective('gl-tooltip') } },
|
|
22
|
+
{ propsData: { ...defaultProps, ...props } }
|
|
23
|
+
);
|
|
26
24
|
};
|
|
27
25
|
|
|
28
|
-
afterEach(() => {
|
|
29
|
-
wrapper.destroy();
|
|
30
|
-
wrapper = null;
|
|
31
|
-
});
|
|
32
|
-
|
|
33
26
|
describe('All', () => {
|
|
34
27
|
beforeEach(() => {
|
|
35
28
|
createComponent();
|
|
@@ -39,9 +32,9 @@ describe('Truncate component', () => {
|
|
|
39
32
|
'%s truncation: should have title, class, original text',
|
|
40
33
|
(position) => {
|
|
41
34
|
createComponent({ position });
|
|
42
|
-
|
|
43
|
-
expect(
|
|
44
|
-
expect(
|
|
35
|
+
const element = wrapper.find('span');
|
|
36
|
+
expect(element.attributes('title')).toBe(defaultProps.text);
|
|
37
|
+
expect(element.attributes('class')).toBe('gl-truncate');
|
|
45
38
|
expect(removeSpecialChar(wrapper.text())).toBe(defaultProps.text);
|
|
46
39
|
}
|
|
47
40
|
);
|
|
@@ -51,7 +44,9 @@ describe('Truncate component', () => {
|
|
|
51
44
|
});
|
|
52
45
|
|
|
53
46
|
it('disables the tooltip by default', () => {
|
|
54
|
-
expect(getBinding(wrapper.element, 'gl-tooltip').value.disabled).toBe(
|
|
47
|
+
expect(getBinding(wrapper.find('.gl-truncate').element, 'gl-tooltip').value.disabled).toBe(
|
|
48
|
+
true
|
|
49
|
+
);
|
|
55
50
|
});
|
|
56
51
|
});
|
|
57
52
|
|
|
@@ -29,10 +29,6 @@ describe('resize observer directive', () => {
|
|
|
29
29
|
wrapper = shallowMount(component, { localVue });
|
|
30
30
|
};
|
|
31
31
|
|
|
32
|
-
afterEach(() => {
|
|
33
|
-
wrapper.destroy();
|
|
34
|
-
});
|
|
35
|
-
|
|
36
32
|
it('shares one observer between multiple directive instances', () => {
|
|
37
33
|
createComponent({
|
|
38
34
|
template: `<div>
|
|
@@ -33,11 +33,6 @@ describe('safe link directive', () => {
|
|
|
33
33
|
wrapper = mountFn(component);
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
afterEach(() => {
|
|
37
|
-
wrapper.destroy();
|
|
38
|
-
wrapper = null;
|
|
39
|
-
});
|
|
40
|
-
|
|
41
36
|
describe('default', () => {
|
|
42
37
|
it('should render the anchor tag with given href', () => {
|
|
43
38
|
createComponent({
|
package/src/scss/utilities.scss
CHANGED
|
@@ -4384,6 +4384,18 @@
|
|
|
4384
4384
|
max-width: 50% !important;
|
|
4385
4385
|
}
|
|
4386
4386
|
}
|
|
4387
|
+
|
|
4388
|
+
.gl-md-max-w-70p {
|
|
4389
|
+
@include gl-media-breakpoint-up(md) {
|
|
4390
|
+
max-width: 70%;
|
|
4391
|
+
}
|
|
4392
|
+
}
|
|
4393
|
+
|
|
4394
|
+
.gl-md-max-w-70p\! {
|
|
4395
|
+
@include gl-media-breakpoint-up(md) {
|
|
4396
|
+
max-width: 70% !important;
|
|
4397
|
+
}
|
|
4398
|
+
}
|
|
4387
4399
|
.gl-p-0 {
|
|
4388
4400
|
padding: 0;
|
|
4389
4401
|
}
|
|
@@ -4910,6 +4922,12 @@
|
|
|
4910
4922
|
.gl-m-5\! {
|
|
4911
4923
|
margin: $gl-spacing-scale-5 !important;
|
|
4912
4924
|
}
|
|
4925
|
+
.gl-m-7 {
|
|
4926
|
+
margin: $gl-spacing-scale-7;
|
|
4927
|
+
}
|
|
4928
|
+
.gl-m-7\! {
|
|
4929
|
+
margin: $gl-spacing-scale-7 !important;
|
|
4930
|
+
}
|
|
4913
4931
|
.gl-m-auto {
|
|
4914
4932
|
margin: auto;
|
|
4915
4933
|
}
|
|
@@ -6629,6 +6647,14 @@
|
|
|
6629
6647
|
z-index: 3 !important
|
|
6630
6648
|
}
|
|
6631
6649
|
|
|
6650
|
+
.gl-z-index-200 {
|
|
6651
|
+
z-index: 200
|
|
6652
|
+
}
|
|
6653
|
+
|
|
6654
|
+
.gl-z-index-200\! {
|
|
6655
|
+
z-index: 200 !important
|
|
6656
|
+
}
|
|
6657
|
+
|
|
6632
6658
|
.gl-z-index-9999 {
|
|
6633
6659
|
z-index: 9999
|
|
6634
6660
|
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
2
|
-
|
|
3
|
-
/* script */
|
|
4
|
-
|
|
5
|
-
/* template */
|
|
6
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-markdown',[_c('h1',[_vm._v("MD Doc h1 • GitLab uses \"GitLab Flavored Markdown\" (GFM)")]),_vm._v(" "),_c('p',[_vm._v("\n MD Doc Paragraph • GitLab uses \"GitLab Flavored Markdown\" (GFM). It extends the standard\n Markdown in a few significant ways to add some useful functionality. You can use GFM in the\n following areas: comments, issues, merge requests, milestones, snippets and more.\n ")]),_vm._v(" "),_c('p',{staticClass:"sm"},[_vm._v("\n MD Doc Small Paragraph • GitLab uses \"GitLab Flavored Markdown\" (GFM). It extends the standard\n Markdown in a few significant ways to add some useful functionality. You can use GFM in the\n following areas: comments, issues, merge requests, milestones, snippets and more.\n ")])])};
|
|
7
|
-
var __vue_staticRenderFns__ = [];
|
|
8
|
-
|
|
9
|
-
/* style */
|
|
10
|
-
const __vue_inject_styles__ = undefined;
|
|
11
|
-
/* scoped */
|
|
12
|
-
const __vue_scope_id__ = undefined;
|
|
13
|
-
/* module identifier */
|
|
14
|
-
const __vue_module_identifier__ = undefined;
|
|
15
|
-
/* functional template */
|
|
16
|
-
const __vue_is_functional_template__ = false;
|
|
17
|
-
/* style inject */
|
|
18
|
-
|
|
19
|
-
/* style inject SSR */
|
|
20
|
-
|
|
21
|
-
/* style inject shadow dom */
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const __vue_component__ = __vue_normalize__(
|
|
26
|
-
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
27
|
-
__vue_inject_styles__,
|
|
28
|
-
{},
|
|
29
|
-
__vue_scope_id__,
|
|
30
|
-
__vue_is_functional_template__,
|
|
31
|
-
__vue_module_identifier__,
|
|
32
|
-
false,
|
|
33
|
-
undefined,
|
|
34
|
-
undefined,
|
|
35
|
-
undefined
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
export default __vue_component__;
|