Add feature flag

Also added relevant tests that make use of a stubbed feature flag,
prettified files
This commit is contained in:
Jose Vargas 2019-03-20 13:52:24 -06:00
parent 268b727a5c
commit 481d25bf48
4 changed files with 29 additions and 14 deletions

View File

@ -99,6 +99,11 @@ export default {
selectedTimeWindow: '',
};
},
computed: {
getTimeWindowFlagStatus() {
return gon.features.metricsTimeWindow;
},
},
created() {
this.service = new MonitoringService({
metricsEndpoint: this.metricsEndpoint,
@ -201,7 +206,10 @@ export default {
<template>
<div v-if="!showEmptyState" class="prometheus-graphs prepend-top-default">
<div v-if="environmentsEndpoint" class="environments d-flex align-items-center">
<div
v-if="environmentsEndpoint"
class="dropdowns d-flex align-items-center justify-content-between"
>
<div class="d-flex align-items-center">
<strong>{{ s__('Metrics|Environment') }}</strong>
<gl-dropdown
@ -219,11 +227,10 @@ export default {
>
</gl-dropdown>
</div>
<div class="d-flex align-items-center">
<div v-if="getTimeWindowFlagStatus" class="d-flex align-items-center float-right">
<span class="font-weight-bold">{{ s__('Metrics|Show Last') }}</span>
<gl-dropdown
id="time-window-dropdown"
class="prepend-left-10"
class="prepend-left-10 js-time-window-dropdown"
toggle-class="dropdown-menu-toggle"
:text="selectedTimeWindow"
>

View File

@ -33,11 +33,13 @@ export default class MonitoringService {
}
getGraphsData(params = {}) {
return backOffRequest(() => axios.get(this.metricsEndpoint, {
params: {
...params
}
}))
return backOffRequest(() =>
axios.get(this.metricsEndpoint, {
params: {
...params,
},
}),
)
.then(resp => resp.data)
.then(response => {
if (!response || !response.data || !response.success) {

View File

@ -1,8 +1,8 @@
import { timeWindows } from './constants'
import { timeWindows } from './constants';
export const getTimeDifferenceMinutes = (timeWindow) => {
export const getTimeDifferenceMinutes = timeWindow => {
let timeDifferenceMinutes;
switch(timeWindow) {
switch (timeWindow) {
case timeWindows.thirtyMinutes:
timeDifferenceMinutes = 30;
break;

View File

@ -39,11 +39,17 @@ describe('Dashboard', () => {
ee: false,
};
gon.features = {
metricsTimeWindow: true,
};
mock = new MockAdapter(axios);
DashboardComponent = Vue.extend(Dashboard);
});
afterEach(() => {
gon.features = {};
mock.restore();
});
@ -186,9 +192,9 @@ describe('Dashboard', () => {
const numberOfTimeWindows = Object.keys(timeWindows).length;
setTimeout(() => {
const timeWindowDropdown = component.$el.querySelector('#time-window-dropdown');
const timeWindowDropdown = component.$el.querySelector('.js-time-window-dropdown');
const timeWindowDropdownEls = component.$el.querySelectorAll(
'#time-window-dropdown .dropdown-item',
'.js-time-window-dropdown .dropdown-item',
);
expect(timeWindowDropdown).not.toBeNull();