Add single_stat chart component to the monitoring bundle
This merge requests just adds the component without integrating it to the dashboard, it adds tests as well
This commit is contained in:
parent
9274463812
commit
e02cd451b2
2 changed files with 65 additions and 0 deletions
|
@ -0,0 +1,37 @@
|
||||||
|
<script>
|
||||||
|
import { GlSingleStat } from '@gitlab/ui/dist/charts';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
GlSingleStat,
|
||||||
|
},
|
||||||
|
inheritAttrs: false,
|
||||||
|
props: {
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
type: Number,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
unit: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
valueWithUnit() {
|
||||||
|
return `${this.value}${this.unit}`;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<div class="prometheus-graph col-12 col-lg-6">
|
||||||
|
<div class="prometheus-graph-header">
|
||||||
|
<h5 ref="graphTitle" class="prometheus-graph-title">{{ title }}</h5>
|
||||||
|
</div>
|
||||||
|
<gl-single-stat :value="valueWithUnit" :title="title" variant="success" />
|
||||||
|
</div>
|
||||||
|
</template>
|
28
spec/javascripts/monitoring/charts/single_stat_spec.js
Normal file
28
spec/javascripts/monitoring/charts/single_stat_spec.js
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
import { shallowMount } from '@vue/test-utils';
|
||||||
|
import SingleStatChart from '~/monitoring/components/charts/single_stat.vue';
|
||||||
|
|
||||||
|
describe('Single Stat Chart component', () => {
|
||||||
|
let singleStatChart;
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
singleStatChart = shallowMount(SingleStatChart, {
|
||||||
|
propsData: {
|
||||||
|
title: 'Time to render',
|
||||||
|
value: 1,
|
||||||
|
unit: 'sec',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(() => {
|
||||||
|
singleStatChart.destroy();
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('computed', () => {
|
||||||
|
describe('valueWithUnit', () => {
|
||||||
|
it('should interpolate the value and unit props', () => {
|
||||||
|
expect(singleStatChart.vm.valueWithUnit).toBe('1sec');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in a new issue