summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Vargas <jvargas@gitlab.com>2019-05-03 16:04:36 -0500
committerJose Vargas <jvargas@gitlab.com>2019-05-20 12:46:44 -0500
commit89a08260903c8500069921581f3ebff9b25d8ead (patch)
treea3315583b122f6bacfa98911886be8e6362b43ad
parent9252e9a59c61e6d1591411b26d6928cd59ff1c7f (diff)
downloadgitlab-ce-89a08260903c8500069921581f3ebff9b25d8ead.tar.gz
Add actions, getters and mutation specs
-rw-r--r--spec/javascripts/monitoring/stores/actions_spec.js50
-rw-r--r--spec/javascripts/monitoring/stores/getters_spec.js21
-rw-r--r--spec/javascripts/monitoring/stores/mutations_spec.js35
3 files changed, 99 insertions, 7 deletions
diff --git a/spec/javascripts/monitoring/stores/actions_spec.js b/spec/javascripts/monitoring/stores/actions_spec.js
index c6c8ef30ce0..8dd2b71b9cc 100644
--- a/spec/javascripts/monitoring/stores/actions_spec.js
+++ b/spec/javascripts/monitoring/stores/actions_spec.js
@@ -2,13 +2,18 @@ import axios from '~/lib/utils/axios_utils';
import MockAdapter from 'axios-mock-adapter';
import store from '~/monitoring/stores';
import * as types from '~/monitoring/stores/mutation_types';
-import { resetStore } from '../helpers';
-import { deploymentData, environmentData } from '../mock_data';
import {
fetchDeploymentsData,
fetchEnvironmentsData,
requestMetricsData,
+ setMetricsEndpoint,
+ setEnvironmentsEndpoint,
+ setDeploymentsEndpoint,
} from '~/monitoring/stores/actions';
+import storeState from '~/monitoring/stores/state';
+import testAction from 'spec/helpers/vuex_action_helper';
+import { resetStore } from '../helpers';
+import { deploymentData, environmentData } from '../mock_data';
describe('Monitoring store actions', () => {
let mock;
@@ -106,4 +111,45 @@ describe('Monitoring store actions', () => {
.catch(done.fail);
});
});
+
+ describe('Set endpoints', () => {
+ let mockedState;
+
+ beforeEach(() => {
+ mockedState = storeState();
+ });
+
+ it('should commit SET_METRICS_ENDPOINT mutation', done => {
+ testAction(
+ setMetricsEndpoint,
+ 'additional_metrics.json',
+ mockedState,
+ [{ type: types.SET_METRICS_ENDPOINT, payload: 'additional_metrics.json' }],
+ [],
+ done,
+ );
+ });
+
+ it('should commit SET_ENVIRONMENTS_ENDPOINT mutation', done => {
+ testAction(
+ setEnvironmentsEndpoint,
+ 'environments.json',
+ mockedState,
+ [{ type: types.SET_ENVIRONMENTS_ENDPOINT, payload: 'environments.json' }],
+ [],
+ done,
+ );
+ });
+
+ it('should commit SET_DEPLOYMENTS_ENDPOINT mutation', done => {
+ testAction(
+ setDeploymentsEndpoint,
+ 'deployments.json',
+ mockedState,
+ [{ type: types.SET_DEPLOYMENTS_ENDPOINT, payload: 'deployments.json' }],
+ [],
+ done,
+ );
+ });
+ });
});
diff --git a/spec/javascripts/monitoring/stores/getters_spec.js b/spec/javascripts/monitoring/stores/getters_spec.js
index e69de29bb2d..88361ed352c 100644
--- a/spec/javascripts/monitoring/stores/getters_spec.js
+++ b/spec/javascripts/monitoring/stores/getters_spec.js
@@ -0,0 +1,21 @@
+import * as getters from '~/monitoring/stores/getters';
+import state from '~/monitoring/stores/state';
+
+describe('Monitoring store getters', () => {
+ let localState;
+
+ beforeEach(() => {
+ localState = state();
+ });
+
+ describe('groups', () => {
+ it('returns the current number of groups', () => {
+ localState.groups = [
+ { id: 1, metrics: [{ query: '' }] },
+ { id: 2, metrics: [{ query: '' }] },
+ ];
+
+ expect(getters.getMetricsCount(localState)).toEqual(2);
+ });
+ });
+});
diff --git a/spec/javascripts/monitoring/stores/mutations_spec.js b/spec/javascripts/monitoring/stores/mutations_spec.js
index 3a826871524..6a99930d536 100644
--- a/spec/javascripts/monitoring/stores/mutations_spec.js
+++ b/spec/javascripts/monitoring/stores/mutations_spec.js
@@ -1,23 +1,48 @@
import mutations from '~/monitoring/stores/mutations';
import * as types from '~/monitoring/stores/mutation_types';
+import state from '~/monitoring/stores/state';
import { metricsGroupsAPIResponse } from '../mock_data';
describe('Monitoring mutations', () => {
+ let stateCopy;
+
+ beforeEach(() => {
+ stateCopy = state();
+ });
+
describe(types.RECEIVE_METRICS_DATA_SUCCESS, () => {
it('normalizes values', () => {
- const state = {
- groups: [],
- };
+ stateCopy.groups = [];
const groups = metricsGroupsAPIResponse.data;
- mutations[types.RECEIVE_METRICS_DATA_SUCCESS](state, groups);
+ mutations[types.RECEIVE_METRICS_DATA_SUCCESS](stateCopy, groups);
const expectedTimestamp = '2017-05-25T08:22:34.925Z';
const expectedValue = 0.0010794445585559514;
- const [timestamp, value] = state.groups[0].metrics[0].queries[0].result[0].values[0];
+ const [timestamp, value] = stateCopy.groups[0].metrics[0].queries[0].result[0].values[0];
expect(timestamp).toEqual(expectedTimestamp);
expect(value).toEqual(expectedValue);
});
});
+
+ describe('SET_X_ENDPOINT', () => {
+ it('should set the metrics endpoint', () => {
+ mutations[types.SET_METRICS_ENDPOINT](stateCopy, 'additional_metrics.json');
+
+ expect(stateCopy.metricsEndpoint).toEqual('additional_metrics.json');
+ });
+
+ it('should set the environments endpoint', () => {
+ mutations[types.SET_ENVIRONMENTS_ENDPOINT](stateCopy, 'environments.json');
+
+ expect(stateCopy.environmentsEndpoint).toEqual('environments.json');
+ });
+
+ it('should set the deployments endpoint', () => {
+ mutations[types.SET_DEPLOYMENTS_ENDPOINT](stateCopy, 'deployments.json');
+
+ expect(stateCopy.deploymentsEndpoint).toEqual('deployments.json');
+ });
+ });
});