summaryrefslogtreecommitdiff
path: root/spec/javascripts
diff options
context:
space:
mode:
Diffstat (limited to 'spec/javascripts')
-rw-r--r--spec/javascripts/api_spec.js183
-rw-r--r--spec/javascripts/badges/components/badge_form_spec.js171
-rw-r--r--spec/javascripts/badges/components/badge_list_row_spec.js97
-rw-r--r--spec/javascripts/badges/components/badge_list_spec.js88
-rw-r--r--spec/javascripts/badges/components/badge_settings_spec.js109
-rw-r--r--spec/javascripts/badges/components/badge_spec.js147
-rw-r--r--spec/javascripts/badges/dummy_badge.js23
-rw-r--r--spec/javascripts/badges/store/actions_spec.js607
-rw-r--r--spec/javascripts/badges/store/mutations_spec.js418
-rw-r--r--spec/javascripts/boards/board_blank_state_spec.js4
-rw-r--r--spec/javascripts/boards/issue_card_spec.js2
-rw-r--r--spec/javascripts/boards/mock_data.js49
-rw-r--r--spec/javascripts/boards/modal_store_spec.js3
-rw-r--r--spec/javascripts/commit/pipelines/pipelines_spec.js165
-rw-r--r--spec/javascripts/droplab/constants_spec.js16
-rw-r--r--spec/javascripts/fixtures/one_white_pixel.pngbin0 -> 68 bytes
-rw-r--r--spec/javascripts/helpers/vue_mount_component_helper.js6
-rw-r--r--spec/javascripts/ide/components/changed_file_icon_spec.js3
-rw-r--r--spec/javascripts/ide/components/commit_sidebar/list_item_spec.js38
-rw-r--r--spec/javascripts/ide/components/ide_file_buttons_spec.js (renamed from spec/javascripts/ide/components/repo_file_buttons_spec.js)26
-rw-r--r--spec/javascripts/ide/components/repo_editor_spec.js120
-rw-r--r--spec/javascripts/ide/components/repo_tab_spec.js2
-rw-r--r--spec/javascripts/ide/components/repo_tabs_spec.js4
-rw-r--r--spec/javascripts/ide/lib/common/model_manager_spec.js15
-rw-r--r--spec/javascripts/ide/lib/common/model_spec.js22
-rw-r--r--spec/javascripts/ide/lib/decorations/controller_spec.js41
-rw-r--r--spec/javascripts/ide/lib/diff/controller_spec.js4
-rw-r--r--spec/javascripts/ide/lib/editor_spec.js80
-rw-r--r--spec/javascripts/ide/stores/actions/file_spec.js174
-rw-r--r--spec/javascripts/ide/stores/actions/merge_request_spec.js110
-rw-r--r--spec/javascripts/ide/stores/actions/tree_spec.js12
-rw-r--r--spec/javascripts/ide/stores/getters_spec.js22
-rw-r--r--spec/javascripts/ide/stores/mutations/file_spec.js117
-rw-r--r--spec/javascripts/ide/stores/mutations/merge_request_spec.js65
-rw-r--r--spec/javascripts/lib/utils/text_utility_spec.js14
-rw-r--r--spec/javascripts/matchers.js35
-rw-r--r--spec/javascripts/monitoring/graph/axis_spec.js65
-rw-r--r--spec/javascripts/monitoring/graph/legend_spec.js108
-rw-r--r--spec/javascripts/monitoring/graph/track_info_spec.js44
-rw-r--r--spec/javascripts/monitoring/graph/track_line_spec.js52
-rw-r--r--spec/javascripts/monitoring/graph_spec.js25
-rw-r--r--spec/javascripts/monitoring/mock_data.js14732
-rw-r--r--spec/javascripts/notes/mock_data.js864
-rw-r--r--spec/javascripts/pipelines/graph/action_component_spec.js25
-rw-r--r--spec/javascripts/pipelines/graph/job_component_spec.js2
-rw-r--r--spec/javascripts/pipelines/graph/mock_data.js467
-rw-r--r--spec/javascripts/pipelines/pipelines_spec.js143
-rw-r--r--spec/javascripts/pipelines/stage_spec.js85
-rw-r--r--spec/javascripts/profile/account/components/update_username_spec.js172
-rw-r--r--spec/javascripts/search_autocomplete_spec.js214
-rw-r--r--spec/javascripts/sidebar/confidential_issue_sidebar_spec.js18
-rw-r--r--spec/javascripts/sidebar/lock/lock_issue_sidebar_spec.js18
-rw-r--r--spec/javascripts/sidebar/mock_data.js59
-rw-r--r--spec/javascripts/test_bundle.js11
-rw-r--r--spec/javascripts/test_constants.js4
-rw-r--r--spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js244
-rw-r--r--spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_spec.js40
-rw-r--r--spec/javascripts/vue_mr_widget/mock_data.js387
-rw-r--r--spec/javascripts/vue_shared/components/content_viewer/content_viewer_spec.js70
-rw-r--r--spec/javascripts/vue_shared/components/mock_data.js2
60 files changed, 10984 insertions, 9859 deletions
diff --git a/spec/javascripts/api_spec.js b/spec/javascripts/api_spec.js
index 5477581c1b9..3d7ccf432be 100644
--- a/spec/javascripts/api_spec.js
+++ b/spec/javascripts/api_spec.js
@@ -35,14 +35,14 @@ describe('Api', () => {
});
describe('group', () => {
- it('fetches a group', (done) => {
+ it('fetches a group', done => {
const groupId = '123456';
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/groups/${groupId}`;
mock.onGet(expectedUrl).reply(200, {
name: 'test',
});
- Api.group(groupId, (response) => {
+ Api.group(groupId, response => {
expect(response.name).toBe('test');
done();
});
@@ -50,15 +50,17 @@ describe('Api', () => {
});
describe('groups', () => {
- it('fetches groups', (done) => {
+ it('fetches groups', done => {
const query = 'dummy query';
const options = { unused: 'option' };
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/groups.json`;
- mock.onGet(expectedUrl).reply(200, [{
- name: 'test',
- }]);
+ mock.onGet(expectedUrl).reply(200, [
+ {
+ name: 'test',
+ },
+ ]);
- Api.groups(query, options, (response) => {
+ Api.groups(query, options, response => {
expect(response.length).toBe(1);
expect(response[0].name).toBe('test');
done();
@@ -67,14 +69,16 @@ describe('Api', () => {
});
describe('namespaces', () => {
- it('fetches namespaces', (done) => {
+ it('fetches namespaces', done => {
const query = 'dummy query';
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/namespaces.json`;
- mock.onGet(expectedUrl).reply(200, [{
- name: 'test',
- }]);
+ mock.onGet(expectedUrl).reply(200, [
+ {
+ name: 'test',
+ },
+ ]);
- Api.namespaces(query, (response) => {
+ Api.namespaces(query, response => {
expect(response.length).toBe(1);
expect(response[0].name).toBe('test');
done();
@@ -83,31 +87,35 @@ describe('Api', () => {
});
describe('projects', () => {
- it('fetches projects with membership when logged in', (done) => {
+ it('fetches projects with membership when logged in', done => {
const query = 'dummy query';
const options = { unused: 'option' };
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/projects.json`;
window.gon.current_user_id = 1;
- mock.onGet(expectedUrl).reply(200, [{
- name: 'test',
- }]);
+ mock.onGet(expectedUrl).reply(200, [
+ {
+ name: 'test',
+ },
+ ]);
- Api.projects(query, options, (response) => {
+ Api.projects(query, options, response => {
expect(response.length).toBe(1);
expect(response[0].name).toBe('test');
done();
});
});
- it('fetches projects without membership when not logged in', (done) => {
+ it('fetches projects without membership when not logged in', done => {
const query = 'dummy query';
const options = { unused: 'option' };
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/projects.json`;
- mock.onGet(expectedUrl).reply(200, [{
- name: 'test',
- }]);
+ mock.onGet(expectedUrl).reply(200, [
+ {
+ name: 'test',
+ },
+ ]);
- Api.projects(query, options, (response) => {
+ Api.projects(query, options, response => {
expect(response.length).toBe(1);
expect(response[0].name).toBe('test');
done();
@@ -115,8 +123,65 @@ describe('Api', () => {
});
});
+ describe('mergerequest', () => {
+ it('fetches a merge request', done => {
+ const projectPath = 'abc';
+ const mergeRequestId = '123456';
+ const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/projects/${projectPath}/merge_requests/${mergeRequestId}`;
+ mock.onGet(expectedUrl).reply(200, {
+ title: 'test',
+ });
+
+ Api.mergeRequest(projectPath, mergeRequestId)
+ .then(({ data }) => {
+ expect(data.title).toBe('test');
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+
+ describe('mergerequest changes', () => {
+ it('fetches the changes of a merge request', done => {
+ const projectPath = 'abc';
+ const mergeRequestId = '123456';
+ const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/projects/${projectPath}/merge_requests/${mergeRequestId}/changes`;
+ mock.onGet(expectedUrl).reply(200, {
+ title: 'test',
+ });
+
+ Api.mergeRequestChanges(projectPath, mergeRequestId)
+ .then(({ data }) => {
+ expect(data.title).toBe('test');
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+
+ describe('mergerequest versions', () => {
+ it('fetches the versions of a merge request', done => {
+ const projectPath = 'abc';
+ const mergeRequestId = '123456';
+ const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/projects/${projectPath}/merge_requests/${mergeRequestId}/versions`;
+ mock.onGet(expectedUrl).reply(200, [
+ {
+ id: 123,
+ },
+ ]);
+
+ Api.mergeRequestVersions(projectPath, mergeRequestId)
+ .then(({ data }) => {
+ expect(data.length).toBe(1);
+ expect(data[0].id).toBe(123);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+
describe('newLabel', () => {
- it('creates a new label', (done) => {
+ it('creates a new label', done => {
const namespace = 'some namespace';
const project = 'some project';
const labelData = { some: 'data' };
@@ -124,36 +189,42 @@ describe('Api', () => {
const expectedData = {
label: labelData,
};
- mock.onPost(expectedUrl).reply((config) => {
+ mock.onPost(expectedUrl).reply(config => {
expect(config.data).toBe(JSON.stringify(expectedData));
- return [200, {
- name: 'test',
- }];
+ return [
+ 200,
+ {
+ name: 'test',
+ },
+ ];
});
- Api.newLabel(namespace, project, labelData, (response) => {
+ Api.newLabel(namespace, project, labelData, response => {
expect(response.name).toBe('test');
done();
});
});
- it('creates a group label', (done) => {
+ it('creates a group label', done => {
const namespace = 'group/subgroup';
const labelData = { some: 'data' };
const expectedUrl = `${dummyUrlRoot}/groups/${namespace}/-/labels`;
const expectedData = {
label: labelData,
};
- mock.onPost(expectedUrl).reply((config) => {
+ mock.onPost(expectedUrl).reply(config => {
expect(config.data).toBe(JSON.stringify(expectedData));
- return [200, {
- name: 'test',
- }];
+ return [
+ 200,
+ {
+ name: 'test',
+ },
+ ];
});
- Api.newLabel(namespace, undefined, labelData, (response) => {
+ Api.newLabel(namespace, undefined, labelData, response => {
expect(response.name).toBe('test');
done();
});
@@ -161,15 +232,17 @@ describe('Api', () => {
});
describe('groupProjects', () => {
- it('fetches group projects', (done) => {
+ it('fetches group projects', done => {
const groupId = '123456';
const query = 'dummy query';
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/groups/${groupId}/projects.json`;
- mock.onGet(expectedUrl).reply(200, [{
- name: 'test',
- }]);
+ mock.onGet(expectedUrl).reply(200, [
+ {
+ name: 'test',
+ },
+ ]);
- Api.groupProjects(groupId, query, (response) => {
+ Api.groupProjects(groupId, query, response => {
expect(response.length).toBe(1);
expect(response[0].name).toBe('test');
done();
@@ -178,13 +251,13 @@ describe('Api', () => {
});
describe('licenseText', () => {
- it('fetches a license text', (done) => {
+ it('fetches a license text', done => {
const licenseKey = "driver's license";
const data = { unused: 'option' };
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/templates/licenses/${licenseKey}`;
mock.onGet(expectedUrl).reply(200, 'test');
- Api.licenseText(licenseKey, data, (response) => {
+ Api.licenseText(licenseKey, data, response => {
expect(response).toBe('test');
done();
});
@@ -192,12 +265,12 @@ describe('Api', () => {
});
describe('gitignoreText', () => {
- it('fetches a gitignore text', (done) => {
+ it('fetches a gitignore text', done => {
const gitignoreKey = 'ignore git';
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/templates/gitignores/${gitignoreKey}`;
mock.onGet(expectedUrl).reply(200, 'test');
- Api.gitignoreText(gitignoreKey, (response) => {
+ Api.gitignoreText(gitignoreKey, response => {
expect(response).toBe('test');
done();
});
@@ -205,12 +278,12 @@ describe('Api', () => {
});
describe('gitlabCiYml', () => {
- it('fetches a .gitlab-ci.yml', (done) => {
+ it('fetches a .gitlab-ci.yml', done => {
const gitlabCiYmlKey = 'Y CI ML';
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/templates/gitlab_ci_ymls/${gitlabCiYmlKey}`;
mock.onGet(expectedUrl).reply(200, 'test');
- Api.gitlabCiYml(gitlabCiYmlKey, (response) => {
+ Api.gitlabCiYml(gitlabCiYmlKey, response => {
expect(response).toBe('test');
done();
});
@@ -218,12 +291,12 @@ describe('Api', () => {
});
describe('dockerfileYml', () => {
- it('fetches a Dockerfile', (done) => {
+ it('fetches a Dockerfile', done => {
const dockerfileYmlKey = 'a giant whale';
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/templates/dockerfiles/${dockerfileYmlKey}`;
mock.onGet(expectedUrl).reply(200, 'test');
- Api.dockerfileYml(dockerfileYmlKey, (response) => {
+ Api.dockerfileYml(dockerfileYmlKey, response => {
expect(response).toBe('test');
done();
});
@@ -231,12 +304,14 @@ describe('Api', () => {
});
describe('issueTemplate', () => {
- it('fetches an issue template', (done) => {
+ it('fetches an issue template', done => {
const namespace = 'some namespace';
const project = 'some project';
const templateKey = ' template #%?.key ';
const templateType = 'template type';
- const expectedUrl = `${dummyUrlRoot}/${namespace}/${project}/templates/${templateType}/${encodeURIComponent(templateKey)}`;
+ const expectedUrl = `${dummyUrlRoot}/${namespace}/${project}/templates/${templateType}/${encodeURIComponent(
+ templateKey,
+ )}`;
mock.onGet(expectedUrl).reply(200, 'test');
Api.issueTemplate(namespace, project, templateKey, templateType, (error, response) => {
@@ -247,13 +322,15 @@ describe('Api', () => {
});
describe('users', () => {
- it('fetches users', (done) => {
+ it('fetches users', done => {
const query = 'dummy query';
const options = { unused: 'option' };
const expectedUrl = `${dummyUrlRoot}/api/${dummyApiVersion}/users.json`;
- mock.onGet(expectedUrl).reply(200, [{
- name: 'test',
- }]);
+ mock.onGet(expectedUrl).reply(200, [
+ {
+ name: 'test',
+ },
+ ]);
Api.users(query, options)
.then(({ data }) => {
diff --git a/spec/javascripts/badges/components/badge_form_spec.js b/spec/javascripts/badges/components/badge_form_spec.js
new file mode 100644
index 00000000000..dd21ec279cb
--- /dev/null
+++ b/spec/javascripts/badges/components/badge_form_spec.js
@@ -0,0 +1,171 @@
+import Vue from 'vue';
+import store from '~/badges/store';
+import BadgeForm from '~/badges/components/badge_form.vue';
+import { mountComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
+import { createDummyBadge } from '../dummy_badge';
+
+describe('BadgeForm component', () => {
+ const Component = Vue.extend(BadgeForm);
+ let vm;
+
+ beforeEach(() => {
+ setFixtures(`
+ <div id="dummy-element"></div>
+ `);
+ });
+
+ afterEach(() => {
+ vm.$destroy();
+ });
+
+ describe('methods', () => {
+ beforeEach(() => {
+ vm = mountComponentWithStore(Component, {
+ el: '#dummy-element',
+ store,
+ props: {
+ isEditing: false,
+ },
+ });
+ });
+
+ describe('onCancel', () => {
+ it('calls stopEditing', () => {
+ spyOn(vm, 'stopEditing');
+
+ vm.onCancel();
+
+ expect(vm.stopEditing).toHaveBeenCalled();
+ });
+ });
+
+ describe('onSubmit', () => {
+ describe('if isEditing is true', () => {
+ beforeEach(() => {
+ spyOn(vm, 'saveBadge').and.returnValue(Promise.resolve());
+ store.replaceState({
+ ...store.state,
+ isSaving: false,
+ badgeInEditForm: createDummyBadge(),
+ });
+ vm.isEditing = true;
+ });
+
+ it('returns immediately if imageUrl is empty', () => {
+ store.state.badgeInEditForm.imageUrl = '';
+
+ vm.onSubmit();
+
+ expect(vm.saveBadge).not.toHaveBeenCalled();
+ });
+
+ it('returns immediately if linkUrl is empty', () => {
+ store.state.badgeInEditForm.linkUrl = '';
+
+ vm.onSubmit();
+
+ expect(vm.saveBadge).not.toHaveBeenCalled();
+ });
+
+ it('returns immediately if isSaving is true', () => {
+ store.state.isSaving = true;
+
+ vm.onSubmit();
+
+ expect(vm.saveBadge).not.toHaveBeenCalled();
+ });
+
+ it('calls saveBadge', () => {
+ vm.onSubmit();
+
+ expect(vm.saveBadge).toHaveBeenCalled();
+ });
+ });
+
+ describe('if isEditing is false', () => {
+ beforeEach(() => {
+ spyOn(vm, 'addBadge').and.returnValue(Promise.resolve());
+ store.replaceState({
+ ...store.state,
+ isSaving: false,
+ badgeInAddForm: createDummyBadge(),
+ });
+ vm.isEditing = false;
+ });
+
+ it('returns immediately if imageUrl is empty', () => {
+ store.state.badgeInAddForm.imageUrl = '';
+
+ vm.onSubmit();
+
+ expect(vm.addBadge).not.toHaveBeenCalled();
+ });
+
+ it('returns immediately if linkUrl is empty', () => {
+ store.state.badgeInAddForm.linkUrl = '';
+
+ vm.onSubmit();
+
+ expect(vm.addBadge).not.toHaveBeenCalled();
+ });
+
+ it('returns immediately if isSaving is true', () => {
+ store.state.isSaving = true;
+
+ vm.onSubmit();
+
+ expect(vm.addBadge).not.toHaveBeenCalled();
+ });
+
+ it('calls addBadge', () => {
+ vm.onSubmit();
+
+ expect(vm.addBadge).toHaveBeenCalled();
+ });
+ });
+ });
+ });
+
+ describe('if isEditing is false', () => {
+ beforeEach(() => {
+ vm = mountComponentWithStore(Component, {
+ el: '#dummy-element',
+ store,
+ props: {
+ isEditing: false,
+ },
+ });
+ });
+
+ it('renders one button', () => {
+ const buttons = vm.$el.querySelectorAll('.row-content-block button');
+ expect(buttons.length).toBe(1);
+ const buttonAddElement = buttons[0];
+ expect(buttonAddElement).toBeVisible();
+ expect(buttonAddElement).toHaveText('Add badge');
+ });
+ });
+
+ describe('if isEditing is true', () => {
+ beforeEach(() => {
+ vm = mountComponentWithStore(Component, {
+ el: '#dummy-element',
+ store,
+ props: {
+ isEditing: true,
+ },
+ });
+ });
+
+ it('renders two buttons', () => {
+ const buttons = vm.$el.querySelectorAll('.row-content-block button');
+ expect(buttons.length).toBe(2);
+ const buttonSaveElement = buttons[0];
+ expect(buttonSaveElement).toBeVisible();
+ expect(buttonSaveElement).toHaveText('Save changes');
+ const buttonCancelElement = buttons[1];
+ expect(buttonCancelElement).toBeVisible();
+ expect(buttonCancelElement).toHaveText('Cancel');
+ });
+ });
+});
diff --git a/spec/javascripts/badges/components/badge_list_row_spec.js b/spec/javascripts/badges/components/badge_list_row_spec.js
new file mode 100644
index 00000000000..21bd00d82f0
--- /dev/null
+++ b/spec/javascripts/badges/components/badge_list_row_spec.js
@@ -0,0 +1,97 @@
+import $ from 'jquery';
+import Vue from 'vue';
+import { GROUP_BADGE, PROJECT_BADGE } from '~/badges/constants';
+import store from '~/badges/store';
+import BadgeListRow from '~/badges/components/badge_list_row.vue';
+import { mountComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
+import { createDummyBadge } from '../dummy_badge';
+
+describe('BadgeListRow component', () => {
+ const Component = Vue.extend(BadgeListRow);
+ let badge;
+ let vm;
+
+ beforeEach(() => {
+ setFixtures(`
+ <div id="delete-badge-modal" class="modal"></div>
+ <div id="dummy-element"></div>
+ `);
+ store.replaceState({
+ ...store.state,
+ kind: PROJECT_BADGE,
+ });
+ badge = createDummyBadge();
+ vm = mountComponentWithStore(Component, {
+ el: '#dummy-element',
+ store,
+ props: { badge },
+ });
+ });
+
+ afterEach(() => {
+ vm.$destroy();
+ });
+
+ it('renders the badge', () => {
+ const badgeElement = vm.$el.querySelector('.project-badge');
+ expect(badgeElement).not.toBeNull();
+ expect(badgeElement.getAttribute('src')).toBe(badge.renderedImageUrl);
+ });
+
+ it('renders the badge link', () => {
+ expect(vm.$el).toContainText(badge.linkUrl);
+ });
+
+ it('renders the badge kind', () => {
+ expect(vm.$el).toContainText('Project Badge');
+ });
+
+ it('shows edit and delete buttons', () => {
+ const buttons = vm.$el.querySelectorAll('.table-button-footer button');
+ expect(buttons).toHaveLength(2);
+ const buttonEditElement = buttons[0];
+ expect(buttonEditElement).toBeVisible();
+ expect(buttonEditElement).toHaveSpriteIcon('pencil');
+ const buttonDeleteElement = buttons[1];
+ expect(buttonDeleteElement).toBeVisible();
+ expect(buttonDeleteElement).toHaveSpriteIcon('remove');
+ });
+
+ it('calls editBadge when clicking then edit button', () => {
+ spyOn(vm, 'editBadge');
+
+ const editButton = vm.$el.querySelector('.table-button-footer button:first-of-type');
+ editButton.click();
+
+ expect(vm.editBadge).toHaveBeenCalled();
+ });
+
+ it('calls updateBadgeInModal and shows modal when clicking then delete button', done => {
+ spyOn(vm, 'updateBadgeInModal');
+ $('#delete-badge-modal').on('shown.bs.modal', () => done());
+
+ const deleteButton = vm.$el.querySelector('.table-button-footer button:last-of-type');
+ deleteButton.click();
+
+ expect(vm.updateBadgeInModal).toHaveBeenCalled();
+ });
+
+ describe('for a group badge', () => {
+ beforeEach(done => {
+ badge.kind = GROUP_BADGE;
+
+ Vue.nextTick()
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('renders the badge kind', () => {
+ expect(vm.$el).toContainText('Group Badge');
+ });
+
+ it('hides edit and delete buttons', () => {
+ const buttons = vm.$el.querySelectorAll('.table-button-footer button');
+ expect(buttons).toHaveLength(0);
+ });
+ });
+});
diff --git a/spec/javascripts/badges/components/badge_list_spec.js b/spec/javascripts/badges/components/badge_list_spec.js
new file mode 100644
index 00000000000..9439c578973
--- /dev/null
+++ b/spec/javascripts/badges/components/badge_list_spec.js
@@ -0,0 +1,88 @@
+import Vue from 'vue';
+import { GROUP_BADGE, PROJECT_BADGE } from '~/badges/constants';
+import store from '~/badges/store';
+import BadgeList from '~/badges/components/badge_list.vue';
+import { mountComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
+import { createDummyBadge } from '../dummy_badge';
+
+describe('BadgeList component', () => {
+ const Component = Vue.extend(BadgeList);
+ const numberOfDummyBadges = 3;
+ let vm;
+
+ beforeEach(() => {
+ setFixtures('<div id="dummy-element"></div>');
+ const badges = [];
+ for (let id = 0; id < numberOfDummyBadges; id += 1) {
+ badges.push({ id, ...createDummyBadge() });
+ }
+ store.replaceState({
+ ...store.state,
+ badges,
+ kind: PROJECT_BADGE,
+ isLoading: false,
+ });
+ vm = mountComponentWithStore(Component, {
+ el: '#dummy-element',
+ store,
+ });
+ });
+
+ afterEach(() => {
+ vm.$destroy();
+ });
+
+ it('renders a header with the badge count', () => {
+ const header = vm.$el.querySelector('.panel-heading');
+ expect(header).toHaveText(new RegExp(`Your badges\\s+${numberOfDummyBadges}`));
+ });
+
+ it('renders a row for each badge', () => {
+ const rows = vm.$el.querySelectorAll('.gl-responsive-table-row');
+ expect(rows).toHaveLength(numberOfDummyBadges);
+ });
+
+ it('renders a message if no badges exist', done => {
+ store.state.badges = [];
+
+ Vue.nextTick()
+ .then(() => {
+ expect(vm.$el).toContainText('This project has no badges');
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('shows a loading icon when loading', done => {
+ store.state.isLoading = true;
+
+ Vue.nextTick()
+ .then(() => {
+ const loadingIcon = vm.$el.querySelector('.fa-spinner');
+ expect(loadingIcon).toBeVisible();
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ describe('for group badges', () => {
+ beforeEach(done => {
+ store.state.kind = GROUP_BADGE;
+
+ Vue.nextTick()
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('renders a message if no badges exist', done => {
+ store.state.badges = [];
+
+ Vue.nextTick()
+ .then(() => {
+ expect(vm.$el).toContainText('This group has no badges');
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+});
diff --git a/spec/javascripts/badges/components/badge_settings_spec.js b/spec/javascripts/badges/components/badge_settings_spec.js
new file mode 100644
index 00000000000..3db02982ad4
--- /dev/null
+++ b/spec/javascripts/badges/components/badge_settings_spec.js
@@ -0,0 +1,109 @@
+import $ from 'jquery';
+import Vue from 'vue';
+import store from '~/badges/store';
+import BadgeSettings from '~/badges/components/badge_settings.vue';
+import { mountComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
+import { createDummyBadge } from '../dummy_badge';
+
+describe('BadgeSettings component', () => {
+ const Component = Vue.extend(BadgeSettings);
+ let vm;
+
+ beforeEach(() => {
+ setFixtures(`
+ <div id="dummy-element"></div>
+ <button
+ id="dummy-modal-button"
+ type="button"
+ data-toggle="modal"
+ data-target="#delete-badge-modal"
+ >Show modal</button>
+ `);
+ vm = mountComponentWithStore(Component, {
+ el: '#dummy-element',
+ store,
+ });
+ });
+
+ afterEach(() => {
+ vm.$destroy();
+ });
+
+ it('displays modal if button is clicked', done => {
+ const badge = createDummyBadge();
+ store.state.badgeInModal = badge;
+ const modal = vm.$el.querySelector('#delete-badge-modal');
+ const button = document.getElementById('dummy-modal-button');
+
+ $(modal).on('shown.bs.modal', () => {
+ expect(modal).toContainText('Delete badge?');
+ const badgeElement = modal.querySelector('img.project-badge');
+ expect(badgeElement).not.toBe(null);
+ expect(badgeElement.getAttribute('src')).toBe(badge.renderedImageUrl);
+
+ done();
+ });
+
+ Vue.nextTick()
+ .then(() => {
+ button.click();
+ })
+ .catch(done.fail);
+ });
+
+ it('displays a form to add a badge', () => {
+ const form = vm.$el.querySelector('form:nth-of-type(2)');
+ expect(form).not.toBe(null);
+ const button = form.querySelector('.btn-success');
+ expect(button).not.toBe(null);
+ expect(button).toHaveText(/Add badge/);
+ });
+
+ it('displays badge list', () => {
+ const badgeListElement = vm.$el.querySelector('.panel');
+ expect(badgeListElement).not.toBe(null);
+ expect(badgeListElement).toBeVisible();
+ expect(badgeListElement).toContainText('Your badges');
+ });
+
+ describe('when editing', () => {
+ beforeEach(done => {
+ store.state.isEditing = true;
+
+ Vue.nextTick()
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('displays a form to edit a badge', () => {
+ const form = vm.$el.querySelector('form:nth-of-type(1)');
+ expect(form).not.toBe(null);
+ const submitButton = form.querySelector('.btn-success');
+ expect(submitButton).not.toBe(null);
+ expect(submitButton).toHaveText(/Save changes/);
+ const cancelButton = form.querySelector('.btn-cancel');
+ expect(cancelButton).not.toBe(null);
+ expect(cancelButton).toHaveText(/Cancel/);
+ });
+
+ it('displays no badge list', () => {
+ const badgeListElement = vm.$el.querySelector('.panel');
+ expect(badgeListElement).toBeHidden();
+ });
+ });
+
+ describe('methods', () => {
+ describe('onSubmitModal', () => {
+ it('triggers ', () => {
+ spyOn(vm, 'deleteBadge').and.callFake(() => Promise.resolve());
+ const modal = vm.$el.querySelector('#delete-badge-modal');
+ const deleteButton = modal.querySelector('.btn-danger');
+
+ deleteButton.click();
+
+ const badge = store.state.badgeInModal;
+ expect(vm.deleteBadge).toHaveBeenCalledWith(badge);
+ });
+ });
+ });
+});
diff --git a/spec/javascripts/badges/components/badge_spec.js b/spec/javascripts/badges/components/badge_spec.js
new file mode 100644
index 00000000000..fd1ecc9cdd8
--- /dev/null
+++ b/spec/javascripts/badges/components/badge_spec.js
@@ -0,0 +1,147 @@
+import Vue from 'vue';
+import Badge from '~/badges/components/badge.vue';
+import mountComponent from 'spec/helpers/vue_mount_component_helper';
+import { DUMMY_IMAGE_URL, TEST_HOST } from 'spec/test_constants';
+
+describe('Badge component', () => {
+ const Component = Vue.extend(Badge);
+ const dummyProps = {
+ imageUrl: DUMMY_IMAGE_URL,
+ linkUrl: `${TEST_HOST}/badge/link/url`,
+ };
+ let vm;
+
+ const findElements = () => {
+ const buttons = vm.$el.querySelectorAll('button');
+ return {
+ badgeImage: vm.$el.querySelector('img.project-badge'),
+ loadingIcon: vm.$el.querySelector('.fa-spinner'),
+ reloadButton: buttons[buttons.length - 1],
+ };
+ };
+
+ const createComponent = (props, el = null) => {
+ vm = mountComponent(Component, props, el);
+ const { badgeImage } = findElements();
+ return new Promise(resolve => badgeImage.addEventListener('load', resolve)).then(() =>
+ Vue.nextTick(),
+ );
+ };
+
+ afterEach(() => {
+ vm.$destroy();
+ });
+
+ describe('watchers', () => {
+ describe('imageUrl', () => {
+ it('sets isLoading and resets numRetries and hasError', done => {
+ const props = { ...dummyProps };
+ createComponent(props)
+ .then(() => {
+ expect(vm.isLoading).toBe(false);
+ vm.hasError = true;
+ vm.numRetries = 42;
+
+ vm.imageUrl = `${props.imageUrl}#something/else`;
+
+ return Vue.nextTick();
+ })
+ .then(() => {
+ expect(vm.isLoading).toBe(true);
+ expect(vm.numRetries).toBe(0);
+ expect(vm.hasError).toBe(false);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+ });
+
+ describe('methods', () => {
+ beforeEach(done => {
+ createComponent({ ...dummyProps })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('onError resets isLoading and sets hasError', () => {
+ vm.hasError = false;
+ vm.isLoading = true;
+
+ vm.onError();
+
+ expect(vm.hasError).toBe(true);
+ expect(vm.isLoading).toBe(false);
+ });
+
+ it('onLoad sets isLoading', () => {
+ vm.isLoading = true;
+
+ vm.onLoad();
+
+ expect(vm.isLoading).toBe(false);
+ });
+
+ it('reloadImage resets isLoading and hasError and increases numRetries', () => {
+ vm.hasError = true;
+ vm.isLoading = false;
+ vm.numRetries = 0;
+
+ vm.reloadImage();
+
+ expect(vm.hasError).toBe(false);
+ expect(vm.isLoading).toBe(true);
+ expect(vm.numRetries).toBe(1);
+ });
+ });
+
+ describe('behavior', () => {
+ beforeEach(done => {
+ setFixtures('<div id="dummy-element"></div>');
+ createComponent({ ...dummyProps }, '#dummy-element')
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('shows a badge image after loading', () => {
+ expect(vm.isLoading).toBe(false);
+ expect(vm.hasError).toBe(false);
+ const { badgeImage, loadingIcon, reloadButton } = findElements();
+ expect(badgeImage).toBeVisible();
+ expect(loadingIcon).toBeHidden();
+ expect(reloadButton).toBeHidden();
+ expect(vm.$el.innerText).toBe('');
+ });
+
+ it('shows a loading icon when loading', done => {
+ vm.isLoading = true;
+
+ Vue.nextTick()
+ .then(() => {
+ const { badgeImage, loadingIcon, reloadButton } = findElements();
+ expect(badgeImage).toBeHidden();
+ expect(loadingIcon).toBeVisible();
+ expect(reloadButton).toBeHidden();
+ expect(vm.$el.innerText).toBe('');
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('shows an error and reload button if loading failed', done => {
+ vm.hasError = true;
+
+ Vue.nextTick()
+ .then(() => {
+ const { badgeImage, loadingIcon, reloadButton } = findElements();
+ expect(badgeImage).toBeHidden();
+ expect(loadingIcon).toBeHidden();
+ expect(reloadButton).toBeVisible();
+ expect(reloadButton).toHaveSpriteIcon('retry');
+ expect(vm.$el.innerText.trim()).toBe('No badge image');
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+});
diff --git a/spec/javascripts/badges/dummy_badge.js b/spec/javascripts/badges/dummy_badge.js
new file mode 100644
index 00000000000..6aaff21c503
--- /dev/null
+++ b/spec/javascripts/badges/dummy_badge.js
@@ -0,0 +1,23 @@
+import { PROJECT_BADGE } from '~/badges/constants';
+import { DUMMY_IMAGE_URL, TEST_HOST } from 'spec/test_constants';
+
+export const createDummyBadge = () => {
+ const id = Math.floor(1000 * Math.random());
+ return {
+ id,
+ imageUrl: `${TEST_HOST}/badges/${id}/image/url`,
+ isDeleting: false,
+ linkUrl: `${TEST_HOST}/badges/${id}/link/url`,
+ kind: PROJECT_BADGE,
+ renderedImageUrl: `${DUMMY_IMAGE_URL}?id=${id}`,
+ renderedLinkUrl: `${TEST_HOST}/badges/${id}/rendered/link/url`,
+ };
+};
+
+export const createDummyBadgeResponse = () => ({
+ image_url: `${TEST_HOST}/badge/image/url`,
+ link_url: `${TEST_HOST}/badge/link/url`,
+ kind: PROJECT_BADGE,
+ rendered_image_url: DUMMY_IMAGE_URL,
+ rendered_link_url: `${TEST_HOST}/rendered/badge/link/url`,
+});
diff --git a/spec/javascripts/badges/store/actions_spec.js b/spec/javascripts/badges/store/actions_spec.js
new file mode 100644
index 00000000000..bb6263c6de4
--- /dev/null
+++ b/spec/javascripts/badges/store/actions_spec.js
@@ -0,0 +1,607 @@
+import axios from '~/lib/utils/axios_utils';
+import MockAdapter from 'axios-mock-adapter';
+import actions, { transformBackendBadge } from '~/badges/store/actions';
+import mutationTypes from '~/badges/store/mutation_types';
+import createState from '~/badges/store/state';
+import { TEST_HOST } from 'spec/test_constants';
+import testAction from 'spec/helpers/vuex_action_helper';
+import { createDummyBadge, createDummyBadgeResponse } from '../dummy_badge';
+
+describe('Badges store actions', () => {
+ const dummyEndpointUrl = `${TEST_HOST}/badges/endpoint`;
+ const dummyBadges = [{ ...createDummyBadge(), id: 5 }, { ...createDummyBadge(), id: 6 }];
+
+ let axiosMock;
+ let badgeId;
+ let state;
+
+ beforeEach(() => {
+ axiosMock = new MockAdapter(axios);
+ state = {
+ ...createState(),
+ apiEndpointUrl: dummyEndpointUrl,
+ badges: dummyBadges,
+ };
+ badgeId = state.badges[0].id;
+ });
+
+ afterEach(() => {
+ axiosMock.restore();
+ });
+
+ describe('requestNewBadge', () => {
+ it('commits REQUEST_NEW_BADGE', done => {
+ testAction(
+ actions.requestNewBadge,
+ null,
+ state,
+ [{ type: mutationTypes.REQUEST_NEW_BADGE }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('receiveNewBadge', () => {
+ it('commits RECEIVE_NEW_BADGE', done => {
+ const newBadge = createDummyBadge();
+ testAction(
+ actions.receiveNewBadge,
+ newBadge,
+ state,
+ [{ type: mutationTypes.RECEIVE_NEW_BADGE, payload: newBadge }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('receiveNewBadgeError', () => {
+ it('commits RECEIVE_NEW_BADGE_ERROR', done => {
+ testAction(
+ actions.receiveNewBadgeError,
+ null,
+ state,
+ [{ type: mutationTypes.RECEIVE_NEW_BADGE_ERROR }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('addBadge', () => {
+ let badgeInAddForm;
+ let dispatch;
+ let endpointMock;
+
+ beforeEach(() => {
+ endpointMock = axiosMock.onPost(dummyEndpointUrl);
+ dispatch = jasmine.createSpy('dispatch');
+ badgeInAddForm = createDummyBadge();
+ state = {
+ ...state,
+ badgeInAddForm,
+ };
+ });
+
+ it('dispatches requestNewBadge and receiveNewBadge for successful response', done => {
+ const dummyResponse = createDummyBadgeResponse();
+
+ endpointMock.replyOnce(req => {
+ expect(req.data).toBe(
+ JSON.stringify({
+ image_url: badgeInAddForm.imageUrl,
+ link_url: badgeInAddForm.linkUrl,
+ }),
+ );
+ expect(dispatch.calls.allArgs()).toEqual([['requestNewBadge']]);
+ dispatch.calls.reset();
+ return [200, dummyResponse];
+ });
+
+ const dummyBadge = transformBackendBadge(dummyResponse);
+ actions
+ .addBadge({ state, dispatch })
+ .then(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['receiveNewBadge', dummyBadge]]);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('dispatches requestNewBadge and receiveNewBadgeError for error response', done => {
+ endpointMock.replyOnce(req => {
+ expect(req.data).toBe(
+ JSON.stringify({
+ image_url: badgeInAddForm.imageUrl,
+ link_url: badgeInAddForm.linkUrl,
+ }),
+ );
+ expect(dispatch.calls.allArgs()).toEqual([['requestNewBadge']]);
+ dispatch.calls.reset();
+ return [500, ''];
+ });
+
+ actions
+ .addBadge({ state, dispatch })
+ .then(() => done.fail('Expected Ajax call to fail!'))
+ .catch(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['receiveNewBadgeError']]);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+
+ describe('requestDeleteBadge', () => {
+ it('commits REQUEST_DELETE_BADGE', done => {
+ testAction(
+ actions.requestDeleteBadge,
+ badgeId,
+ state,
+ [{ type: mutationTypes.REQUEST_DELETE_BADGE, payload: badgeId }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('receiveDeleteBadge', () => {
+ it('commits RECEIVE_DELETE_BADGE', done => {
+ testAction(
+ actions.receiveDeleteBadge,
+ badgeId,
+ state,
+ [{ type: mutationTypes.RECEIVE_DELETE_BADGE, payload: badgeId }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('receiveDeleteBadgeError', () => {
+ it('commits RECEIVE_DELETE_BADGE_ERROR', done => {
+ testAction(
+ actions.receiveDeleteBadgeError,
+ badgeId,
+ state,
+ [{ type: mutationTypes.RECEIVE_DELETE_BADGE_ERROR, payload: badgeId }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('deleteBadge', () => {
+ let dispatch;
+ let endpointMock;
+
+ beforeEach(() => {
+ endpointMock = axiosMock.onDelete(`${dummyEndpointUrl}/${badgeId}`);
+ dispatch = jasmine.createSpy('dispatch');
+ });
+
+ it('dispatches requestDeleteBadge and receiveDeleteBadge for successful response', done => {
+ endpointMock.replyOnce(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['requestDeleteBadge', badgeId]]);
+ dispatch.calls.reset();
+ return [200, ''];
+ });
+
+ actions
+ .deleteBadge({ state, dispatch }, { id: badgeId })
+ .then(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['receiveDeleteBadge', badgeId]]);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('dispatches requestDeleteBadge and receiveDeleteBadgeError for error response', done => {
+ endpointMock.replyOnce(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['requestDeleteBadge', badgeId]]);
+ dispatch.calls.reset();
+ return [500, ''];
+ });
+
+ actions
+ .deleteBadge({ state, dispatch }, { id: badgeId })
+ .then(() => done.fail('Expected Ajax call to fail!'))
+ .catch(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['receiveDeleteBadgeError', badgeId]]);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+
+ describe('editBadge', () => {
+ it('commits START_EDITING', done => {
+ const dummyBadge = createDummyBadge();
+ testAction(
+ actions.editBadge,
+ dummyBadge,
+ state,
+ [{ type: mutationTypes.START_EDITING, payload: dummyBadge }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('requestLoadBadges', () => {
+ it('commits REQUEST_LOAD_BADGES', done => {
+ const dummyData = 'this is not real data';
+ testAction(
+ actions.requestLoadBadges,
+ dummyData,
+ state,
+ [{ type: mutationTypes.REQUEST_LOAD_BADGES, payload: dummyData }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('receiveLoadBadges', () => {
+ it('commits RECEIVE_LOAD_BADGES', done => {
+ const badges = dummyBadges;
+ testAction(
+ actions.receiveLoadBadges,
+ badges,
+ state,
+ [{ type: mutationTypes.RECEIVE_LOAD_BADGES, payload: badges }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('receiveLoadBadgesError', () => {
+ it('commits RECEIVE_LOAD_BADGES_ERROR', done => {
+ testAction(
+ actions.receiveLoadBadgesError,
+ null,
+ state,
+ [{ type: mutationTypes.RECEIVE_LOAD_BADGES_ERROR }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('loadBadges', () => {
+ let dispatch;
+ let endpointMock;
+
+ beforeEach(() => {
+ endpointMock = axiosMock.onGet(dummyEndpointUrl);
+ dispatch = jasmine.createSpy('dispatch');
+ });
+
+ it('dispatches requestLoadBadges and receiveLoadBadges for successful response', done => {
+ const dummyData = 'this is just some data';
+ const dummyReponse = [
+ createDummyBadgeResponse(),
+ createDummyBadgeResponse(),
+ createDummyBadgeResponse(),
+ ];
+ endpointMock.replyOnce(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['requestLoadBadges', dummyData]]);
+ dispatch.calls.reset();
+ return [200, dummyReponse];
+ });
+
+ actions
+ .loadBadges({ state, dispatch }, dummyData)
+ .then(() => {
+ const badges = dummyReponse.map(transformBackendBadge);
+ expect(dispatch.calls.allArgs()).toEqual([['receiveLoadBadges', badges]]);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('dispatches requestLoadBadges and receiveLoadBadgesError for error response', done => {
+ const dummyData = 'this is just some data';
+ endpointMock.replyOnce(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['requestLoadBadges', dummyData]]);
+ dispatch.calls.reset();
+ return [500, ''];
+ });
+
+ actions
+ .loadBadges({ state, dispatch }, dummyData)
+ .then(() => done.fail('Expected Ajax call to fail!'))
+ .catch(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['receiveLoadBadgesError']]);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+
+ describe('requestRenderedBadge', () => {
+ it('commits REQUEST_RENDERED_BADGE', done => {
+ testAction(
+ actions.requestRenderedBadge,
+ null,
+ state,
+ [{ type: mutationTypes.REQUEST_RENDERED_BADGE }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('receiveRenderedBadge', () => {
+ it('commits RECEIVE_RENDERED_BADGE', done => {
+ const dummyBadge = createDummyBadge();
+ testAction(
+ actions.receiveRenderedBadge,
+ dummyBadge,
+ state,
+ [{ type: mutationTypes.RECEIVE_RENDERED_BADGE, payload: dummyBadge }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('receiveRenderedBadgeError', () => {
+ it('commits RECEIVE_RENDERED_BADGE_ERROR', done => {
+ testAction(
+ actions.receiveRenderedBadgeError,
+ null,
+ state,
+ [{ type: mutationTypes.RECEIVE_RENDERED_BADGE_ERROR }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('renderBadge', () => {
+ let dispatch;
+ let endpointMock;
+ let badgeInForm;
+
+ beforeEach(() => {
+ badgeInForm = createDummyBadge();
+ state = {
+ ...state,
+ badgeInAddForm: badgeInForm,
+ };
+ const urlParameters = [
+ `link_url=${encodeURIComponent(badgeInForm.linkUrl)}`,
+ `image_url=${encodeURIComponent(badgeInForm.imageUrl)}`,
+ ].join('&');
+ endpointMock = axiosMock.onGet(`${dummyEndpointUrl}/render?${urlParameters}`);
+ dispatch = jasmine.createSpy('dispatch');
+ });
+
+ it('returns immediately if imageUrl is empty', done => {
+ spyOn(axios, 'get');
+ badgeInForm.imageUrl = '';
+
+ actions
+ .renderBadge({ state, dispatch })
+ .then(() => {
+ expect(axios.get).not.toHaveBeenCalled();
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('returns immediately if linkUrl is empty', done => {
+ spyOn(axios, 'get');
+ badgeInForm.linkUrl = '';
+
+ actions
+ .renderBadge({ state, dispatch })
+ .then(() => {
+ expect(axios.get).not.toHaveBeenCalled();
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('escapes user input', done => {
+ spyOn(axios, 'get').and.callFake(() => Promise.resolve({ data: createDummyBadgeResponse() }));
+ badgeInForm.imageUrl = '&make-sandwhich=true';
+ badgeInForm.linkUrl = '<script>I am dangerous!</script>';
+
+ actions
+ .renderBadge({ state, dispatch })
+ .then(() => {
+ expect(axios.get.calls.count()).toBe(1);
+ const url = axios.get.calls.argsFor(0)[0];
+ expect(url).toMatch(`^${dummyEndpointUrl}/render?`);
+ expect(url).toMatch('\\?link_url=%3Cscript%3EI%20am%20dangerous!%3C%2Fscript%3E&');
+ expect(url).toMatch('&image_url=%26make-sandwhich%3Dtrue$');
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('dispatches requestRenderedBadge and receiveRenderedBadge for successful response', done => {
+ const dummyReponse = createDummyBadgeResponse();
+ endpointMock.replyOnce(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['requestRenderedBadge']]);
+ dispatch.calls.reset();
+ return [200, dummyReponse];
+ });
+
+ actions
+ .renderBadge({ state, dispatch })
+ .then(() => {
+ const renderedBadge = transformBackendBadge(dummyReponse);
+ expect(dispatch.calls.allArgs()).toEqual([['receiveRenderedBadge', renderedBadge]]);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('dispatches requestRenderedBadge and receiveRenderedBadgeError for error response', done => {
+ endpointMock.replyOnce(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['requestRenderedBadge']]);
+ dispatch.calls.reset();
+ return [500, ''];
+ });
+
+ actions
+ .renderBadge({ state, dispatch })
+ .then(() => done.fail('Expected Ajax call to fail!'))
+ .catch(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['receiveRenderedBadgeError']]);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+
+ describe('requestUpdatedBadge', () => {
+ it('commits REQUEST_UPDATED_BADGE', done => {
+ testAction(
+ actions.requestUpdatedBadge,
+ null,
+ state,
+ [{ type: mutationTypes.REQUEST_UPDATED_BADGE }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('receiveUpdatedBadge', () => {
+ it('commits RECEIVE_UPDATED_BADGE', done => {
+ const updatedBadge = createDummyBadge();
+ testAction(
+ actions.receiveUpdatedBadge,
+ updatedBadge,
+ state,
+ [{ type: mutationTypes.RECEIVE_UPDATED_BADGE, payload: updatedBadge }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('receiveUpdatedBadgeError', () => {
+ it('commits RECEIVE_UPDATED_BADGE_ERROR', done => {
+ testAction(
+ actions.receiveUpdatedBadgeError,
+ null,
+ state,
+ [{ type: mutationTypes.RECEIVE_UPDATED_BADGE_ERROR }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('saveBadge', () => {
+ let badgeInEditForm;
+ let dispatch;
+ let endpointMock;
+
+ beforeEach(() => {
+ badgeInEditForm = createDummyBadge();
+ state = {
+ ...state,
+ badgeInEditForm,
+ };
+ endpointMock = axiosMock.onPut(`${dummyEndpointUrl}/${badgeInEditForm.id}`);
+ dispatch = jasmine.createSpy('dispatch');
+ });
+
+ it('dispatches requestUpdatedBadge and receiveUpdatedBadge for successful response', done => {
+ const dummyResponse = createDummyBadgeResponse();
+
+ endpointMock.replyOnce(req => {
+ expect(req.data).toBe(
+ JSON.stringify({
+ image_url: badgeInEditForm.imageUrl,
+ link_url: badgeInEditForm.linkUrl,
+ }),
+ );
+ expect(dispatch.calls.allArgs()).toEqual([['requestUpdatedBadge']]);
+ dispatch.calls.reset();
+ return [200, dummyResponse];
+ });
+
+ const updatedBadge = transformBackendBadge(dummyResponse);
+ actions
+ .saveBadge({ state, dispatch })
+ .then(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['receiveUpdatedBadge', updatedBadge]]);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('dispatches requestUpdatedBadge and receiveUpdatedBadgeError for error response', done => {
+ endpointMock.replyOnce(req => {
+ expect(req.data).toBe(
+ JSON.stringify({
+ image_url: badgeInEditForm.imageUrl,
+ link_url: badgeInEditForm.linkUrl,
+ }),
+ );
+ expect(dispatch.calls.allArgs()).toEqual([['requestUpdatedBadge']]);
+ dispatch.calls.reset();
+ return [500, ''];
+ });
+
+ actions
+ .saveBadge({ state, dispatch })
+ .then(() => done.fail('Expected Ajax call to fail!'))
+ .catch(() => {
+ expect(dispatch.calls.allArgs()).toEqual([['receiveUpdatedBadgeError']]);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+
+ describe('stopEditing', () => {
+ it('commits STOP_EDITING', done => {
+ testAction(
+ actions.stopEditing,
+ null,
+ state,
+ [{ type: mutationTypes.STOP_EDITING }],
+ [],
+ done,
+ );
+ });
+ });
+
+ describe('updateBadgeInForm', () => {
+ it('commits UPDATE_BADGE_IN_FORM', done => {
+ const dummyBadge = createDummyBadge();
+ testAction(
+ actions.updateBadgeInForm,
+ dummyBadge,
+ state,
+ [{ type: mutationTypes.UPDATE_BADGE_IN_FORM, payload: dummyBadge }],
+ [],
+ done,
+ );
+ });
+
+ describe('updateBadgeInModal', () => {
+ it('commits UPDATE_BADGE_IN_MODAL', done => {
+ const dummyBadge = createDummyBadge();
+ testAction(
+ actions.updateBadgeInModal,
+ dummyBadge,
+ state,
+ [{ type: mutationTypes.UPDATE_BADGE_IN_MODAL, payload: dummyBadge }],
+ [],
+ done,
+ );
+ });
+ });
+ });
+});
diff --git a/spec/javascripts/badges/store/mutations_spec.js b/spec/javascripts/badges/store/mutations_spec.js
new file mode 100644
index 00000000000..8d26f83339d
--- /dev/null
+++ b/spec/javascripts/badges/store/mutations_spec.js
@@ -0,0 +1,418 @@
+import { GROUP_BADGE, PROJECT_BADGE } from '~/badges/constants';
+import store from '~/badges/store';
+import types from '~/badges/store/mutation_types';
+import createState from '~/badges/store/state';
+import { createDummyBadge } from '../dummy_badge';
+
+describe('Badges store mutations', () => {
+ let dummyBadge;
+
+ beforeEach(() => {
+ dummyBadge = createDummyBadge();
+ store.replaceState(createState());
+ });
+
+ describe('RECEIVE_DELETE_BADGE', () => {
+ beforeEach(() => {
+ const badges = [
+ { ...dummyBadge, id: dummyBadge.id - 1 },
+ dummyBadge,
+ { ...dummyBadge, id: dummyBadge.id + 1 },
+ ];
+
+ store.replaceState({
+ ...store.state,
+ badges,
+ });
+ });
+
+ it('removes deleted badge', () => {
+ const badgeCount = store.state.badges.length;
+
+ store.commit(types.RECEIVE_DELETE_BADGE, dummyBadge.id);
+
+ expect(store.state.badges.length).toBe(badgeCount - 1);
+ expect(store.state.badges.indexOf(dummyBadge)).toBe(-1);
+ });
+ });
+
+ describe('RECEIVE_DELETE_BADGE_ERROR', () => {
+ beforeEach(() => {
+ const badges = [
+ { ...dummyBadge, id: dummyBadge.id - 1, isDeleting: false },
+ { ...dummyBadge, isDeleting: true },
+ { ...dummyBadge, id: dummyBadge.id + 1, isDeleting: true },
+ ];
+
+ store.replaceState({
+ ...store.state,
+ badges,
+ });
+ });
+
+ it('sets isDeleting to false', () => {
+ const badgeCount = store.state.badges.length;
+
+ store.commit(types.RECEIVE_DELETE_BADGE_ERROR, dummyBadge.id);
+
+ expect(store.state.badges.length).toBe(badgeCount);
+ expect(store.state.badges[0].isDeleting).toBe(false);
+ expect(store.state.badges[1].isDeleting).toBe(false);
+ expect(store.state.badges[2].isDeleting).toBe(true);
+ });
+ });
+
+ describe('RECEIVE_LOAD_BADGES', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ isLoading: 'not false',
+ });
+ });
+
+ it('sets badges and isLoading to false', () => {
+ const badges = [createDummyBadge()];
+ store.commit(types.RECEIVE_LOAD_BADGES, badges);
+
+ expect(store.state.isLoading).toBe(false);
+ expect(store.state.badges).toBe(badges);
+ });
+ });
+
+ describe('RECEIVE_LOAD_BADGES_ERROR', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ isLoading: 'not false',
+ });
+ });
+
+ it('sets isLoading to false', () => {
+ store.commit(types.RECEIVE_LOAD_BADGES_ERROR);
+
+ expect(store.state.isLoading).toBe(false);
+ });
+ });
+
+ describe('RECEIVE_NEW_BADGE', () => {
+ beforeEach(() => {
+ const badges = [
+ { ...dummyBadge, id: dummyBadge.id - 1, kind: GROUP_BADGE },
+ { ...dummyBadge, id: dummyBadge.id + 1, kind: GROUP_BADGE },
+ { ...dummyBadge, id: dummyBadge.id - 1, kind: PROJECT_BADGE },
+ { ...dummyBadge, id: dummyBadge.id + 1, kind: PROJECT_BADGE },
+ ];
+ store.replaceState({
+ ...store.state,
+ badgeInAddForm: createDummyBadge(),
+ badges,
+ isSaving: 'dummy value',
+ renderedBadge: createDummyBadge(),
+ });
+ });
+
+ it('resets the add form', () => {
+ store.commit(types.RECEIVE_NEW_BADGE, dummyBadge);
+
+ expect(store.state.badgeInAddForm).toBe(null);
+ expect(store.state.isSaving).toBe(false);
+ expect(store.state.renderedBadge).toBe(null);
+ });
+
+ it('inserts group badge at correct position', () => {
+ const badgeCount = store.state.badges.length;
+ dummyBadge = { ...dummyBadge, kind: GROUP_BADGE };
+
+ store.commit(types.RECEIVE_NEW_BADGE, dummyBadge);
+
+ expect(store.state.badges.length).toBe(badgeCount + 1);
+ expect(store.state.badges.indexOf(dummyBadge)).toBe(1);
+ });
+
+ it('inserts project badge at correct position', () => {
+ const badgeCount = store.state.badges.length;
+ dummyBadge = { ...dummyBadge, kind: PROJECT_BADGE };
+
+ store.commit(types.RECEIVE_NEW_BADGE, dummyBadge);
+
+ expect(store.state.badges.length).toBe(badgeCount + 1);
+ expect(store.state.badges.indexOf(dummyBadge)).toBe(3);
+ });
+ });
+
+ describe('RECEIVE_NEW_BADGE_ERROR', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ isSaving: 'dummy value',
+ });
+ });
+
+ it('sets isSaving to false', () => {
+ store.commit(types.RECEIVE_NEW_BADGE_ERROR);
+
+ expect(store.state.isSaving).toBe(false);
+ });
+ });
+
+ describe('RECEIVE_RENDERED_BADGE', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ isRendering: 'dummy value',
+ renderedBadge: 'dummy value',
+ });
+ });
+
+ it('sets renderedBadge', () => {
+ store.commit(types.RECEIVE_RENDERED_BADGE, dummyBadge);
+
+ expect(store.state.isRendering).toBe(false);
+ expect(store.state.renderedBadge).toBe(dummyBadge);
+ });
+ });
+
+ describe('RECEIVE_RENDERED_BADGE_ERROR', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ isRendering: 'dummy value',
+ });
+ });
+
+ it('sets isRendering to false', () => {
+ store.commit(types.RECEIVE_RENDERED_BADGE_ERROR);
+
+ expect(store.state.isRendering).toBe(false);
+ });
+ });
+
+ describe('RECEIVE_UPDATED_BADGE', () => {
+ beforeEach(() => {
+ const badges = [
+ { ...dummyBadge, id: dummyBadge.id - 1 },
+ dummyBadge,
+ { ...dummyBadge, id: dummyBadge.id + 1 },
+ ];
+ store.replaceState({
+ ...store.state,
+ badgeInEditForm: createDummyBadge(),
+ badges,
+ isEditing: 'dummy value',
+ isSaving: 'dummy value',
+ renderedBadge: createDummyBadge(),
+ });
+ });
+
+ it('resets the edit form', () => {
+ store.commit(types.RECEIVE_UPDATED_BADGE, dummyBadge);
+
+ expect(store.state.badgeInAddForm).toBe(null);
+ expect(store.state.isSaving).toBe(false);
+ expect(store.state.renderedBadge).toBe(null);
+ });
+
+ it('replaces the updated badge', () => {
+ const badgeCount = store.state.badges.length;
+ const badgeIndex = store.state.badges.indexOf(dummyBadge);
+ const newBadge = { id: dummyBadge.id, dummy: 'value' };
+
+ store.commit(types.RECEIVE_UPDATED_BADGE, newBadge);
+
+ expect(store.state.badges.length).toBe(badgeCount);
+ expect(store.state.badges[badgeIndex]).toBe(newBadge);
+ });
+ });
+
+ describe('RECEIVE_UPDATED_BADGE_ERROR', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ isSaving: 'dummy value',
+ });
+ });
+
+ it('sets isSaving to false', () => {
+ store.commit(types.RECEIVE_NEW_BADGE_ERROR);
+
+ expect(store.state.isSaving).toBe(false);
+ });
+ });
+
+ describe('REQUEST_DELETE_BADGE', () => {
+ beforeEach(() => {
+ const badges = [
+ { ...dummyBadge, id: dummyBadge.id - 1, isDeleting: false },
+ { ...dummyBadge, isDeleting: false },
+ { ...dummyBadge, id: dummyBadge.id + 1, isDeleting: true },
+ ];
+
+ store.replaceState({
+ ...store.state,
+ badges,
+ });
+ });
+
+ it('sets isDeleting to true', () => {
+ const badgeCount = store.state.badges.length;
+
+ store.commit(types.REQUEST_DELETE_BADGE, dummyBadge.id);
+
+ expect(store.state.badges.length).toBe(badgeCount);
+ expect(store.state.badges[0].isDeleting).toBe(false);
+ expect(store.state.badges[1].isDeleting).toBe(true);
+ expect(store.state.badges[2].isDeleting).toBe(true);
+ });
+ });
+
+ describe('REQUEST_LOAD_BADGES', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ apiEndpointUrl: 'some endpoint',
+ docsUrl: 'some url',
+ isLoading: 'dummy value',
+ kind: 'some kind',
+ });
+ });
+
+ it('sets isLoading to true and initializes the store', () => {
+ const dummyData = {
+ apiEndpointUrl: 'dummy endpoint',
+ docsUrl: 'dummy url',
+ kind: 'dummy kind',
+ };
+
+ store.commit(types.REQUEST_LOAD_BADGES, dummyData);
+
+ expect(store.state.isLoading).toBe(true);
+ expect(store.state.apiEndpointUrl).toBe(dummyData.apiEndpointUrl);
+ expect(store.state.docsUrl).toBe(dummyData.docsUrl);
+ expect(store.state.kind).toBe(dummyData.kind);
+ });
+ });
+
+ describe('REQUEST_NEW_BADGE', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ isSaving: 'dummy value',
+ });
+ });
+
+ it('sets isSaving to true', () => {
+ store.commit(types.REQUEST_NEW_BADGE);
+
+ expect(store.state.isSaving).toBe(true);
+ });
+ });
+
+ describe('REQUEST_RENDERED_BADGE', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ isRendering: 'dummy value',
+ });
+ });
+
+ it('sets isRendering to true', () => {
+ store.commit(types.REQUEST_RENDERED_BADGE);
+
+ expect(store.state.isRendering).toBe(true);
+ });
+ });
+
+ describe('REQUEST_UPDATED_BADGE', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ isSaving: 'dummy value',
+ });
+ });
+
+ it('sets isSaving to true', () => {
+ store.commit(types.REQUEST_NEW_BADGE);
+
+ expect(store.state.isSaving).toBe(true);
+ });
+ });
+
+ describe('START_EDITING', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ badgeInEditForm: 'dummy value',
+ isEditing: 'dummy value',
+ renderedBadge: 'dummy value',
+ });
+ });
+
+ it('initializes the edit form', () => {
+ store.commit(types.START_EDITING, dummyBadge);
+
+ expect(store.state.isEditing).toBe(true);
+ expect(store.state.badgeInEditForm).toEqual(dummyBadge);
+ expect(store.state.renderedBadge).toEqual(dummyBadge);
+ });
+ });
+
+ describe('STOP_EDITING', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ badgeInEditForm: 'dummy value',
+ isEditing: 'dummy value',
+ renderedBadge: 'dummy value',
+ });
+ });
+
+ it('resets the edit form', () => {
+ store.commit(types.STOP_EDITING);
+
+ expect(store.state.isEditing).toBe(false);
+ expect(store.state.badgeInEditForm).toBe(null);
+ expect(store.state.renderedBadge).toBe(null);
+ });
+ });
+
+ describe('UPDATE_BADGE_IN_FORM', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ badgeInAddForm: 'dummy value',
+ badgeInEditForm: 'dummy value',
+ });
+ });
+
+ it('sets badgeInEditForm if isEditing is true', () => {
+ store.state.isEditing = true;
+
+ store.commit(types.UPDATE_BADGE_IN_FORM, dummyBadge);
+
+ expect(store.state.badgeInEditForm).toBe(dummyBadge);
+ });
+
+ it('sets badgeInAddForm if isEditing is false', () => {
+ store.state.isEditing = false;
+
+ store.commit(types.UPDATE_BADGE_IN_FORM, dummyBadge);
+
+ expect(store.state.badgeInAddForm).toBe(dummyBadge);
+ });
+ });
+
+ describe('UPDATE_BADGE_IN_MODAL', () => {
+ beforeEach(() => {
+ store.replaceState({
+ ...store.state,
+ badgeInModal: 'dummy value',
+ });
+ });
+
+ it('sets badgeInModal', () => {
+ store.commit(types.UPDATE_BADGE_IN_MODAL, dummyBadge);
+
+ expect(store.state.badgeInModal).toBe(dummyBadge);
+ });
+ });
+});
diff --git a/spec/javascripts/boards/board_blank_state_spec.js b/spec/javascripts/boards/board_blank_state_spec.js
index f757dadfada..664ea202e93 100644
--- a/spec/javascripts/boards/board_blank_state_spec.js
+++ b/spec/javascripts/boards/board_blank_state_spec.js
@@ -1,7 +1,7 @@
/* global BoardService */
import Vue from 'vue';
import '~/boards/stores/boards_store';
-import boardBlankState from '~/boards/components/board_blank_state';
+import BoardBlankState from '~/boards/components/board_blank_state.vue';
import { mockBoardService } from './mock_data';
describe('Boards blank state', () => {
@@ -9,7 +9,7 @@ describe('Boards blank state', () => {
let fail = false;
beforeEach((done) => {
- const Comp = Vue.extend(boardBlankState);
+ const Comp = Vue.extend(BoardBlankState);
gl.issueBoards.BoardsStore.create();
gl.boardService = mockBoardService();
diff --git a/spec/javascripts/boards/issue_card_spec.js b/spec/javascripts/boards/issue_card_spec.js
index 37088a6421c..be1ea0b57b4 100644
--- a/spec/javascripts/boards/issue_card_spec.js
+++ b/spec/javascripts/boards/issue_card_spec.js
@@ -41,6 +41,8 @@ describe('Issue card component', () => {
confidential: false,
labels: [list.label],
assignees: [],
+ reference_path: '#1',
+ real_path: '/test/1',
});
component = new Vue({
diff --git a/spec/javascripts/boards/mock_data.js b/spec/javascripts/boards/mock_data.js
index 0671facb285..81f1a97112f 100644
--- a/spec/javascripts/boards/mock_data.js
+++ b/spec/javascripts/boards/mock_data.js
@@ -1,7 +1,4 @@
/* global BoardService */
-/* eslint-disable comma-dangle, no-unused-vars, quote-props */
-import _ from 'underscore';
-
export const listObj = {
id: 300,
position: 0,
@@ -11,8 +8,8 @@ export const listObj = {
id: 5000,
title: 'Testing',
color: 'red',
- description: 'testing;'
- }
+ description: 'testing;',
+ },
};
export const listObjDuplicate = {
@@ -24,35 +21,37 @@ export const listObjDuplicate = {
id: listObj.label.id,
title: 'Testing',
color: 'red',
- description: 'testing;'
- }
+ description: 'testing;',
+ },
};
export const BoardsMockData = {
- 'GET': {
+ GET: {
'/test/-/boards/1/lists/300/issues?id=300&page=1&=': {
- issues: [{
- title: 'Testing',
- id: 1,
- iid: 1,
- confidential: false,
- labels: [],
- assignees: [],
- }],
- }
+ issues: [
+ {
+ title: 'Testing',
+ id: 1,
+ iid: 1,
+ confidential: false,
+ labels: [],
+ assignees: [],
+ },
+ ],
+ },
+ },
+ POST: {
+ '/test/-/boards/1/lists': listObj,
},
- 'POST': {
- '/test/-/boards/1/lists': listObj
+ PUT: {
+ '/test/issue-boards/board/1/lists{/id}': {},
},
- 'PUT': {
- '/test/issue-boards/board/1/lists{/id}': {}
+ DELETE: {
+ '/test/issue-boards/board/1/lists{/id}': {},
},
- 'DELETE': {
- '/test/issue-boards/board/1/lists{/id}': {}
- }
};
-export const boardsMockInterceptor = (config) => {
+export const boardsMockInterceptor = config => {
const body = BoardsMockData[config.method.toUpperCase()][config.url];
return [200, body];
};
diff --git a/spec/javascripts/boards/modal_store_spec.js b/spec/javascripts/boards/modal_store_spec.js
index e9d77f035e3..797693a21aa 100644
--- a/spec/javascripts/boards/modal_store_spec.js
+++ b/spec/javascripts/boards/modal_store_spec.js
@@ -4,12 +4,11 @@ import '~/vue_shared/models/label';
import '~/boards/models/issue';
import '~/boards/models/list';
import '~/boards/models/assignee';
-import '~/boards/stores/modal_store';
+import Store from '~/boards/stores/modal_store';
describe('Modal store', () => {
let issue;
let issue2;
- const Store = gl.issueBoards.ModalStore;
beforeEach(() => {
// Setup default state
diff --git a/spec/javascripts/commit/pipelines/pipelines_spec.js b/spec/javascripts/commit/pipelines/pipelines_spec.js
index 0afe09d87bc..53820770f3f 100644
--- a/spec/javascripts/commit/pipelines/pipelines_spec.js
+++ b/spec/javascripts/commit/pipelines/pipelines_spec.js
@@ -1,113 +1,82 @@
-import _ from 'underscore';
import Vue from 'vue';
+import MockAdapter from 'axios-mock-adapter';
+import axios from '~/lib/utils/axios_utils';
import pipelinesTable from '~/commit/pipelines/pipelines_table.vue';
+import mountComponent from 'spec/helpers/vue_mount_component_helper';
describe('Pipelines table in Commits and Merge requests', () => {
const jsonFixtureName = 'pipelines/pipelines.json';
let pipeline;
let PipelinesTable;
+ let mock;
+ let vm;
preloadFixtures(jsonFixtureName);
beforeEach(() => {
+ mock = new MockAdapter(axios);
+
const pipelines = getJSONFixture(jsonFixtureName).pipelines;
PipelinesTable = Vue.extend(pipelinesTable);
pipeline = pipelines.find(p => p.user !== null && p.commit !== null);
});
+ afterEach(() => {
+ vm.$destroy();
+ mock.restore();
+ });
+
describe('successful request', () => {
describe('without pipelines', () => {
- const pipelinesEmptyResponse = (request, next) => {
- next(request.respondWith(JSON.stringify([]), {
- status: 200,
- }));
- };
-
beforeEach(function () {
- Vue.http.interceptors.push(pipelinesEmptyResponse);
-
- this.component = new PipelinesTable({
- propsData: {
- endpoint: 'endpoint',
- helpPagePath: 'foo',
- emptyStateSvgPath: 'foo',
- errorStateSvgPath: 'foo',
- autoDevopsHelpPath: 'foo',
- },
- }).$mount();
- });
+ mock.onGet('endpoint.json').reply(200, []);
- afterEach(function () {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, pipelinesEmptyResponse,
- );
- this.component.$destroy();
+ vm = mountComponent(PipelinesTable, {
+ endpoint: 'endpoint.json',
+ helpPagePath: 'foo',
+ emptyStateSvgPath: 'foo',
+ errorStateSvgPath: 'foo',
+ autoDevopsHelpPath: 'foo',
+ });
});
it('should render the empty state', function (done) {
setTimeout(() => {
- expect(this.component.$el.querySelector('.empty-state')).toBeDefined();
- expect(this.component.$el.querySelector('.realtime-loading')).toBe(null);
- expect(this.component.$el.querySelector('.js-pipelines-error-state')).toBe(null);
+ expect(vm.$el.querySelector('.empty-state')).toBeDefined();
+ expect(vm.$el.querySelector('.realtime-loading')).toBe(null);
+ expect(vm.$el.querySelector('.js-pipelines-error-state')).toBe(null);
done();
- }, 1);
+ }, 0);
});
});
describe('with pipelines', () => {
- const pipelinesResponse = (request, next) => {
- next(request.respondWith(JSON.stringify([pipeline]), {
- status: 200,
- }));
- };
-
beforeEach(() => {
- Vue.http.interceptors.push(pipelinesResponse);
-
- this.component = new PipelinesTable({
- propsData: {
- endpoint: 'endpoint',
- helpPagePath: 'foo',
- emptyStateSvgPath: 'foo',
- errorStateSvgPath: 'foo',
- autoDevopsHelpPath: 'foo',
- },
- }).$mount();
- });
-
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, pipelinesResponse,
- );
- this.component.$destroy();
+ mock.onGet('endpoint.json').reply(200, [pipeline]);
+ vm = mountComponent(PipelinesTable, {
+ endpoint: 'endpoint.json',
+ helpPagePath: 'foo',
+ emptyStateSvgPath: 'foo',
+ errorStateSvgPath: 'foo',
+ autoDevopsHelpPath: 'foo',
+ });
});
it('should render a table with the received pipelines', (done) => {
setTimeout(() => {
- expect(this.component.$el.querySelectorAll('.ci-table .commit').length).toEqual(1);
- expect(this.component.$el.querySelector('.realtime-loading')).toBe(null);
- expect(this.component.$el.querySelector('.empty-state')).toBe(null);
- expect(this.component.$el.querySelector('.js-pipelines-error-state')).toBe(null);
+ expect(vm.$el.querySelectorAll('.ci-table .commit').length).toEqual(1);
+ expect(vm.$el.querySelector('.realtime-loading')).toBe(null);
+ expect(vm.$el.querySelector('.empty-state')).toBe(null);
+ expect(vm.$el.querySelector('.js-pipelines-error-state')).toBe(null);
done();
}, 0);
});
});
describe('pipeline badge counts', () => {
- const pipelinesResponse = (request, next) => {
- next(request.respondWith(JSON.stringify([pipeline]), {
- status: 200,
- }));
- };
-
beforeEach(() => {
- Vue.http.interceptors.push(pipelinesResponse);
- });
-
- afterEach(() => {
- Vue.http.interceptors = _.without(Vue.http.interceptors, pipelinesResponse);
- this.component.$destroy();
+ mock.onGet('endpoint.json').reply(200, [pipeline]);
});
it('should receive update-pipelines-count event', (done) => {
@@ -119,54 +88,38 @@ describe('Pipelines table in Commits and Merge requests', () => {
done();
});
- this.component = new PipelinesTable({
- propsData: {
- endpoint: 'endpoint',
- helpPagePath: 'foo',
- emptyStateSvgPath: 'foo',
- errorStateSvgPath: 'foo',
- autoDevopsHelpPath: 'foo',
- },
- }).$mount();
- element.appendChild(this.component.$el);
- });
- });
- });
-
- describe('unsuccessfull request', () => {
- const pipelinesErrorResponse = (request, next) => {
- next(request.respondWith(JSON.stringify([]), {
- status: 500,
- }));
- };
-
- beforeEach(function () {
- Vue.http.interceptors.push(pipelinesErrorResponse);
-
- this.component = new PipelinesTable({
- propsData: {
- endpoint: 'endpoint',
+ vm = mountComponent(PipelinesTable, {
+ endpoint: 'endpoint.json',
helpPagePath: 'foo',
emptyStateSvgPath: 'foo',
errorStateSvgPath: 'foo',
autoDevopsHelpPath: 'foo',
- },
- }).$mount();
+ });
+
+ element.appendChild(vm.$el);
+ });
});
+ });
- afterEach(function () {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, pipelinesErrorResponse,
- );
- this.component.$destroy();
+ describe('unsuccessfull request', () => {
+ beforeEach(() => {
+ mock.onGet('endpoint.json').reply(500, []);
+
+ vm = mountComponent(PipelinesTable, {
+ endpoint: 'endpoint.json',
+ helpPagePath: 'foo',
+ emptyStateSvgPath: 'foo',
+ errorStateSvgPath: 'foo',
+ autoDevopsHelpPath: 'foo',
+ });
});
it('should render error state', function (done) {
setTimeout(() => {
- expect(this.component.$el.querySelector('.js-pipelines-error-state')).toBeDefined();
- expect(this.component.$el.querySelector('.realtime-loading')).toBe(null);
- expect(this.component.$el.querySelector('.js-empty-state')).toBe(null);
- expect(this.component.$el.querySelector('.ci-table')).toBe(null);
+ expect(vm.$el.querySelector('.js-pipelines-error-state')).toBeDefined();
+ expect(vm.$el.querySelector('.realtime-loading')).toBe(null);
+ expect(vm.$el.querySelector('.js-empty-state')).toBe(null);
+ expect(vm.$el.querySelector('.ci-table')).toBe(null);
done();
}, 0);
});
diff --git a/spec/javascripts/droplab/constants_spec.js b/spec/javascripts/droplab/constants_spec.js
index b9d28db74cc..23b69defec6 100644
--- a/spec/javascripts/droplab/constants_spec.js
+++ b/spec/javascripts/droplab/constants_spec.js
@@ -1,39 +1,37 @@
-/* eslint-disable */
-
import * as constants from '~/droplab/constants';
-describe('constants', function () {
- describe('DATA_TRIGGER', function () {
+describe('constants', function() {
+ describe('DATA_TRIGGER', function() {
it('should be `data-dropdown-trigger`', function() {
expect(constants.DATA_TRIGGER).toBe('data-dropdown-trigger');
});
});
- describe('DATA_DROPDOWN', function () {
+ describe('DATA_DROPDOWN', function() {
it('should be `data-dropdown`', function() {
expect(constants.DATA_DROPDOWN).toBe('data-dropdown');
});
});
- describe('SELECTED_CLASS', function () {
+ describe('SELECTED_CLASS', function() {
it('should be `droplab-item-selected`', function() {
expect(constants.SELECTED_CLASS).toBe('droplab-item-selected');
});
});
- describe('ACTIVE_CLASS', function () {
+ describe('ACTIVE_CLASS', function() {
it('should be `droplab-item-active`', function() {
expect(constants.ACTIVE_CLASS).toBe('droplab-item-active');
});
});
- describe('TEMPLATE_REGEX', function () {
+ describe('TEMPLATE_REGEX', function() {
it('should be a handlebars templating syntax regex', function() {
expect(constants.TEMPLATE_REGEX).toEqual(/\{\{(.+?)\}\}/g);
});
});
- describe('IGNORE_CLASS', function () {
+ describe('IGNORE_CLASS', function() {
it('should be `droplab-item-ignore`', function() {
expect(constants.IGNORE_CLASS).toBe('droplab-item-ignore');
});
diff --git a/spec/javascripts/fixtures/one_white_pixel.png b/spec/javascripts/fixtures/one_white_pixel.png
new file mode 100644
index 00000000000..073fcf40a18
--- /dev/null
+++ b/spec/javascripts/fixtures/one_white_pixel.png
Binary files differ
diff --git a/spec/javascripts/helpers/vue_mount_component_helper.js b/spec/javascripts/helpers/vue_mount_component_helper.js
index 34acdfbfba9..effacbcff4e 100644
--- a/spec/javascripts/helpers/vue_mount_component_helper.js
+++ b/spec/javascripts/helpers/vue_mount_component_helper.js
@@ -3,6 +3,12 @@ export const createComponentWithStore = (Component, store, propsData = {}) => ne
propsData,
});
+export const mountComponentWithStore = (Component, { el, props, store }) =>
+ new Component({
+ store,
+ propsData: props || { },
+ }).$mount(el);
+
export default (Component, props = {}, el = null) => new Component({
propsData: props,
}).$mount(el);
diff --git a/spec/javascripts/ide/components/changed_file_icon_spec.js b/spec/javascripts/ide/components/changed_file_icon_spec.js
index 987aea7befc..541864e912e 100644
--- a/spec/javascripts/ide/components/changed_file_icon_spec.js
+++ b/spec/javascripts/ide/components/changed_file_icon_spec.js
@@ -11,6 +11,7 @@ describe('IDE changed file icon', () => {
vm = createComponent(component, {
file: {
tempFile: false,
+ changed: true,
},
});
});
@@ -20,7 +21,7 @@ describe('IDE changed file icon', () => {
});
describe('changedIcon', () => {
- it('equals file-modified when not a temp file', () => {
+ it('equals file-modified when not a temp file and has changes', () => {
expect(vm.changedIcon).toBe('file-modified');
});
diff --git a/spec/javascripts/ide/components/commit_sidebar/list_item_spec.js b/spec/javascripts/ide/components/commit_sidebar/list_item_spec.js
index 15b66952d99..509434e4300 100644
--- a/spec/javascripts/ide/components/commit_sidebar/list_item_spec.js
+++ b/spec/javascripts/ide/components/commit_sidebar/list_item_spec.js
@@ -1,8 +1,9 @@
import Vue from 'vue';
import listItem from '~/ide/components/commit_sidebar/list_item.vue';
import router from '~/ide/ide_router';
-import mountComponent from 'spec/helpers/vue_mount_component_helper';
-import { file } from '../../helpers';
+import store from '~/ide/stores';
+import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
+import { file, resetStore } from '../../helpers';
describe('Multi-file editor commit sidebar list item', () => {
let vm;
@@ -13,19 +14,21 @@ describe('Multi-file editor commit sidebar list item', () => {
f = file('test-file');
- vm = mountComponent(Component, {
+ store.state.entries[f.path] = f;
+
+ vm = createComponentWithStore(Component, store, {
file: f,
- });
+ }).$mount();
});
afterEach(() => {
vm.$destroy();
+
+ resetStore(store);
});
it('renders file path', () => {
- expect(
- vm.$el.querySelector('.multi-file-commit-list-path').textContent.trim(),
- ).toBe(f.path);
+ expect(vm.$el.querySelector('.multi-file-commit-list-path').textContent.trim()).toBe(f.path);
});
it('calls discardFileChanges when clicking discard button', () => {
@@ -36,25 +39,32 @@ describe('Multi-file editor commit sidebar list item', () => {
expect(vm.discardFileChanges).toHaveBeenCalled();
});
- it('opens a closed file in the editor when clicking the file path', () => {
+ it('opens a closed file in the editor when clicking the file path', done => {
spyOn(vm, 'openFileInEditor').and.callThrough();
- spyOn(vm, 'updateViewer');
spyOn(router, 'push');
vm.$el.querySelector('.multi-file-commit-list-path').click();
- expect(vm.openFileInEditor).toHaveBeenCalled();
- expect(router.push).toHaveBeenCalled();
+ setTimeout(() => {
+ expect(vm.openFileInEditor).toHaveBeenCalled();
+ expect(router.push).toHaveBeenCalled();
+
+ done();
+ });
});
- it('calls updateViewer with diff when clicking file', () => {
+ it('calls updateViewer with diff when clicking file', done => {
spyOn(vm, 'openFileInEditor').and.callThrough();
- spyOn(vm, 'updateViewer');
+ spyOn(vm, 'updateViewer').and.callThrough();
spyOn(router, 'push');
vm.$el.querySelector('.multi-file-commit-list-path').click();
- expect(vm.updateViewer).toHaveBeenCalledWith('diff');
+ setTimeout(() => {
+ expect(vm.updateViewer).toHaveBeenCalledWith('diff');
+
+ done();
+ });
});
describe('computed', () => {
diff --git a/spec/javascripts/ide/components/repo_file_buttons_spec.js b/spec/javascripts/ide/components/ide_file_buttons_spec.js
index c86bdb132b4..8ac8d1b2acf 100644
--- a/spec/javascripts/ide/components/repo_file_buttons_spec.js
+++ b/spec/javascripts/ide/components/ide_file_buttons_spec.js
@@ -1,5 +1,5 @@
import Vue from 'vue';
-import repoFileButtons from '~/ide/components/repo_file_buttons.vue';
+import repoFileButtons from '~/ide/components/ide_file_buttons.vue';
import createVueComponent from '../../helpers/vue_mount_component_helper';
import { file } from '../helpers';
@@ -23,7 +23,7 @@ describe('RepoFileButtons', () => {
vm.$destroy();
});
- it('renders Raw, Blame, History, Permalink and Preview toggle', done => {
+ it('renders Raw, Blame, History and Permalink', done => {
vm = createComponent();
vm.$nextTick(() => {
@@ -32,16 +32,30 @@ describe('RepoFileButtons', () => {
const history = vm.$el.querySelector('.history');
expect(raw.href).toMatch(`/${activeFile.rawPath}`);
- expect(raw.textContent.trim()).toEqual('Raw');
+ expect(raw.getAttribute('data-original-title')).toEqual('Raw');
expect(blame.href).toMatch(`/${activeFile.blamePath}`);
- expect(blame.textContent.trim()).toEqual('Blame');
+ expect(blame.getAttribute('data-original-title')).toEqual('Blame');
expect(history.href).toMatch(`/${activeFile.commitsPath}`);
- expect(history.textContent.trim()).toEqual('History');
- expect(vm.$el.querySelector('.permalink').textContent.trim()).toEqual(
+ expect(history.getAttribute('data-original-title')).toEqual('History');
+ expect(vm.$el.querySelector('.permalink').getAttribute('data-original-title')).toEqual(
'Permalink',
);
done();
});
});
+
+ it('renders Download', done => {
+ activeFile.binary = true;
+ vm = createComponent();
+
+ vm.$nextTick(() => {
+ const raw = vm.$el.querySelector('.raw');
+
+ expect(raw.href).toMatch(`/${activeFile.rawPath}`);
+ expect(raw.getAttribute('data-original-title')).toEqual('Download');
+
+ done();
+ });
+ });
});
diff --git a/spec/javascripts/ide/components/repo_editor_spec.js b/spec/javascripts/ide/components/repo_editor_spec.js
index ae657e8c881..63a3d2c6cd5 100644
--- a/spec/javascripts/ide/components/repo_editor_spec.js
+++ b/spec/javascripts/ide/components/repo_editor_spec.js
@@ -19,7 +19,6 @@ describe('RepoEditor', () => {
f.active = true;
f.tempFile = true;
- f.html = 'testing';
vm.$store.state.openFiles.push(f);
vm.$store.state.entries[f.path] = f;
vm.monaco = true;
@@ -47,6 +46,61 @@ describe('RepoEditor', () => {
});
});
+ it('renders only an edit tab', done => {
+ Vue.nextTick(() => {
+ const tabs = vm.$el.querySelectorAll('.ide-mode-tabs .nav-links li');
+ expect(tabs.length).toBe(1);
+ expect(tabs[0].textContent.trim()).toBe('Edit');
+
+ done();
+ });
+ });
+
+ describe('when file is markdown', () => {
+ beforeEach(done => {
+ vm.file.previewMode = {
+ id: 'markdown',
+ previewTitle: 'Preview Markdown',
+ };
+
+ vm.$nextTick(done);
+ });
+
+ it('renders an Edit and a Preview Tab', done => {
+ Vue.nextTick(() => {
+ const tabs = vm.$el.querySelectorAll('.ide-mode-tabs .nav-links li');
+ expect(tabs.length).toBe(2);
+ expect(tabs[0].textContent.trim()).toBe('Edit');
+ expect(tabs[1].textContent.trim()).toBe('Preview Markdown');
+
+ done();
+ });
+ });
+ });
+
+ describe('when file is markdown and viewer mode is review', () => {
+ beforeEach(done => {
+ vm.file.previewMode = {
+ id: 'markdown',
+ previewTitle: 'Preview Markdown',
+ };
+ vm.$store.state.viewer = 'diff';
+
+ vm.$nextTick(done);
+ });
+
+ it('renders an Edit and a Preview Tab', done => {
+ Vue.nextTick(() => {
+ const tabs = vm.$el.querySelectorAll('.ide-mode-tabs .nav-links li');
+ expect(tabs.length).toBe(2);
+ expect(tabs[0].textContent.trim()).toBe('Review');
+ expect(tabs[1].textContent.trim()).toBe('Preview Markdown');
+
+ done();
+ });
+ });
+ });
+
describe('when open file is binary and not raw', () => {
beforeEach(done => {
vm.file.binary = true;
@@ -57,10 +111,6 @@ describe('RepoEditor', () => {
it('does not render the IDE', () => {
expect(vm.shouldHideEditor).toBeTruthy();
});
-
- it('shows activeFile html', () => {
- expect(vm.$el.textContent).toContain('testing');
- });
});
describe('createEditorInstance', () => {
@@ -89,6 +139,20 @@ describe('RepoEditor', () => {
done();
});
});
+
+ it('calls createDiffInstance when viewer is a merge request diff', done => {
+ vm.$store.state.viewer = 'mrdiff';
+
+ spyOn(vm.editor, 'createDiffInstance');
+
+ vm.createEditorInstance();
+
+ vm.$nextTick(() => {
+ expect(vm.editor.createDiffInstance).toHaveBeenCalled();
+
+ done();
+ });
+ });
});
describe('setupEditor', () => {
@@ -134,4 +198,50 @@ describe('RepoEditor', () => {
});
});
});
+
+ describe('editor updateDimensions', () => {
+ beforeEach(() => {
+ spyOn(vm.editor, 'updateDimensions').and.callThrough();
+ spyOn(vm.editor, 'updateDiffView');
+ });
+
+ it('calls updateDimensions when rightPanelCollapsed is changed', done => {
+ vm.$store.state.rightPanelCollapsed = true;
+
+ vm.$nextTick(() => {
+ expect(vm.editor.updateDimensions).toHaveBeenCalled();
+ expect(vm.editor.updateDiffView).toHaveBeenCalled();
+
+ done();
+ });
+ });
+
+ it('calls updateDimensions when panelResizing is false', done => {
+ vm.$store.state.panelResizing = true;
+
+ vm
+ .$nextTick()
+ .then(() => {
+ vm.$store.state.panelResizing = false;
+ })
+ .then(vm.$nextTick)
+ .then(() => {
+ expect(vm.editor.updateDimensions).toHaveBeenCalled();
+ expect(vm.editor.updateDiffView).toHaveBeenCalled();
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('does not call updateDimensions when panelResizing is true', done => {
+ vm.$store.state.panelResizing = true;
+
+ vm.$nextTick(() => {
+ expect(vm.editor.updateDimensions).not.toHaveBeenCalled();
+ expect(vm.editor.updateDiffView).not.toHaveBeenCalled();
+
+ done();
+ });
+ });
+ });
});
diff --git a/spec/javascripts/ide/components/repo_tab_spec.js b/spec/javascripts/ide/components/repo_tab_spec.js
index ddb5204e3a7..8cabc6e8935 100644
--- a/spec/javascripts/ide/components/repo_tab_spec.js
+++ b/spec/javascripts/ide/components/repo_tab_spec.js
@@ -59,7 +59,7 @@ describe('RepoTab', () => {
vm.$el.querySelector('.multi-file-tab-close').click();
- expect(vm.closeFile).toHaveBeenCalledWith(vm.tab.path);
+ expect(vm.closeFile).toHaveBeenCalledWith(vm.tab);
});
it('changes icon on hover', done => {
diff --git a/spec/javascripts/ide/components/repo_tabs_spec.js b/spec/javascripts/ide/components/repo_tabs_spec.js
index ceb0416aff8..cb785ba2cd3 100644
--- a/spec/javascripts/ide/components/repo_tabs_spec.js
+++ b/spec/javascripts/ide/components/repo_tabs_spec.js
@@ -17,6 +17,8 @@ describe('RepoTabs', () => {
files: openedFiles,
viewer: 'editor',
hasChanges: false,
+ activeFile: file('activeFile'),
+ hasMergeRequest: false,
});
openedFiles[0].active = true;
@@ -56,6 +58,8 @@ describe('RepoTabs', () => {
files: [],
viewer: 'editor',
hasChanges: false,
+ activeFile: file('activeFile'),
+ hasMergeRequest: false,
},
'#test-app',
);
diff --git a/spec/javascripts/ide/lib/common/model_manager_spec.js b/spec/javascripts/ide/lib/common/model_manager_spec.js
index 4381f6fcfd0..c00d590c580 100644
--- a/spec/javascripts/ide/lib/common/model_manager_spec.js
+++ b/spec/javascripts/ide/lib/common/model_manager_spec.js
@@ -27,9 +27,10 @@ describe('Multi-file editor library model manager', () => {
});
it('caches model by file path', () => {
- instance.addModel(file('path-name'));
+ const f = file('path-name');
+ instance.addModel(f);
- expect(instance.models.keys().next().value).toBe('path-name');
+ expect(instance.models.keys().next().value).toBe(f.key);
});
it('adds model into disposable', () => {
@@ -56,7 +57,7 @@ describe('Multi-file editor library model manager', () => {
instance.addModel(f);
expect(eventHub.$on).toHaveBeenCalledWith(
- `editor.update.model.dispose.${f.path}`,
+ `editor.update.model.dispose.${f.key}`,
jasmine.anything(),
);
});
@@ -68,9 +69,11 @@ describe('Multi-file editor library model manager', () => {
});
it('returns true when model exists', () => {
- instance.addModel(file('path-name'));
+ const f = file('path-name');
+
+ instance.addModel(f);
- expect(instance.hasCachedModel('path-name')).toBeTruthy();
+ expect(instance.hasCachedModel(f.key)).toBeTruthy();
});
});
@@ -103,7 +106,7 @@ describe('Multi-file editor library model manager', () => {
instance.removeCachedModel(f);
expect(eventHub.$off).toHaveBeenCalledWith(
- `editor.update.model.dispose.${f.path}`,
+ `editor.update.model.dispose.${f.key}`,
jasmine.anything(),
);
});
diff --git a/spec/javascripts/ide/lib/common/model_spec.js b/spec/javascripts/ide/lib/common/model_spec.js
index adc6a93c06b..8fc2fccb64c 100644
--- a/spec/javascripts/ide/lib/common/model_spec.js
+++ b/spec/javascripts/ide/lib/common/model_spec.js
@@ -11,7 +11,10 @@ describe('Multi-file editor library model', () => {
spyOn(eventHub, '$on').and.callThrough();
monacoLoader(['vs/editor/editor.main'], () => {
- model = new Model(monaco, file('path'));
+ const f = file('path');
+ f.mrChange = { diff: 'ABC' };
+ f.baseRaw = 'test';
+ model = new Model(monaco, f);
done();
});
@@ -21,21 +24,22 @@ describe('Multi-file editor library model', () => {
model.dispose();
});
- it('creates original model & new model', () => {
+ it('creates original model & base model & new model', () => {
expect(model.originalModel).not.toBeNull();
expect(model.model).not.toBeNull();
+ expect(model.baseModel).not.toBeNull();
});
it('adds eventHub listener', () => {
expect(eventHub.$on).toHaveBeenCalledWith(
- `editor.update.model.dispose.${model.file.path}`,
+ `editor.update.model.dispose.${model.file.key}`,
jasmine.anything(),
);
});
describe('path', () => {
it('returns file path', () => {
- expect(model.path).toBe('path');
+ expect(model.path).toBe(model.file.key);
});
});
@@ -51,6 +55,12 @@ describe('Multi-file editor library model', () => {
});
});
+ describe('getBaseModel', () => {
+ it('returns base model', () => {
+ expect(model.getBaseModel()).toBe(model.baseModel);
+ });
+ });
+
describe('setValue', () => {
it('updates models value', () => {
model.setValue('testing 123');
@@ -64,7 +74,7 @@ describe('Multi-file editor library model', () => {
model.onChange(() => {});
expect(model.events.size).toBe(1);
- expect(model.events.keys().next().value).toBe('path');
+ expect(model.events.keys().next().value).toBe(model.file.key);
});
it('calls callback on change', done => {
@@ -105,7 +115,7 @@ describe('Multi-file editor library model', () => {
model.dispose();
expect(eventHub.$off).toHaveBeenCalledWith(
- `editor.update.model.dispose.${model.file.path}`,
+ `editor.update.model.dispose.${model.file.key}`,
jasmine.anything(),
);
});
diff --git a/spec/javascripts/ide/lib/decorations/controller_spec.js b/spec/javascripts/ide/lib/decorations/controller_spec.js
index 092170d086a..aec325e26a9 100644
--- a/spec/javascripts/ide/lib/decorations/controller_spec.js
+++ b/spec/javascripts/ide/lib/decorations/controller_spec.js
@@ -36,9 +36,7 @@ describe('Multi-file editor library decorations controller', () => {
});
it('returns decorations by model URL', () => {
- controller.addDecorations(model, 'key', [
- { decoration: 'decorationValue' },
- ]);
+ controller.addDecorations(model, 'key', [{ decoration: 'decorationValue' }]);
const decorations = controller.getAllDecorationsForModel(model);
@@ -48,39 +46,29 @@ describe('Multi-file editor library decorations controller', () => {
describe('addDecorations', () => {
it('caches decorations in a new map', () => {
- controller.addDecorations(model, 'key', [
- { decoration: 'decorationValue' },
- ]);
+ controller.addDecorations(model, 'key', [{ decoration: 'decorationValue' }]);
expect(controller.decorations.size).toBe(1);
});
it('does not create new cache model', () => {
- controller.addDecorations(model, 'key', [
- { decoration: 'decorationValue' },
- ]);
- controller.addDecorations(model, 'key', [
- { decoration: 'decorationValue2' },
- ]);
+ controller.addDecorations(model, 'key', [{ decoration: 'decorationValue' }]);
+ controller.addDecorations(model, 'key', [{ decoration: 'decorationValue2' }]);
expect(controller.decorations.size).toBe(1);
});
it('caches decorations by model URL', () => {
- controller.addDecorations(model, 'key', [
- { decoration: 'decorationValue' },
- ]);
+ controller.addDecorations(model, 'key', [{ decoration: 'decorationValue' }]);
expect(controller.decorations.size).toBe(1);
- expect(controller.decorations.keys().next().value).toBe('path');
+ expect(controller.decorations.keys().next().value).toBe('path--path');
});
it('calls decorate method', () => {
spyOn(controller, 'decorate');
- controller.addDecorations(model, 'key', [
- { decoration: 'decorationValue' },
- ]);
+ controller.addDecorations(model, 'key', [{ decoration: 'decorationValue' }]);
expect(controller.decorate).toHaveBeenCalled();
});
@@ -92,10 +80,7 @@ describe('Multi-file editor library decorations controller', () => {
controller.decorate(model);
- expect(controller.editor.instance.deltaDecorations).toHaveBeenCalledWith(
- [],
- [],
- );
+ expect(controller.editor.instance.deltaDecorations).toHaveBeenCalledWith([], []);
});
it('caches decorations', () => {
@@ -111,15 +96,13 @@ describe('Multi-file editor library decorations controller', () => {
controller.decorate(model);
- expect(controller.editorDecorations.keys().next().value).toBe('path');
+ expect(controller.editorDecorations.keys().next().value).toBe('path--path');
});
});
describe('dispose', () => {
it('clears cached decorations', () => {
- controller.addDecorations(model, 'key', [
- { decoration: 'decorationValue' },
- ]);
+ controller.addDecorations(model, 'key', [{ decoration: 'decorationValue' }]);
controller.dispose();
@@ -127,9 +110,7 @@ describe('Multi-file editor library decorations controller', () => {
});
it('clears cached editorDecorations', () => {
- controller.addDecorations(model, 'key', [
- { decoration: 'decorationValue' },
- ]);
+ controller.addDecorations(model, 'key', [{ decoration: 'decorationValue' }]);
controller.dispose();
diff --git a/spec/javascripts/ide/lib/diff/controller_spec.js b/spec/javascripts/ide/lib/diff/controller_spec.js
index c8f3e9f4830..ff73240734e 100644
--- a/spec/javascripts/ide/lib/diff/controller_spec.js
+++ b/spec/javascripts/ide/lib/diff/controller_spec.js
@@ -131,7 +131,7 @@ describe('Multi-file editor library dirty diff controller', () => {
it('adds decorations into decorations controller', () => {
spyOn(controller.decorationsController, 'addDecorations');
- controller.decorate({ data: { changes: [], path: 'path' } });
+ controller.decorate({ data: { changes: [], path: model.path } });
expect(
controller.decorationsController.addDecorations,
@@ -145,7 +145,7 @@ describe('Multi-file editor library dirty diff controller', () => {
);
controller.decorate({
- data: { changes: computeDiff('123', '1234'), path: 'path' },
+ data: { changes: computeDiff('123', '1234'), path: model.path },
});
expect(spy).toHaveBeenCalledWith(
diff --git a/spec/javascripts/ide/lib/editor_spec.js b/spec/javascripts/ide/lib/editor_spec.js
index 2ccd87de1a7..75e6f0f54ec 100644
--- a/spec/javascripts/ide/lib/editor_spec.js
+++ b/spec/javascripts/ide/lib/editor_spec.js
@@ -76,7 +76,8 @@ describe('Multi-file editor library', () => {
occurrencesHighlight: false,
renderLineHighlight: 'none',
hideCursorInOverviewRuler: true,
- wordWrap: 'bounded',
+ wordWrap: 'on',
+ renderSideBySide: true,
});
});
});
@@ -143,6 +144,31 @@ describe('Multi-file editor library', () => {
});
});
+ describe('attachMergeRequestModel', () => {
+ let model;
+
+ beforeEach(() => {
+ instance.createDiffInstance(document.createElement('div'));
+
+ const f = file();
+ f.mrChanges = { diff: 'ABC' };
+ f.baseRaw = 'testing';
+
+ model = instance.createModel(f);
+ });
+
+ it('sets original & modified', () => {
+ spyOn(instance.instance, 'setModel');
+
+ instance.attachMergeRequestModel(model);
+
+ expect(instance.instance.setModel).toHaveBeenCalledWith({
+ original: model.getBaseModel(),
+ modified: model.getModel(),
+ });
+ });
+ });
+
describe('clearEditor', () => {
it('resets the editor model', () => {
instance.createInstance(document.createElement('div'));
@@ -190,4 +216,56 @@ describe('Multi-file editor library', () => {
expect(instance.decorationsController.dispose).not.toHaveBeenCalled();
});
});
+
+ describe('updateDiffView', () => {
+ describe('edit mode', () => {
+ it('does not update options', () => {
+ instance.createInstance(holder);
+
+ spyOn(instance.instance, 'updateOptions');
+
+ instance.updateDiffView();
+
+ expect(instance.instance.updateOptions).not.toHaveBeenCalled();
+ });
+ });
+
+ describe('diff mode', () => {
+ beforeEach(() => {
+ instance.createDiffInstance(holder);
+
+ spyOn(instance.instance, 'updateOptions').and.callThrough();
+ });
+
+ it('sets renderSideBySide to false if el is less than 700 pixels', () => {
+ spyOnProperty(instance.instance.getDomNode(), 'offsetWidth').and.returnValue(600);
+
+ expect(instance.instance.updateOptions).not.toHaveBeenCalledWith({
+ renderSideBySide: false,
+ });
+ });
+
+ it('sets renderSideBySide to false if el is more than 700 pixels', () => {
+ spyOnProperty(instance.instance.getDomNode(), 'offsetWidth').and.returnValue(800);
+
+ expect(instance.instance.updateOptions).not.toHaveBeenCalledWith({
+ renderSideBySide: true,
+ });
+ });
+ });
+ });
+
+ describe('isDiffEditorType', () => {
+ it('returns true when diff editor', () => {
+ instance.createDiffInstance(holder);
+
+ expect(instance.isDiffEditorType).toBe(true);
+ });
+
+ it('returns false when not diff editor', () => {
+ instance.createInstance(holder);
+
+ expect(instance.isDiffEditorType).toBe(false);
+ });
+ });
});
diff --git a/spec/javascripts/ide/stores/actions/file_spec.js b/spec/javascripts/ide/stores/actions/file_spec.js
index 5b7c8365641..479ed7ce49e 100644
--- a/spec/javascripts/ide/stores/actions/file_spec.js
+++ b/spec/javascripts/ide/stores/actions/file_spec.js
@@ -5,7 +5,7 @@ import router from '~/ide/ide_router';
import eventHub from '~/ide/eventhub';
import { file, resetStore } from '../../helpers';
-describe('Multi-file store file actions', () => {
+describe('IDE store file actions', () => {
beforeEach(() => {
spyOn(router, 'push');
});
@@ -29,7 +29,7 @@ describe('Multi-file store file actions', () => {
it('closes open files', done => {
store
- .dispatch('closeFile', localFile.path)
+ .dispatch('closeFile', localFile)
.then(() => {
expect(localFile.opened).toBeFalsy();
expect(localFile.active).toBeFalsy();
@@ -44,7 +44,7 @@ describe('Multi-file store file actions', () => {
store.state.changedFiles.push(localFile);
store
- .dispatch('closeFile', localFile.path)
+ .dispatch('closeFile', localFile)
.then(Vue.nextTick)
.then(() => {
expect(store.state.openFiles.length).toBe(0);
@@ -65,7 +65,7 @@ describe('Multi-file store file actions', () => {
store.state.entries[f.path] = f;
store
- .dispatch('closeFile', localFile.path)
+ .dispatch('closeFile', localFile)
.then(Vue.nextTick)
.then(() => {
expect(router.push).toHaveBeenCalledWith(`/project${f.url}`);
@@ -74,6 +74,22 @@ describe('Multi-file store file actions', () => {
})
.catch(done.fail);
});
+
+ it('removes file if it pending', done => {
+ store.state.openFiles.push({
+ ...localFile,
+ pending: true,
+ });
+
+ store
+ .dispatch('closeFile', localFile)
+ .then(() => {
+ expect(store.state.openFiles.length).toBe(0);
+
+ done();
+ })
+ .catch(done.fail);
+ });
});
describe('setFileActive', () => {
@@ -189,7 +205,7 @@ describe('Multi-file store file actions', () => {
it('calls the service', done => {
store
- .dispatch('getFileData', localFile)
+ .dispatch('getFileData', { path: localFile.path })
.then(() => {
expect(service.getFileData).toHaveBeenCalledWith('getFileDataURL');
@@ -200,7 +216,7 @@ describe('Multi-file store file actions', () => {
it('sets the file data', done => {
store
- .dispatch('getFileData', localFile)
+ .dispatch('getFileData', { path: localFile.path })
.then(() => {
expect(localFile.blamePath).toBe('blame_path');
@@ -211,7 +227,7 @@ describe('Multi-file store file actions', () => {
it('sets document title', done => {
store
- .dispatch('getFileData', localFile)
+ .dispatch('getFileData', { path: localFile.path })
.then(() => {
expect(document.title).toBe('testing getFileData');
@@ -222,7 +238,7 @@ describe('Multi-file store file actions', () => {
it('sets the file as active', done => {
store
- .dispatch('getFileData', localFile)
+ .dispatch('getFileData', { path: localFile.path })
.then(() => {
expect(localFile.active).toBeTruthy();
@@ -231,9 +247,20 @@ describe('Multi-file store file actions', () => {
.catch(done.fail);
});
+ it('sets the file not as active if we pass makeFileActive false', done => {
+ store
+ .dispatch('getFileData', { path: localFile.path, makeFileActive: false })
+ .then(() => {
+ expect(localFile.active).toBeFalsy();
+
+ done();
+ })
+ .catch(done.fail);
+ });
+
it('adds the file to open files', done => {
store
- .dispatch('getFileData', localFile)
+ .dispatch('getFileData', { path: localFile.path })
.then(() => {
expect(store.state.openFiles.length).toBe(1);
expect(store.state.openFiles[0].name).toBe(localFile.name);
@@ -256,7 +283,7 @@ describe('Multi-file store file actions', () => {
it('calls getRawFileData service method', done => {
store
- .dispatch('getRawFileData', tmpFile)
+ .dispatch('getRawFileData', { path: tmpFile.path })
.then(() => {
expect(service.getRawFileData).toHaveBeenCalledWith(tmpFile);
@@ -267,7 +294,7 @@ describe('Multi-file store file actions', () => {
it('updates file raw data', done => {
store
- .dispatch('getRawFileData', tmpFile)
+ .dispatch('getRawFileData', { path: tmpFile.path })
.then(() => {
expect(tmpFile.raw).toBe('raw');
@@ -275,6 +302,22 @@ describe('Multi-file store file actions', () => {
})
.catch(done.fail);
});
+
+ it('calls also getBaseRawFileData service method', done => {
+ spyOn(service, 'getBaseRawFileData').and.returnValue(Promise.resolve('baseraw'));
+
+ tmpFile.mrChange = { new_file: false };
+
+ store
+ .dispatch('getRawFileData', { path: tmpFile.path, baseSha: 'SHA' })
+ .then(() => {
+ expect(service.getBaseRawFileData).toHaveBeenCalledWith(tmpFile, 'SHA');
+ expect(tmpFile.baseRaw).toBe('baseraw');
+
+ done();
+ })
+ .catch(done.fail);
+ });
});
describe('changeFileContent', () => {
@@ -418,4 +461,113 @@ describe('Multi-file store file actions', () => {
.catch(done.fail);
});
});
+
+ describe('openPendingTab', () => {
+ let f;
+
+ beforeEach(() => {
+ f = {
+ ...file(),
+ projectId: '123',
+ };
+
+ store.state.entries[f.path] = f;
+ });
+
+ it('makes file pending in openFiles', done => {
+ store
+ .dispatch('openPendingTab', f)
+ .then(() => {
+ expect(store.state.openFiles[0].pending).toBe(true);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('returns true when opened', done => {
+ store
+ .dispatch('openPendingTab', f)
+ .then(added => {
+ expect(added).toBe(true);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('pushes router URL when added', done => {
+ store.state.currentBranchId = 'master';
+
+ store
+ .dispatch('openPendingTab', f)
+ .then(() => {
+ expect(router.push).toHaveBeenCalledWith('/project/123/tree/master/');
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('calls scrollToTab', done => {
+ const scrollToTabSpy = jasmine.createSpy('scrollToTab');
+ const oldScrollToTab = store._actions.scrollToTab; // eslint-disable-line
+ store._actions.scrollToTab = [scrollToTabSpy]; // eslint-disable-line
+
+ store
+ .dispatch('openPendingTab', f)
+ .then(() => {
+ expect(scrollToTabSpy).toHaveBeenCalled();
+ store._actions.scrollToTab = oldScrollToTab; // eslint-disable-line
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('returns false when passed in file is active & viewer is diff', done => {
+ f.active = true;
+ store.state.openFiles.push(f);
+ store.state.viewer = 'diff';
+
+ store
+ .dispatch('openPendingTab', f)
+ .then(added => {
+ expect(added).toBe(false);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
+
+ describe('removePendingTab', () => {
+ let f;
+
+ beforeEach(() => {
+ spyOn(eventHub, '$emit');
+
+ f = {
+ ...file('pendingFile'),
+ pending: true,
+ };
+ });
+
+ it('removes pending file from open files', done => {
+ store.state.openFiles.push(f);
+
+ store
+ .dispatch('removePendingTab', f)
+ .then(() => {
+ expect(store.state.openFiles.length).toBe(0);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('emits event to dispose model', done => {
+ store
+ .dispatch('removePendingTab', f)
+ .then(() => {
+ expect(eventHub.$emit).toHaveBeenCalledWith(`editor.update.model.dispose.${f.key}`);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+ });
});
diff --git a/spec/javascripts/ide/stores/actions/merge_request_spec.js b/spec/javascripts/ide/stores/actions/merge_request_spec.js
new file mode 100644
index 00000000000..b4ec4a0b173
--- /dev/null
+++ b/spec/javascripts/ide/stores/actions/merge_request_spec.js
@@ -0,0 +1,110 @@
+import store from '~/ide/stores';
+import service from '~/ide/services';
+import { resetStore } from '../../helpers';
+
+describe('IDE store merge request actions', () => {
+ beforeEach(() => {
+ store.state.projects.abcproject = {
+ mergeRequests: {},
+ };
+ });
+
+ afterEach(() => {
+ resetStore(store);
+ });
+
+ describe('getMergeRequestData', () => {
+ beforeEach(() => {
+ spyOn(service, 'getProjectMergeRequestData').and.returnValue(
+ Promise.resolve({ data: { title: 'mergerequest' } }),
+ );
+ });
+
+ it('calls getProjectMergeRequestData service method', done => {
+ store
+ .dispatch('getMergeRequestData', { projectId: 'abcproject', mergeRequestId: 1 })
+ .then(() => {
+ expect(service.getProjectMergeRequestData).toHaveBeenCalledWith('abcproject', 1);
+
+ done();
+ })
+ .catch(done.fail);
+ });
+
+ it('sets the Merge Request Object', done => {
+ store
+ .dispatch('getMergeRequestData', { projectId: 'abcproject', mergeRequestId: 1 })
+ .then(() => {
+ expect(store.state.projects.abcproject.mergeRequests['1'].title).toBe('mergerequest');
+ expect(store.state.currentMergeRequestId).toBe(1);
+
+ done();
+ })
+ .catch(done.fail);
+ });
+ });
+
+ describe('getMergeRequestChanges', () => {
+ beforeEach(() => {
+ spyOn(service, 'getProjectMergeRequestChanges').and.returnValue(
+ Promise.resolve({ data: { title: 'mergerequest' } }),
+ );
+
+ store.state.projects.abcproject.mergeRequests['1'] = { changes: [] };
+ });
+
+ it('calls getProjectMergeRequestChanges service method', done => {
+ store
+ .dispatch('getMergeRequestChanges', { projectId: 'abcproject', mergeRequestId: 1 })
+ .then(() => {
+ expect(service.getProjectMergeRequestChanges).toHaveBeenCalledWith('abcproject', 1);
+
+ done();
+ })
+ .catch(done.fail);
+ });
+
+ it('sets the Merge Request Changes Object', done => {
+ store
+ .dispatch('getMergeRequestChanges', { projectId: 'abcproject', mergeRequestId: 1 })
+ .then(() => {
+ expect(store.state.projects.abcproject.mergeRequests['1'].changes.title).toBe(
+ 'mergerequest',
+ );
+ done();
+ })
+ .catch(done.fail);
+ });
+ });
+
+ describe('getMergeRequestVersions', () => {
+ beforeEach(() => {
+ spyOn(service, 'getProjectMergeRequestVersions').and.returnValue(
+ Promise.resolve({ data: [{ id: 789 }] }),
+ );
+
+ store.state.projects.abcproject.mergeRequests['1'] = { versions: [] };
+ });
+
+ it('calls getProjectMergeRequestVersions service method', done => {
+ store
+ .dispatch('getMergeRequestVersions', { projectId: 'abcproject', mergeRequestId: 1 })
+ .then(() => {
+ expect(service.getProjectMergeRequestVersions).toHaveBeenCalledWith('abcproject', 1);
+
+ done();
+ })
+ .catch(done.fail);
+ });
+
+ it('sets the Merge Request Versions Object', done => {
+ store
+ .dispatch('getMergeRequestVersions', { projectId: 'abcproject', mergeRequestId: 1 })
+ .then(() => {
+ expect(store.state.projects.abcproject.mergeRequests['1'].versions.length).toBe(1);
+ done();
+ })
+ .catch(done.fail);
+ });
+ });
+});
diff --git a/spec/javascripts/ide/stores/actions/tree_spec.js b/spec/javascripts/ide/stores/actions/tree_spec.js
index 381f038067b..e0ef57a3966 100644
--- a/spec/javascripts/ide/stores/actions/tree_spec.js
+++ b/spec/javascripts/ide/stores/actions/tree_spec.js
@@ -68,9 +68,7 @@ describe('Multi-file store tree actions', () => {
expect(projectTree.tree[0].tree[1].name).toBe('fileinfolder.js');
expect(projectTree.tree[1].type).toBe('blob');
expect(projectTree.tree[0].tree[0].tree[0].type).toBe('blob');
- expect(projectTree.tree[0].tree[0].tree[0].name).toBe(
- 'fileinsubfolder.js',
- );
+ expect(projectTree.tree[0].tree[0].tree[0].name).toBe('fileinsubfolder.js');
done();
})
@@ -132,9 +130,7 @@ describe('Multi-file store tree actions', () => {
store
.dispatch('getLastCommitData', projectTree)
.then(() => {
- expect(service.getTreeLastCommit).toHaveBeenCalledWith(
- 'lastcommitpath',
- );
+ expect(service.getTreeLastCommit).toHaveBeenCalledWith('lastcommitpath');
done();
})
@@ -160,9 +156,7 @@ describe('Multi-file store tree actions', () => {
.dispatch('getLastCommitData', projectTree)
.then(Vue.nextTick)
.then(() => {
- expect(projectTree.tree[0].lastCommit.message).not.toBe(
- 'commit message',
- );
+ expect(projectTree.tree[0].lastCommit.message).not.toBe('commit message');
done();
})
diff --git a/spec/javascripts/ide/stores/getters_spec.js b/spec/javascripts/ide/stores/getters_spec.js
index a613f3a21cc..33733b97dff 100644
--- a/spec/javascripts/ide/stores/getters_spec.js
+++ b/spec/javascripts/ide/stores/getters_spec.js
@@ -2,7 +2,7 @@ import * as getters from '~/ide/stores/getters';
import state from '~/ide/stores/state';
import { file } from '../helpers';
-describe('Multi-file store getters', () => {
+describe('IDE store getters', () => {
let localState;
beforeEach(() => {
@@ -52,4 +52,24 @@ describe('Multi-file store getters', () => {
expect(modifiedFiles[0].name).toBe('added');
});
});
+
+ describe('currentMergeRequest', () => {
+ it('returns Current Merge Request', () => {
+ localState.currentProjectId = 'abcproject';
+ localState.currentMergeRequestId = 1;
+ localState.projects.abcproject = {
+ mergeRequests: {
+ 1: { mergeId: 1 },
+ },
+ };
+
+ expect(getters.currentMergeRequest(localState).mergeId).toBe(1);
+ });
+
+ it('returns null if no active Merge Request was found', () => {
+ localState.currentProjectId = 'otherproject';
+
+ expect(getters.currentMergeRequest(localState)).toBeNull();
+ });
+ });
});
diff --git a/spec/javascripts/ide/stores/mutations/file_spec.js b/spec/javascripts/ide/stores/mutations/file_spec.js
index 131380248e8..bf9d5166d0a 100644
--- a/spec/javascripts/ide/stores/mutations/file_spec.js
+++ b/spec/javascripts/ide/stores/mutations/file_spec.js
@@ -2,7 +2,7 @@ import mutations from '~/ide/stores/mutations/file';
import state from '~/ide/stores/state';
import { file } from '../../helpers';
-describe('Multi-file store file mutations', () => {
+describe('IDE store file mutations', () => {
let localState;
let localFile;
@@ -22,6 +22,21 @@ describe('Multi-file store file mutations', () => {
expect(localFile.active).toBeTruthy();
});
+
+ it('sets pending tab as not active', () => {
+ localState.openFiles.push({
+ ...localFile,
+ pending: true,
+ active: true,
+ });
+
+ mutations.SET_FILE_ACTIVE(localState, {
+ path: localFile.path,
+ active: true,
+ });
+
+ expect(localState.openFiles[0].active).toBe(false);
+ });
});
describe('TOGGLE_FILE_OPEN', () => {
@@ -62,6 +77,8 @@ describe('Multi-file store file mutations', () => {
expect(localFile.rawPath).toBe('raw');
expect(localFile.binary).toBeTruthy();
expect(localFile.renderError).toBe('render_error');
+ expect(localFile.raw).toBeNull();
+ expect(localFile.baseRaw).toBeNull();
});
});
@@ -76,6 +93,17 @@ describe('Multi-file store file mutations', () => {
});
});
+ describe('SET_FILE_BASE_RAW_DATA', () => {
+ it('sets raw data from base branch', () => {
+ mutations.SET_FILE_BASE_RAW_DATA(localState, {
+ file: localFile,
+ baseRaw: 'testing',
+ });
+
+ expect(localFile.baseRaw).toBe('testing');
+ });
+ });
+
describe('UPDATE_FILE_CONTENT', () => {
beforeEach(() => {
localFile.raw = 'test';
@@ -112,6 +140,17 @@ describe('Multi-file store file mutations', () => {
});
});
+ describe('SET_FILE_MERGE_REQUEST_CHANGE', () => {
+ it('sets file mr change', () => {
+ mutations.SET_FILE_MERGE_REQUEST_CHANGE(localState, {
+ file: localFile,
+ mrChange: { diff: 'ABC' },
+ });
+
+ expect(localFile.mrChange.diff).toBe('ABC');
+ });
+ });
+
describe('DISCARD_FILE_CHANGES', () => {
beforeEach(() => {
localFile.content = 'test';
@@ -154,4 +193,80 @@ describe('Multi-file store file mutations', () => {
expect(localFile.changed).toBeTruthy();
});
});
+
+ describe('SET_FILE_VIEWMODE', () => {
+ it('updates file view mode', () => {
+ mutations.SET_FILE_VIEWMODE(localState, {
+ file: localFile,
+ viewMode: 'preview',
+ });
+
+ expect(localFile.viewMode).toBe('preview');
+ });
+ });
+
+ describe('ADD_PENDING_TAB', () => {
+ beforeEach(() => {
+ const f = {
+ ...file('openFile'),
+ path: 'openFile',
+ active: true,
+ opened: true,
+ };
+
+ localState.entries[f.path] = f;
+ localState.openFiles.push(f);
+ });
+
+ it('adds file into openFiles as pending', () => {
+ mutations.ADD_PENDING_TAB(localState, { file: localFile });
+
+ expect(localState.openFiles.length).toBe(2);
+ expect(localState.openFiles[1].pending).toBe(true);
+ expect(localState.openFiles[1].key).toBe(`pending-${localFile.key}`);
+ });
+
+ it('updates open file to pending', () => {
+ mutations.ADD_PENDING_TAB(localState, { file: localState.openFiles[0] });
+
+ expect(localState.openFiles.length).toBe(1);
+ });
+
+ it('updates pending open file to active', () => {
+ localState.openFiles.push({
+ ...localFile,
+ pending: true,
+ });
+
+ mutations.ADD_PENDING_TAB(localState, { file: localFile });
+
+ expect(localState.openFiles[1].pending).toBe(true);
+ expect(localState.openFiles[1].active).toBe(true);
+ });
+
+ it('sets all openFiles to not active', () => {
+ mutations.ADD_PENDING_TAB(localState, { file: localFile });
+
+ expect(localState.openFiles.length).toBe(2);
+
+ localState.openFiles.forEach(f => {
+ if (f.pending) {
+ expect(f.active).toBe(true);
+ } else {
+ expect(f.active).toBe(false);
+ }
+ });
+ });
+ });
+
+ describe('REMOVE_PENDING_TAB', () => {
+ it('removes pending tab from openFiles', () => {
+ localFile.key = 'testing';
+ localState.openFiles.push(localFile);
+
+ mutations.REMOVE_PENDING_TAB(localState, localFile);
+
+ expect(localState.openFiles.length).toBe(0);
+ });
+ });
});
diff --git a/spec/javascripts/ide/stores/mutations/merge_request_spec.js b/spec/javascripts/ide/stores/mutations/merge_request_spec.js
new file mode 100644
index 00000000000..f724bf464f5
--- /dev/null
+++ b/spec/javascripts/ide/stores/mutations/merge_request_spec.js
@@ -0,0 +1,65 @@
+import mutations from '~/ide/stores/mutations/merge_request';
+import state from '~/ide/stores/state';
+
+describe('IDE store merge request mutations', () => {
+ let localState;
+
+ beforeEach(() => {
+ localState = state();
+ localState.projects = { abcproject: { mergeRequests: {} } };
+
+ mutations.SET_MERGE_REQUEST(localState, {
+ projectPath: 'abcproject',
+ mergeRequestId: 1,
+ mergeRequest: {
+ title: 'mr',
+ },
+ });
+ });
+
+ describe('SET_CURRENT_MERGE_REQUEST', () => {
+ it('sets current merge request', () => {
+ mutations.SET_CURRENT_MERGE_REQUEST(localState, 2);
+
+ expect(localState.currentMergeRequestId).toBe(2);
+ });
+ });
+
+ describe('SET_MERGE_REQUEST', () => {
+ it('setsmerge request data', () => {
+ const newMr = localState.projects.abcproject.mergeRequests[1];
+
+ expect(newMr.title).toBe('mr');
+ expect(newMr.active).toBeTruthy();
+ });
+ });
+
+ describe('SET_MERGE_REQUEST_CHANGES', () => {
+ it('sets merge request changes', () => {
+ mutations.SET_MERGE_REQUEST_CHANGES(localState, {
+ projectPath: 'abcproject',
+ mergeRequestId: 1,
+ changes: {
+ diff: 'abc',
+ },
+ });
+
+ const newMr = localState.projects.abcproject.mergeRequests[1];
+ expect(newMr.changes.diff).toBe('abc');
+ });
+ });
+
+ describe('SET_MERGE_REQUEST_VERSIONS', () => {
+ it('sets merge request versions', () => {
+ mutations.SET_MERGE_REQUEST_VERSIONS(localState, {
+ projectPath: 'abcproject',
+ mergeRequestId: 1,
+ versions: [{ id: 123 }],
+ });
+
+ const newMr = localState.projects.abcproject.mergeRequests[1];
+ expect(newMr.versions.length).toBe(1);
+ expect(newMr.versions[0].id).toBe(123);
+ });
+ });
+});
diff --git a/spec/javascripts/lib/utils/text_utility_spec.js b/spec/javascripts/lib/utils/text_utility_spec.js
index e57a55fa71a..ae00fb76714 100644
--- a/spec/javascripts/lib/utils/text_utility_spec.js
+++ b/spec/javascripts/lib/utils/text_utility_spec.js
@@ -65,11 +65,15 @@ describe('text_utility', () => {
describe('stripHtml', () => {
it('replaces html tag with the default replacement', () => {
- expect(textUtils.stripHtml('This is a text with <p>html</p>.')).toEqual('This is a text with html.');
+ expect(textUtils.stripHtml('This is a text with <p>html</p>.')).toEqual(
+ 'This is a text with html.',
+ );
});
it('replaces html tags with the provided replacement', () => {
- expect(textUtils.stripHtml('This is a text with <p>html</p>.', ' ')).toEqual('This is a text with html .');
+ expect(textUtils.stripHtml('This is a text with <p>html</p>.', ' ')).toEqual(
+ 'This is a text with html .',
+ );
});
});
@@ -78,4 +82,10 @@ describe('text_utility', () => {
expect(textUtils.convertToCamelCase('snake_case')).toBe('snakeCase');
});
});
+
+ describe('convertToSentenceCase', () => {
+ it('converts Sentence Case to Sentence case', () => {
+ expect(textUtils.convertToSentenceCase('Hello World')).toBe('Hello world');
+ });
+ });
});
diff --git a/spec/javascripts/matchers.js b/spec/javascripts/matchers.js
new file mode 100644
index 00000000000..7cc5e753c22
--- /dev/null
+++ b/spec/javascripts/matchers.js
@@ -0,0 +1,35 @@
+export default {
+ toHaveSpriteIcon: () => ({
+ compare(element, iconName) {
+ if (!iconName) {
+ throw new Error('toHaveSpriteIcon is missing iconName argument!');
+ }
+
+ if (!(element instanceof HTMLElement)) {
+ throw new Error(`${element} is not a DOM element!`);
+ }
+
+ const iconReferences = [].slice.apply(element.querySelectorAll('svg use'));
+ const matchingIcon = iconReferences.find(reference => reference.getAttribute('xlink:href').endsWith(`#${iconName}`));
+ const result = {
+ pass: !!matchingIcon,
+ };
+
+ if (result.pass) {
+ result.message = `${element.outerHTML} contains the sprite icon "${iconName}"!`;
+ } else {
+ result.message = `${element.outerHTML} does not contain the sprite icon "${iconName}"!`;
+
+ const existingIcons = iconReferences.map((reference) => {
+ const iconUrl = reference.getAttribute('xlink:href');
+ return `"${iconUrl.replace(/^.+#/, '')}"`;
+ });
+ if (existingIcons.length > 0) {
+ result.message += ` (only found ${existingIcons.join(',')})`;
+ }
+ }
+
+ return result;
+ },
+ }),
+};
diff --git a/spec/javascripts/monitoring/graph/axis_spec.js b/spec/javascripts/monitoring/graph/axis_spec.js
new file mode 100644
index 00000000000..c7adba00637
--- /dev/null
+++ b/spec/javascripts/monitoring/graph/axis_spec.js
@@ -0,0 +1,65 @@
+import Vue from 'vue';
+import GraphAxis from '~/monitoring/components/graph/axis.vue';
+import measurements from '~/monitoring/utils/measurements';
+
+const createComponent = propsData => {
+ const Component = Vue.extend(GraphAxis);
+
+ return new Component({
+ propsData,
+ }).$mount();
+};
+
+const defaultValuesComponent = {
+ graphWidth: 500,
+ graphHeight: 300,
+ graphHeightOffset: 120,
+ margin: measurements.large.margin,
+ measurements: measurements.large,
+ yAxisLabel: 'Values',
+ unitOfDisplay: 'MB',
+};
+
+function getTextFromNode(component, selector) {
+ return component.$el.querySelector(selector).firstChild.nodeValue.trim();
+}
+
+describe('Axis', () => {
+ describe('Computed props', () => {
+ it('textTransform', () => {
+ const component = createComponent(defaultValuesComponent);
+
+ expect(component.textTransform).toContain('translate(15, 120) rotate(-90)');
+ });
+
+ it('xPosition', () => {
+ const component = createComponent(defaultValuesComponent);
+
+ expect(component.xPosition).toEqual(180);
+ });
+
+ it('yPosition', () => {
+ const component = createComponent(defaultValuesComponent);
+
+ expect(component.yPosition).toEqual(240);
+ });
+
+ it('rectTransform', () => {
+ const component = createComponent(defaultValuesComponent);
+
+ expect(component.rectTransform).toContain('translate(0, 120) rotate(-90)');
+ });
+ });
+
+ it('has 2 rect-axis-text rect svg elements', () => {
+ const component = createComponent(defaultValuesComponent);
+
+ expect(component.$el.querySelectorAll('.rect-axis-text').length).toEqual(2);
+ });
+
+ it('contains text to signal the usage, title and time with multiple time series', () => {
+ const component = createComponent(defaultValuesComponent);
+
+ expect(getTextFromNode(component, '.y-label-text')).toEqual('Values (MB)');
+ });
+});
diff --git a/spec/javascripts/monitoring/graph/legend_spec.js b/spec/javascripts/monitoring/graph/legend_spec.js
index 145c8db28d5..abcc51aa077 100644
--- a/spec/javascripts/monitoring/graph/legend_spec.js
+++ b/spec/javascripts/monitoring/graph/legend_spec.js
@@ -1,106 +1,44 @@
import Vue from 'vue';
import GraphLegend from '~/monitoring/components/graph/legend.vue';
-import measurements from '~/monitoring/utils/measurements';
import createTimeSeries from '~/monitoring/utils/multiple_time_series';
+import mountComponent from 'spec/helpers/vue_mount_component_helper';
import { singleRowMetricsMultipleSeries, convertDatesMultipleSeries } from '../mock_data';
-const createComponent = (propsData) => {
- const Component = Vue.extend(GraphLegend);
-
- return new Component({
- propsData,
- }).$mount();
-};
-
const convertedMetrics = convertDatesMultipleSeries(singleRowMetricsMultipleSeries);
-const defaultValuesComponent = {
- graphWidth: 500,
- graphHeight: 300,
- graphHeightOffset: 120,
- margin: measurements.large.margin,
- measurements: measurements.large,
- areaColorRgb: '#f0f0f0',
- legendTitle: 'Title',
- yAxisLabel: 'Values',
- metricUsage: 'Value',
- unitOfDisplay: 'Req/Sec',
- currentDataIndex: 0,
-};
+const defaultValuesComponent = {};
-const timeSeries = createTimeSeries(convertedMetrics[0].queries,
- defaultValuesComponent.graphWidth, defaultValuesComponent.graphHeight,
- defaultValuesComponent.graphHeightOffset);
+const timeSeries = createTimeSeries(convertedMetrics[0].queries, 500, 300, 120);
defaultValuesComponent.timeSeries = timeSeries;
-function getTextFromNode(component, selector) {
- return component.$el.querySelector(selector).firstChild.nodeValue.trim();
-}
-
-describe('GraphLegend', () => {
- describe('Computed props', () => {
- it('textTransform', () => {
- const component = createComponent(defaultValuesComponent);
-
- expect(component.textTransform).toContain('translate(15, 120) rotate(-90)');
- });
-
- it('xPosition', () => {
- const component = createComponent(defaultValuesComponent);
-
- expect(component.xPosition).toEqual(180);
- });
-
- it('yPosition', () => {
- const component = createComponent(defaultValuesComponent);
-
- expect(component.yPosition).toEqual(240);
- });
-
- it('rectTransform', () => {
- const component = createComponent(defaultValuesComponent);
+describe('Legend Component', () => {
+ let vm;
+ let Legend;
- expect(component.rectTransform).toContain('translate(0, 120) rotate(-90)');
- });
+ beforeEach(() => {
+ Legend = Vue.extend(GraphLegend);
});
- describe('methods', () => {
- it('translateLegendGroup should only change Y direction', () => {
- const component = createComponent(defaultValuesComponent);
-
- const translatedCoordinate = component.translateLegendGroup(1);
- expect(translatedCoordinate.indexOf('translate(0, ')).not.toEqual(-1);
+ describe('View', () => {
+ beforeEach(() => {
+ vm = mountComponent(Legend, {
+ legendTitle: 'legend',
+ timeSeries,
+ currentDataIndex: 0,
+ unitOfDisplay: 'Req/Sec',
+ });
});
- it('formatMetricUsage should contain the unit of display and the current value selected via "currentDataIndex"', () => {
- const component = createComponent(defaultValuesComponent);
+ it('should render the usage, title and time with multiple time series', () => {
+ const titles = vm.$el.querySelectorAll('.legend-metric-title');
- const formattedMetricUsage = component.formatMetricUsage(timeSeries[0]);
- const valueFromSeries = timeSeries[0].values[component.currentDataIndex].value;
- expect(formattedMetricUsage.indexOf(component.unitOfDisplay)).not.toEqual(-1);
- expect(formattedMetricUsage.indexOf(valueFromSeries)).not.toEqual(-1);
+ expect(titles[0].textContent.indexOf('1xx')).not.toEqual(-1);
+ expect(titles[1].textContent.indexOf('2xx')).not.toEqual(-1);
});
- });
-
- it('has 2 rect-axis-text rect svg elements', () => {
- const component = createComponent(defaultValuesComponent);
-
- expect(component.$el.querySelectorAll('.rect-axis-text').length).toEqual(2);
- });
- it('contains text to signal the usage, title and time with multiple time series', () => {
- const component = createComponent(defaultValuesComponent);
- const titles = component.$el.querySelectorAll('.legend-metric-title');
-
- expect(titles[0].textContent.indexOf('1xx')).not.toEqual(-1);
- expect(titles[1].textContent.indexOf('2xx')).not.toEqual(-1);
- expect(getTextFromNode(component, '.y-label-text')).toEqual(component.yAxisLabel);
- });
-
- it('should contain the same number of legend groups as the timeSeries length', () => {
- const component = createComponent(defaultValuesComponent);
-
- expect(component.$el.querySelectorAll('.legend-group').length).toEqual(component.timeSeries.length);
+ it('should container the same number of rows in the table as time series', () => {
+ expect(vm.$el.querySelectorAll('.prometheus-table tr').length).toEqual(vm.timeSeries.length);
+ });
});
});
diff --git a/spec/javascripts/monitoring/graph/track_info_spec.js b/spec/javascripts/monitoring/graph/track_info_spec.js
new file mode 100644
index 00000000000..d3121d553f9
--- /dev/null
+++ b/spec/javascripts/monitoring/graph/track_info_spec.js
@@ -0,0 +1,44 @@
+import Vue from 'vue';
+import TrackInfo from '~/monitoring/components/graph/track_info.vue';
+import mountComponent from 'spec/helpers/vue_mount_component_helper';
+import createTimeSeries from '~/monitoring/utils/multiple_time_series';
+import { singleRowMetricsMultipleSeries, convertDatesMultipleSeries } from '../mock_data';
+
+const convertedMetrics = convertDatesMultipleSeries(singleRowMetricsMultipleSeries);
+const timeSeries = createTimeSeries(convertedMetrics[0].queries, 500, 300, 120);
+
+describe('TrackInfo component', () => {
+ let vm;
+ let Component;
+
+ beforeEach(() => {
+ Component = Vue.extend(TrackInfo);
+ });
+
+ afterEach(() => {
+ vm.$destroy();
+ });
+
+ describe('Computed props', () => {
+ beforeEach(() => {
+ vm = mountComponent(Component, { track: timeSeries[0] });
+ });
+
+ it('summaryMetrics', () => {
+ expect(vm.summaryMetrics).toEqual('Avg: 0.000 · Max: 0.000');
+ });
+ });
+
+ describe('Rendered output', () => {
+ beforeEach(() => {
+ vm = mountComponent(Component, { track: timeSeries[0] });
+ });
+
+ it('contains metric tag and the summary metrics', () => {
+ const metricTag = vm.$el.querySelector('strong');
+
+ expect(metricTag.textContent.trim()).toEqual(vm.track.metricTag);
+ expect(vm.$el.textContent).toContain('Avg: 0.000 · Max: 0.000');
+ });
+ });
+});
diff --git a/spec/javascripts/monitoring/graph/track_line_spec.js b/spec/javascripts/monitoring/graph/track_line_spec.js
new file mode 100644
index 00000000000..45106830a67
--- /dev/null
+++ b/spec/javascripts/monitoring/graph/track_line_spec.js
@@ -0,0 +1,52 @@
+import Vue from 'vue';
+import TrackLine from '~/monitoring/components/graph/track_line.vue';
+import mountComponent from 'spec/helpers/vue_mount_component_helper';
+import createTimeSeries from '~/monitoring/utils/multiple_time_series';
+import { singleRowMetricsMultipleSeries, convertDatesMultipleSeries } from '../mock_data';
+
+const convertedMetrics = convertDatesMultipleSeries(singleRowMetricsMultipleSeries);
+const timeSeries = createTimeSeries(convertedMetrics[0].queries, 500, 300, 120);
+
+describe('TrackLine component', () => {
+ let vm;
+ let Component;
+
+ beforeEach(() => {
+ Component = Vue.extend(TrackLine);
+ });
+
+ afterEach(() => {
+ vm.$destroy();
+ });
+
+ describe('Computed props', () => {
+ it('stylizedLine for dashed lineStyles', () => {
+ vm = mountComponent(Component, { track: { ...timeSeries[0], lineStyle: 'dashed' } });
+
+ expect(vm.stylizedLine).toEqual('6, 3');
+ });
+
+ it('stylizedLine for dotted lineStyles', () => {
+ vm = mountComponent(Component, { track: { ...timeSeries[0], lineStyle: 'dotted' } });
+
+ expect(vm.stylizedLine).toEqual('3, 3');
+ });
+ });
+
+ describe('Rendered output', () => {
+ it('has an svg with a line', () => {
+ vm = mountComponent(Component, { track: { ...timeSeries[0] } });
+ const svgEl = vm.$el.querySelector('svg');
+ const lineEl = vm.$el.querySelector('svg line');
+
+ expect(svgEl.getAttribute('width')).toEqual('15');
+ expect(svgEl.getAttribute('height')).toEqual('6');
+
+ expect(lineEl.getAttribute('stroke-width')).toEqual('4');
+ expect(lineEl.getAttribute('x1')).toEqual('0');
+ expect(lineEl.getAttribute('x2')).toEqual('15');
+ expect(lineEl.getAttribute('y1')).toEqual('2');
+ expect(lineEl.getAttribute('y2')).toEqual('2');
+ });
+ });
+});
diff --git a/spec/javascripts/monitoring/graph_spec.js b/spec/javascripts/monitoring/graph_spec.js
index b1d69752bad..1213c80ba3a 100644
--- a/spec/javascripts/monitoring/graph_spec.js
+++ b/spec/javascripts/monitoring/graph_spec.js
@@ -2,11 +2,15 @@ import Vue from 'vue';
import Graph from '~/monitoring/components/graph.vue';
import MonitoringMixins from '~/monitoring/mixins/monitoring_mixins';
import eventHub from '~/monitoring/event_hub';
-import { deploymentData, convertDatesMultipleSeries, singleRowMetricsMultipleSeries } from './mock_data';
+import {
+ deploymentData,
+ convertDatesMultipleSeries,
+ singleRowMetricsMultipleSeries,
+} from './mock_data';
const tagsPath = 'http://test.host/frontend-fixtures/environments-project/tags';
const projectPath = 'http://test.host/frontend-fixtures/environments-project';
-const createComponent = (propsData) => {
+const createComponent = propsData => {
const Component = Vue.extend(Graph);
return new Component({
@@ -14,7 +18,9 @@ const createComponent = (propsData) => {
}).$mount();
};
-const convertedMetrics = convertDatesMultipleSeries(singleRowMetricsMultipleSeries);
+const convertedMetrics = convertDatesMultipleSeries(
+ singleRowMetricsMultipleSeries,
+);
describe('Graph', () => {
beforeEach(() => {
@@ -31,7 +37,9 @@ describe('Graph', () => {
projectPath,
});
- expect(component.$el.querySelector('.text-center').innerText.trim()).toBe(component.graphData.title);
+ expect(component.$el.querySelector('.text-center').innerText.trim()).toBe(
+ component.graphData.title,
+ );
});
describe('Computed props', () => {
@@ -46,8 +54,9 @@ describe('Graph', () => {
});
const transformedHeight = `${component.graphHeight - 100}`;
- expect(component.axisTransform.indexOf(transformedHeight))
- .not.toEqual(-1);
+ expect(component.axisTransform.indexOf(transformedHeight)).not.toEqual(
+ -1,
+ );
});
it('outerViewBox gets a width and height property based on the DOM size of the element', () => {
@@ -63,11 +72,11 @@ describe('Graph', () => {
const viewBoxArray = component.outerViewBox.split(' ');
expect(typeof component.outerViewBox).toEqual('string');
expect(viewBoxArray[2]).toEqual(component.graphWidth.toString());
- expect(viewBoxArray[3]).toEqual(component.graphHeight.toString());
+ expect(viewBoxArray[3]).toEqual((component.graphHeight - 50).toString());
});
});
- it('sends an event to the eventhub when it has finished resizing', (done) => {
+ it('sends an event to the eventhub when it has finished resizing', done => {
const component = createComponent({
graphData: convertedMetrics[1],
classType: 'col-md-6',
diff --git a/spec/javascripts/monitoring/mock_data.js b/spec/javascripts/monitoring/mock_data.js
index f30208b27b6..50da6da2e07 100644
--- a/spec/javascripts/monitoring/mock_data.js
+++ b/spec/javascripts/monitoring/mock_data.js
@@ -3,2426 +3,645 @@
export const mockApiEndpoint = `${gl.TEST_HOST}/monitoring/mock`;
export const metricsGroupsAPIResponse = {
- 'success': true,
- 'data': [
+ success: true,
+ data: [
{
- 'group': 'Kubernetes',
- 'priority': 1,
- 'metrics': [
- {
- 'title': 'Memory usage',
- 'weight': 1,
- 'queries': [
+ group: 'Kubernetes',
+ priority: 1,
+ metrics: [
+ {
+ title: 'Memory usage',
+ weight: 1,
+ queries: [
+ {
+ query_range: 'avg(container_memory_usage_bytes{%{environment_filter}}) / 2^20',
+ y_label: 'Memory',
+ unit: 'MiB',
+ result: [
{
- 'query_range': 'avg(container_memory_usage_bytes{%{environment_filter}}) / 2^20',
- 'y_label': 'Memory',
- 'unit': 'MiB',
- 'result': [
- {
- 'metric': {},
- 'values': [
- [
- 1495700554.925,
- '8.0390625'
- ],
- [
- 1495700614.925,
- '8.0390625'
- ],
- [
- 1495700674.925,
- '8.0390625'
- ],
- [
- 1495700734.925,
- '8.0390625'
- ],
- [
- 1495700794.925,
- '8.0390625'
- ],
- [
- 1495700854.925,
- '8.0390625'
- ],
- [
- 1495700914.925,
- '8.0390625'
- ],
- [
- 1495700974.925,
- '8.0390625'
- ],
- [
- 1495701034.925,
- '8.0390625'
- ],
- [
- 1495701094.925,
- '8.0390625'
- ],
- [
- 1495701154.925,
- '8.0390625'
- ],
- [
- 1495701214.925,
- '8.0390625'
- ],
- [
- 1495701274.925,
- '8.0390625'
- ],
- [
- 1495701334.925,
- '8.0390625'
- ],
- [
- 1495701394.925,
- '8.0390625'
- ],
- [
- 1495701454.925,
- '8.0390625'
- ],
- [
- 1495701514.925,
- '8.0390625'
- ],
- [
- 1495701574.925,
- '8.0390625'
- ],
- [
- 1495701634.925,
- '8.0390625'
- ],
- [
- 1495701694.925,
- '8.0390625'
- ],
- [
- 1495701754.925,
- '8.0390625'
- ],
- [
- 1495701814.925,
- '8.0390625'
- ],
- [
- 1495701874.925,
- '8.0390625'
- ],
- [
- 1495701934.925,
- '8.0390625'
- ],
- [
- 1495701994.925,
- '8.0390625'
- ],
- [
- 1495702054.925,
- '8.0390625'
- ],
- [
- 1495702114.925,
- '8.0390625'
- ],
- [
- 1495702174.925,
- '8.0390625'
- ],
- [
- 1495702234.925,
- '8.0390625'
- ],
- [
- 1495702294.925,
- '8.0390625'
- ],
- [
- 1495702354.925,
- '8.0390625'
- ],
- [
- 1495702414.925,
- '8.0390625'
- ],
- [
- 1495702474.925,
- '8.0390625'
- ],
- [
- 1495702534.925,
- '8.0390625'
- ],
- [
- 1495702594.925,
- '8.0390625'
- ],
- [
- 1495702654.925,
- '8.0390625'
- ],
- [
- 1495702714.925,
- '8.0390625'
- ],
- [
- 1495702774.925,
- '8.0390625'
- ],
- [
- 1495702834.925,
- '8.0390625'
- ],
- [
- 1495702894.925,
- '8.0390625'
- ],
- [
- 1495702954.925,
- '8.0390625'
- ],
- [
- 1495703014.925,
- '8.0390625'
- ],
- [
- 1495703074.925,
- '8.0390625'
- ],
- [
- 1495703134.925,
- '8.0390625'
- ],
- [
- 1495703194.925,
- '8.0390625'
- ],
- [
- 1495703254.925,
- '8.03515625'
- ],
- [
- 1495703314.925,
- '8.03515625'
- ],
- [
- 1495703374.925,
- '8.03515625'
- ],
- [
- 1495703434.925,
- '8.03515625'
- ],
- [
- 1495703494.925,
- '8.03515625'
- ],
- [
- 1495703554.925,
- '8.03515625'
- ],
- [
- 1495703614.925,
- '8.03515625'
- ],
- [
- 1495703674.925,
- '8.03515625'
- ],
- [
- 1495703734.925,
- '8.03515625'
- ],
- [
- 1495703794.925,
- '8.03515625'
- ],
- [
- 1495703854.925,
- '8.03515625'
- ],
- [
- 1495703914.925,
- '8.03515625'
- ],
- [
- 1495703974.925,
- '8.03515625'
- ],
- [
- 1495704034.925,
- '8.03515625'
- ],
- [
- 1495704094.925,
- '8.03515625'
- ],
- [
- 1495704154.925,
- '8.03515625'
- ],
- [
- 1495704214.925,
- '7.9296875'
- ],
- [
- 1495704274.925,
- '7.9296875'
- ],
- [
- 1495704334.925,
- '7.9296875'
- ],
- [
- 1495704394.925,
- '7.9296875'
- ],
- [
- 1495704454.925,
- '7.9296875'
- ],
- [
- 1495704514.925,
- '7.9296875'
- ],
- [
- 1495704574.925,
- '7.9296875'
- ],
- [
- 1495704634.925,
- '7.9296875'
- ],
- [
- 1495704694.925,
- '7.9296875'
- ],
- [
- 1495704754.925,
- '7.9296875'
- ],
- [
- 1495704814.925,
- '7.9296875'
- ],
- [
- 1495704874.925,
- '7.9296875'
- ],
- [
- 1495704934.925,
- '7.9296875'
- ],
- [
- 1495704994.925,
- '7.9296875'
- ],
- [
- 1495705054.925,
- '7.9296875'
- ],
- [
- 1495705114.925,
- '7.9296875'
- ],
- [
- 1495705174.925,
- '7.9296875'
- ],
- [
- 1495705234.925,
- '7.9296875'
- ],
- [
- 1495705294.925,
- '7.9296875'
- ],
- [
- 1495705354.925,
- '7.9296875'
- ],
- [
- 1495705414.925,
- '7.9296875'
- ],
- [
- 1495705474.925,
- '7.9296875'
- ],
- [
- 1495705534.925,
- '7.9296875'
- ],
- [
- 1495705594.925,
- '7.9296875'
- ],
- [
- 1495705654.925,
- '7.9296875'
- ],
- [
- 1495705714.925,
- '7.9296875'
- ],
- [
- 1495705774.925,
- '7.9296875'
- ],
- [
- 1495705834.925,
- '7.9296875'
- ],
- [
- 1495705894.925,
- '7.9296875'
- ],
- [
- 1495705954.925,
- '7.9296875'
- ],
- [
- 1495706014.925,
- '7.9296875'
- ],
- [
- 1495706074.925,
- '7.9296875'
- ],
- [
- 1495706134.925,
- '7.9296875'
- ],
- [
- 1495706194.925,
- '7.9296875'
- ],
- [
- 1495706254.925,
- '7.9296875'
- ],
- [
- 1495706314.925,
- '7.9296875'
- ],
- [
- 1495706374.925,
- '7.9296875'
- ],
- [
- 1495706434.925,
- '7.9296875'
- ],
- [
- 1495706494.925,
- '7.9296875'
- ],
- [
- 1495706554.925,
- '7.9296875'
- ],
- [
- 1495706614.925,
- '7.9296875'
- ],
- [
- 1495706674.925,
- '7.9296875'
- ],
- [
- 1495706734.925,
- '7.9296875'
- ],
- [
- 1495706794.925,
- '7.9296875'
- ],
- [
- 1495706854.925,
- '7.9296875'
- ],
- [
- 1495706914.925,
- '7.9296875'
- ],
- [
- 1495706974.925,
- '7.9296875'
- ],
- [
- 1495707034.925,
- '7.9296875'
- ],
- [
- 1495707094.925,
- '7.9296875'
- ],
- [
- 1495707154.925,
- '7.9296875'
- ],
- [
- 1495707214.925,
- '7.9296875'
- ],
- [
- 1495707274.925,
- '7.9296875'
- ],
- [
- 1495707334.925,
- '7.9296875'
- ],
- [
- 1495707394.925,
- '7.9296875'
- ],
- [
- 1495707454.925,
- '7.9296875'
- ],
- [
- 1495707514.925,
- '7.9296875'
- ],
- [
- 1495707574.925,
- '7.9296875'
- ],
- [
- 1495707634.925,
- '7.9296875'
- ],
- [
- 1495707694.925,
- '7.9296875'
- ],
- [
- 1495707754.925,
- '7.9296875'
- ],
- [
- 1495707814.925,
- '7.9296875'
- ],
- [
- 1495707874.925,
- '7.9296875'
- ],
- [
- 1495707934.925,
- '7.9296875'
- ],
- [
- 1495707994.925,
- '7.9296875'
- ],
- [
- 1495708054.925,
- '7.9296875'
- ],
- [
- 1495708114.925,
- '7.9296875'
- ],
- [
- 1495708174.925,
- '7.9296875'
- ],
- [
- 1495708234.925,
- '7.9296875'
- ],
- [
- 1495708294.925,
- '7.9296875'
- ],
- [
- 1495708354.925,
- '7.9296875'
- ],
- [
- 1495708414.925,
- '7.9296875'
- ],
- [
- 1495708474.925,
- '7.9296875'
- ],
- [
- 1495708534.925,
- '7.9296875'
- ],
- [
- 1495708594.925,
- '7.9296875'
- ],
- [
- 1495708654.925,
- '7.9296875'
- ],
- [
- 1495708714.925,
- '7.9296875'
- ],
- [
- 1495708774.925,
- '7.9296875'
- ],
- [
- 1495708834.925,
- '7.9296875'
- ],
- [
- 1495708894.925,
- '7.9296875'
- ],
- [
- 1495708954.925,
- '7.8984375'
- ],
- [
- 1495709014.925,
- '7.8984375'
- ],
- [
- 1495709074.925,
- '7.8984375'
- ],
- [
- 1495709134.925,
- '7.8984375'
- ],
- [
- 1495709194.925,
- '7.8984375'
- ],
- [
- 1495709254.925,
- '7.89453125'
- ],
- [
- 1495709314.925,
- '7.89453125'
- ],
- [
- 1495709374.925,
- '7.89453125'
- ],
- [
- 1495709434.925,
- '7.89453125'
- ],
- [
- 1495709494.925,
- '7.89453125'
- ],
- [
- 1495709554.925,
- '7.89453125'
- ],
- [
- 1495709614.925,
- '7.89453125'
- ],
- [
- 1495709674.925,
- '7.89453125'
- ],
- [
- 1495709734.925,
- '7.89453125'
- ],
- [
- 1495709794.925,
- '7.89453125'
- ],
- [
- 1495709854.925,
- '7.89453125'
- ],
- [
- 1495709914.925,
- '7.89453125'
- ],
- [
- 1495709974.925,
- '7.89453125'
- ],
- [
- 1495710034.925,
- '7.89453125'
- ],
- [
- 1495710094.925,
- '7.89453125'
- ],
- [
- 1495710154.925,
- '7.89453125'
- ],
- [
- 1495710214.925,
- '7.89453125'
- ],
- [
- 1495710274.925,
- '7.89453125'
- ],
- [
- 1495710334.925,
- '7.89453125'
- ],
- [
- 1495710394.925,
- '7.89453125'
- ],
- [
- 1495710454.925,
- '7.89453125'
- ],
- [
- 1495710514.925,
- '7.89453125'
- ],
- [
- 1495710574.925,
- '7.89453125'
- ],
- [
- 1495710634.925,
- '7.89453125'
- ],
- [
- 1495710694.925,
- '7.89453125'
- ],
- [
- 1495710754.925,
- '7.89453125'
- ],
- [
- 1495710814.925,
- '7.89453125'
- ],
- [
- 1495710874.925,
- '7.89453125'
- ],
- [
- 1495710934.925,
- '7.89453125'
- ],
- [
- 1495710994.925,
- '7.89453125'
- ],
- [
- 1495711054.925,
- '7.89453125'
- ],
- [
- 1495711114.925,
- '7.89453125'
- ],
- [
- 1495711174.925,
- '7.8515625'
- ],
- [
- 1495711234.925,
- '7.8515625'
- ],
- [
- 1495711294.925,
- '7.8515625'
- ],
- [
- 1495711354.925,
- '7.8515625'
- ],
- [
- 1495711414.925,
- '7.8515625'
- ],
- [
- 1495711474.925,
- '7.8515625'
- ],
- [
- 1495711534.925,
- '7.8515625'
- ],
- [
- 1495711594.925,
- '7.8515625'
- ],
- [
- 1495711654.925,
- '7.8515625'
- ],
- [
- 1495711714.925,
- '7.8515625'
- ],
- [
- 1495711774.925,
- '7.8515625'
- ],
- [
- 1495711834.925,
- '7.8515625'
- ],
- [
- 1495711894.925,
- '7.8515625'
- ],
- [
- 1495711954.925,
- '7.8515625'
- ],
- [
- 1495712014.925,
- '7.8515625'
- ],
- [
- 1495712074.925,
- '7.8515625'
- ],
- [
- 1495712134.925,
- '7.8515625'
- ],
- [
- 1495712194.925,
- '7.8515625'
- ],
- [
- 1495712254.925,
- '7.8515625'
- ],
- [
- 1495712314.925,
- '7.8515625'
- ],
- [
- 1495712374.925,
- '7.8515625'
- ],
- [
- 1495712434.925,
- '7.83203125'
- ],
- [
- 1495712494.925,
- '7.83203125'
- ],
- [
- 1495712554.925,
- '7.83203125'
- ],
- [
- 1495712614.925,
- '7.83203125'
- ],
- [
- 1495712674.925,
- '7.83203125'
- ],
- [
- 1495712734.925,
- '7.83203125'
- ],
- [
- 1495712794.925,
- '7.83203125'
- ],
- [
- 1495712854.925,
- '7.83203125'
- ],
- [
- 1495712914.925,
- '7.83203125'
- ],
- [
- 1495712974.925,
- '7.83203125'
- ],
- [
- 1495713034.925,
- '7.83203125'
- ],
- [
- 1495713094.925,
- '7.83203125'
- ],
- [
- 1495713154.925,
- '7.83203125'
- ],
- [
- 1495713214.925,
- '7.83203125'
- ],
- [
- 1495713274.925,
- '7.83203125'
- ],
- [
- 1495713334.925,
- '7.83203125'
- ],
- [
- 1495713394.925,
- '7.8125'
- ],
- [
- 1495713454.925,
- '7.8125'
- ],
- [
- 1495713514.925,
- '7.8125'
- ],
- [
- 1495713574.925,
- '7.8125'
- ],
- [
- 1495713634.925,
- '7.8125'
- ],
- [
- 1495713694.925,
- '7.8125'
- ],
- [
- 1495713754.925,
- '7.8125'
- ],
- [
- 1495713814.925,
- '7.8125'
- ],
- [
- 1495713874.925,
- '7.8125'
- ],
- [
- 1495713934.925,
- '7.8125'
- ],
- [
- 1495713994.925,
- '7.8125'
- ],
- [
- 1495714054.925,
- '7.8125'
- ],
- [
- 1495714114.925,
- '7.8125'
- ],
- [
- 1495714174.925,
- '7.8125'
- ],
- [
- 1495714234.925,
- '7.8125'
- ],
- [
- 1495714294.925,
- '7.8125'
- ],
- [
- 1495714354.925,
- '7.80859375'
- ],
- [
- 1495714414.925,
- '7.80859375'
- ],
- [
- 1495714474.925,
- '7.80859375'
- ],
- [
- 1495714534.925,
- '7.80859375'
- ],
- [
- 1495714594.925,
- '7.80859375'
- ],
- [
- 1495714654.925,
- '7.80859375'
- ],
- [
- 1495714714.925,
- '7.80859375'
- ],
- [
- 1495714774.925,
- '7.80859375'
- ],
- [
- 1495714834.925,
- '7.80859375'
- ],
- [
- 1495714894.925,
- '7.80859375'
- ],
- [
- 1495714954.925,
- '7.80859375'
- ],
- [
- 1495715014.925,
- '7.80859375'
- ],
- [
- 1495715074.925,
- '7.80859375'
- ],
- [
- 1495715134.925,
- '7.80859375'
- ],
- [
- 1495715194.925,
- '7.80859375'
- ],
- [
- 1495715254.925,
- '7.80859375'
- ],
- [
- 1495715314.925,
- '7.80859375'
- ],
- [
- 1495715374.925,
- '7.80859375'
- ],
- [
- 1495715434.925,
- '7.80859375'
- ],
- [
- 1495715494.925,
- '7.80859375'
- ],
- [
- 1495715554.925,
- '7.80859375'
- ],
- [
- 1495715614.925,
- '7.80859375'
- ],
- [
- 1495715674.925,
- '7.80859375'
- ],
- [
- 1495715734.925,
- '7.80859375'
- ],
- [
- 1495715794.925,
- '7.80859375'
- ],
- [
- 1495715854.925,
- '7.80859375'
- ],
- [
- 1495715914.925,
- '7.80078125'
- ],
- [
- 1495715974.925,
- '7.80078125'
- ],
- [
- 1495716034.925,
- '7.80078125'
- ],
- [
- 1495716094.925,
- '7.80078125'
- ],
- [
- 1495716154.925,
- '7.80078125'
- ],
- [
- 1495716214.925,
- '7.796875'
- ],
- [
- 1495716274.925,
- '7.796875'
- ],
- [
- 1495716334.925,
- '7.796875'
- ],
- [
- 1495716394.925,
- '7.796875'
- ],
- [
- 1495716454.925,
- '7.796875'
- ],
- [
- 1495716514.925,
- '7.796875'
- ],
- [
- 1495716574.925,
- '7.796875'
- ],
- [
- 1495716634.925,
- '7.796875'
- ],
- [
- 1495716694.925,
- '7.796875'
- ],
- [
- 1495716754.925,
- '7.796875'
- ],
- [
- 1495716814.925,
- '7.796875'
- ],
- [
- 1495716874.925,
- '7.79296875'
- ],
- [
- 1495716934.925,
- '7.79296875'
- ],
- [
- 1495716994.925,
- '7.79296875'
- ],
- [
- 1495717054.925,
- '7.79296875'
- ],
- [
- 1495717114.925,
- '7.79296875'
- ],
- [
- 1495717174.925,
- '7.7890625'
- ],
- [
- 1495717234.925,
- '7.7890625'
- ],
- [
- 1495717294.925,
- '7.7890625'
- ],
- [
- 1495717354.925,
- '7.7890625'
- ],
- [
- 1495717414.925,
- '7.7890625'
- ],
- [
- 1495717474.925,
- '7.7890625'
- ],
- [
- 1495717534.925,
- '7.7890625'
- ],
- [
- 1495717594.925,
- '7.7890625'
- ],
- [
- 1495717654.925,
- '7.7890625'
- ],
- [
- 1495717714.925,
- '7.7890625'
- ],
- [
- 1495717774.925,
- '7.7890625'
- ],
- [
- 1495717834.925,
- '7.77734375'
- ],
- [
- 1495717894.925,
- '7.77734375'
- ],
- [
- 1495717954.925,
- '7.77734375'
- ],
- [
- 1495718014.925,
- '7.77734375'
- ],
- [
- 1495718074.925,
- '7.77734375'
- ],
- [
- 1495718134.925,
- '7.7421875'
- ],
- [
- 1495718194.925,
- '7.7421875'
- ],
- [
- 1495718254.925,
- '7.7421875'
- ],
- [
- 1495718314.925,
- '7.7421875'
- ]
- ]
- }
- ]
- }
- ]
+ metric: {},
+ values: [
+ [1495700554.925, '8.0390625'],
+ [1495700614.925, '8.0390625'],
+ [1495700674.925, '8.0390625'],
+ [1495700734.925, '8.0390625'],
+ [1495700794.925, '8.0390625'],
+ [1495700854.925, '8.0390625'],
+ [1495700914.925, '8.0390625'],
+ [1495700974.925, '8.0390625'],
+ [1495701034.925, '8.0390625'],
+ [1495701094.925, '8.0390625'],
+ [1495701154.925, '8.0390625'],
+ [1495701214.925, '8.0390625'],
+ [1495701274.925, '8.0390625'],
+ [1495701334.925, '8.0390625'],
+ [1495701394.925, '8.0390625'],
+ [1495701454.925, '8.0390625'],
+ [1495701514.925, '8.0390625'],
+ [1495701574.925, '8.0390625'],
+ [1495701634.925, '8.0390625'],
+ [1495701694.925, '8.0390625'],
+ [1495701754.925, '8.0390625'],
+ [1495701814.925, '8.0390625'],
+ [1495701874.925, '8.0390625'],
+ [1495701934.925, '8.0390625'],
+ [1495701994.925, '8.0390625'],
+ [1495702054.925, '8.0390625'],
+ [1495702114.925, '8.0390625'],
+ [1495702174.925, '8.0390625'],
+ [1495702234.925, '8.0390625'],
+ [1495702294.925, '8.0390625'],
+ [1495702354.925, '8.0390625'],
+ [1495702414.925, '8.0390625'],
+ [1495702474.925, '8.0390625'],
+ [1495702534.925, '8.0390625'],
+ [1495702594.925, '8.0390625'],
+ [1495702654.925, '8.0390625'],
+ [1495702714.925, '8.0390625'],
+ [1495702774.925, '8.0390625'],
+ [1495702834.925, '8.0390625'],
+ [1495702894.925, '8.0390625'],
+ [1495702954.925, '8.0390625'],
+ [1495703014.925, '8.0390625'],
+ [1495703074.925, '8.0390625'],
+ [1495703134.925, '8.0390625'],
+ [1495703194.925, '8.0390625'],
+ [1495703254.925, '8.03515625'],
+ [1495703314.925, '8.03515625'],
+ [1495703374.925, '8.03515625'],
+ [1495703434.925, '8.03515625'],
+ [1495703494.925, '8.03515625'],
+ [1495703554.925, '8.03515625'],
+ [1495703614.925, '8.03515625'],
+ [1495703674.925, '8.03515625'],
+ [1495703734.925, '8.03515625'],
+ [1495703794.925, '8.03515625'],
+ [1495703854.925, '8.03515625'],
+ [1495703914.925, '8.03515625'],
+ [1495703974.925, '8.03515625'],
+ [1495704034.925, '8.03515625'],
+ [1495704094.925, '8.03515625'],
+ [1495704154.925, '8.03515625'],
+ [1495704214.925, '7.9296875'],
+ [1495704274.925, '7.9296875'],
+ [1495704334.925, '7.9296875'],
+ [1495704394.925, '7.9296875'],
+ [1495704454.925, '7.9296875'],
+ [1495704514.925, '7.9296875'],
+ [1495704574.925, '7.9296875'],
+ [1495704634.925, '7.9296875'],
+ [1495704694.925, '7.9296875'],
+ [1495704754.925, '7.9296875'],
+ [1495704814.925, '7.9296875'],
+ [1495704874.925, '7.9296875'],
+ [1495704934.925, '7.9296875'],
+ [1495704994.925, '7.9296875'],
+ [1495705054.925, '7.9296875'],
+ [1495705114.925, '7.9296875'],
+ [1495705174.925, '7.9296875'],
+ [1495705234.925, '7.9296875'],
+ [1495705294.925, '7.9296875'],
+ [1495705354.925, '7.9296875'],
+ [1495705414.925, '7.9296875'],
+ [1495705474.925, '7.9296875'],
+ [1495705534.925, '7.9296875'],
+ [1495705594.925, '7.9296875'],
+ [1495705654.925, '7.9296875'],
+ [1495705714.925, '7.9296875'],
+ [1495705774.925, '7.9296875'],
+ [1495705834.925, '7.9296875'],
+ [1495705894.925, '7.9296875'],
+ [1495705954.925, '7.9296875'],
+ [1495706014.925, '7.9296875'],
+ [1495706074.925, '7.9296875'],
+ [1495706134.925, '7.9296875'],
+ [1495706194.925, '7.9296875'],
+ [1495706254.925, '7.9296875'],
+ [1495706314.925, '7.9296875'],
+ [1495706374.925, '7.9296875'],
+ [1495706434.925, '7.9296875'],
+ [1495706494.925, '7.9296875'],
+ [1495706554.925, '7.9296875'],
+ [1495706614.925, '7.9296875'],
+ [1495706674.925, '7.9296875'],
+ [1495706734.925, '7.9296875'],
+ [1495706794.925, '7.9296875'],
+ [1495706854.925, '7.9296875'],
+ [1495706914.925, '7.9296875'],
+ [1495706974.925, '7.9296875'],
+ [1495707034.925, '7.9296875'],
+ [1495707094.925, '7.9296875'],
+ [1495707154.925, '7.9296875'],
+ [1495707214.925, '7.9296875'],
+ [1495707274.925, '7.9296875'],
+ [1495707334.925, '7.9296875'],
+ [1495707394.925, '7.9296875'],
+ [1495707454.925, '7.9296875'],
+ [1495707514.925, '7.9296875'],
+ [1495707574.925, '7.9296875'],
+ [1495707634.925, '7.9296875'],
+ [1495707694.925, '7.9296875'],
+ [1495707754.925, '7.9296875'],
+ [1495707814.925, '7.9296875'],
+ [1495707874.925, '7.9296875'],
+ [1495707934.925, '7.9296875'],
+ [1495707994.925, '7.9296875'],
+ [1495708054.925, '7.9296875'],
+ [1495708114.925, '7.9296875'],
+ [1495708174.925, '7.9296875'],
+ [1495708234.925, '7.9296875'],
+ [1495708294.925, '7.9296875'],
+ [1495708354.925, '7.9296875'],
+ [1495708414.925, '7.9296875'],
+ [1495708474.925, '7.9296875'],
+ [1495708534.925, '7.9296875'],
+ [1495708594.925, '7.9296875'],
+ [1495708654.925, '7.9296875'],
+ [1495708714.925, '7.9296875'],
+ [1495708774.925, '7.9296875'],
+ [1495708834.925, '7.9296875'],
+ [1495708894.925, '7.9296875'],
+ [1495708954.925, '7.8984375'],
+ [1495709014.925, '7.8984375'],
+ [1495709074.925, '7.8984375'],
+ [1495709134.925, '7.8984375'],
+ [1495709194.925, '7.8984375'],
+ [1495709254.925, '7.89453125'],
+ [1495709314.925, '7.89453125'],
+ [1495709374.925, '7.89453125'],
+ [1495709434.925, '7.89453125'],
+ [1495709494.925, '7.89453125'],
+ [1495709554.925, '7.89453125'],
+ [1495709614.925, '7.89453125'],
+ [1495709674.925, '7.89453125'],
+ [1495709734.925, '7.89453125'],
+ [1495709794.925, '7.89453125'],
+ [1495709854.925, '7.89453125'],
+ [1495709914.925, '7.89453125'],
+ [1495709974.925, '7.89453125'],
+ [1495710034.925, '7.89453125'],
+ [1495710094.925, '7.89453125'],
+ [1495710154.925, '7.89453125'],
+ [1495710214.925, '7.89453125'],
+ [1495710274.925, '7.89453125'],
+ [1495710334.925, '7.89453125'],
+ [1495710394.925, '7.89453125'],
+ [1495710454.925, '7.89453125'],
+ [1495710514.925, '7.89453125'],
+ [1495710574.925, '7.89453125'],
+ [1495710634.925, '7.89453125'],
+ [1495710694.925, '7.89453125'],
+ [1495710754.925, '7.89453125'],
+ [1495710814.925, '7.89453125'],
+ [1495710874.925, '7.89453125'],
+ [1495710934.925, '7.89453125'],
+ [1495710994.925, '7.89453125'],
+ [1495711054.925, '7.89453125'],
+ [1495711114.925, '7.89453125'],
+ [1495711174.925, '7.8515625'],
+ [1495711234.925, '7.8515625'],
+ [1495711294.925, '7.8515625'],
+ [1495711354.925, '7.8515625'],
+ [1495711414.925, '7.8515625'],
+ [1495711474.925, '7.8515625'],
+ [1495711534.925, '7.8515625'],
+ [1495711594.925, '7.8515625'],
+ [1495711654.925, '7.8515625'],
+ [1495711714.925, '7.8515625'],
+ [1495711774.925, '7.8515625'],
+ [1495711834.925, '7.8515625'],
+ [1495711894.925, '7.8515625'],
+ [1495711954.925, '7.8515625'],
+ [1495712014.925, '7.8515625'],
+ [1495712074.925, '7.8515625'],
+ [1495712134.925, '7.8515625'],
+ [1495712194.925, '7.8515625'],
+ [1495712254.925, '7.8515625'],
+ [1495712314.925, '7.8515625'],
+ [1495712374.925, '7.8515625'],
+ [1495712434.925, '7.83203125'],
+ [1495712494.925, '7.83203125'],
+ [1495712554.925, '7.83203125'],
+ [1495712614.925, '7.83203125'],
+ [1495712674.925, '7.83203125'],
+ [1495712734.925, '7.83203125'],
+ [1495712794.925, '7.83203125'],
+ [1495712854.925, '7.83203125'],
+ [1495712914.925, '7.83203125'],
+ [1495712974.925, '7.83203125'],
+ [1495713034.925, '7.83203125'],
+ [1495713094.925, '7.83203125'],
+ [1495713154.925, '7.83203125'],
+ [1495713214.925, '7.83203125'],
+ [1495713274.925, '7.83203125'],
+ [1495713334.925, '7.83203125'],
+ [1495713394.925, '7.8125'],
+ [1495713454.925, '7.8125'],
+ [1495713514.925, '7.8125'],
+ [1495713574.925, '7.8125'],
+ [1495713634.925, '7.8125'],
+ [1495713694.925, '7.8125'],
+ [1495713754.925, '7.8125'],
+ [1495713814.925, '7.8125'],
+ [1495713874.925, '7.8125'],
+ [1495713934.925, '7.8125'],
+ [1495713994.925, '7.8125'],
+ [1495714054.925, '7.8125'],
+ [1495714114.925, '7.8125'],
+ [1495714174.925, '7.8125'],
+ [1495714234.925, '7.8125'],
+ [1495714294.925, '7.8125'],
+ [1495714354.925, '7.80859375'],
+ [1495714414.925, '7.80859375'],
+ [1495714474.925, '7.80859375'],
+ [1495714534.925, '7.80859375'],
+ [1495714594.925, '7.80859375'],
+ [1495714654.925, '7.80859375'],
+ [1495714714.925, '7.80859375'],
+ [1495714774.925, '7.80859375'],
+ [1495714834.925, '7.80859375'],
+ [1495714894.925, '7.80859375'],
+ [1495714954.925, '7.80859375'],
+ [1495715014.925, '7.80859375'],
+ [1495715074.925, '7.80859375'],
+ [1495715134.925, '7.80859375'],
+ [1495715194.925, '7.80859375'],
+ [1495715254.925, '7.80859375'],
+ [1495715314.925, '7.80859375'],
+ [1495715374.925, '7.80859375'],
+ [1495715434.925, '7.80859375'],
+ [1495715494.925, '7.80859375'],
+ [1495715554.925, '7.80859375'],
+ [1495715614.925, '7.80859375'],
+ [1495715674.925, '7.80859375'],
+ [1495715734.925, '7.80859375'],
+ [1495715794.925, '7.80859375'],
+ [1495715854.925, '7.80859375'],
+ [1495715914.925, '7.80078125'],
+ [1495715974.925, '7.80078125'],
+ [1495716034.925, '7.80078125'],
+ [1495716094.925, '7.80078125'],
+ [1495716154.925, '7.80078125'],
+ [1495716214.925, '7.796875'],
+ [1495716274.925, '7.796875'],
+ [1495716334.925, '7.796875'],
+ [1495716394.925, '7.796875'],
+ [1495716454.925, '7.796875'],
+ [1495716514.925, '7.796875'],
+ [1495716574.925, '7.796875'],
+ [1495716634.925, '7.796875'],
+ [1495716694.925, '7.796875'],
+ [1495716754.925, '7.796875'],
+ [1495716814.925, '7.796875'],
+ [1495716874.925, '7.79296875'],
+ [1495716934.925, '7.79296875'],
+ [1495716994.925, '7.79296875'],
+ [1495717054.925, '7.79296875'],
+ [1495717114.925, '7.79296875'],
+ [1495717174.925, '7.7890625'],
+ [1495717234.925, '7.7890625'],
+ [1495717294.925, '7.7890625'],
+ [1495717354.925, '7.7890625'],
+ [1495717414.925, '7.7890625'],
+ [1495717474.925, '7.7890625'],
+ [1495717534.925, '7.7890625'],
+ [1495717594.925, '7.7890625'],
+ [1495717654.925, '7.7890625'],
+ [1495717714.925, '7.7890625'],
+ [1495717774.925, '7.7890625'],
+ [1495717834.925, '7.77734375'],
+ [1495717894.925, '7.77734375'],
+ [1495717954.925, '7.77734375'],
+ [1495718014.925, '7.77734375'],
+ [1495718074.925, '7.77734375'],
+ [1495718134.925, '7.7421875'],
+ [1495718194.925, '7.7421875'],
+ [1495718254.925, '7.7421875'],
+ [1495718314.925, '7.7421875'],
+ ],
+ },
+ ],
+ },
+ ],
},
{
- 'title': 'CPU usage',
- 'weight': 1,
- 'queries': [
+ title: 'CPU usage',
+ weight: 1,
+ queries: [
+ {
+ query_range:
+ 'avg(rate(container_cpu_usage_seconds_total{%{environment_filter}}[2m])) * 100',
+ result: [
{
- 'query_range': 'avg(rate(container_cpu_usage_seconds_total{%{environment_filter}}[2m])) * 100',
- 'result': [
- {
- 'metric': {},
- 'values': [
- [
- 1495700554.925,
- '0.0010794445585559514'
- ],
- [
- 1495700614.925,
- '0.003927214935433527'
- ],
- [
- 1495700674.925,
- '0.0053045219047619975'
- ],
- [
- 1495700734.925,
- '0.0048892095238097155'
- ],
- [
- 1495700794.925,
- '0.005827140952381137'
- ],
- [
- 1495700854.925,
- '0.00569846906219937'
- ],
- [
- 1495700914.925,
- '0.004972616802849382'
- ],
- [
- 1495700974.925,
- '0.005117509523809902'
- ],
- [
- 1495701034.925,
- '0.00512389061919564'
- ],
- [
- 1495701094.925,
- '0.005199100501890691'
- ],
- [
- 1495701154.925,
- '0.005415746394885837'
- ],
- [
- 1495701214.925,
- '0.005607682788146286'
- ],
- [
- 1495701274.925,
- '0.005641300000000118'
- ],
- [
- 1495701334.925,
- '0.0071166279368766495'
- ],
- [
- 1495701394.925,
- '0.0063242138095234044'
- ],
- [
- 1495701454.925,
- '0.005793314698235304'
- ],
- [
- 1495701514.925,
- '0.00703934942237556'
- ],
- [
- 1495701574.925,
- '0.006357007076123191'
- ],
- [
- 1495701634.925,
- '0.003753167300126738'
- ],
- [
- 1495701694.925,
- '0.005018469678430698'
- ],
- [
- 1495701754.925,
- '0.0045217153371887'
- ],
- [
- 1495701814.925,
- '0.006140104285714119'
- ],
- [
- 1495701874.925,
- '0.004818684285714102'
- ],
- [
- 1495701934.925,
- '0.005079509718955242'
- ],
- [
- 1495701994.925,
- '0.005059981142498263'
- ],
- [
- 1495702054.925,
- '0.005269098389538773'
- ],
- [
- 1495702114.925,
- '0.005269954285714175'
- ],
- [
- 1495702174.925,
- '0.014199241435795856'
- ],
- [
- 1495702234.925,
- '0.01511936843111017'
- ],
- [
- 1495702294.925,
- '0.0060933692920682875'
- ],
- [
- 1495702354.925,
- '0.004945682380952493'
- ],
- [
- 1495702414.925,
- '0.005641266666666565'
- ],
- [
- 1495702474.925,
- '0.005223752857142996'
- ],
- [
- 1495702534.925,
- '0.005743098505699831'
- ],
- [
- 1495702594.925,
- '0.00538493380952391'
- ],
- [
- 1495702654.925,
- '0.005507793883751339'
- ],
- [
- 1495702714.925,
- '0.005666705714285466'
- ],
- [
- 1495702774.925,
- '0.006231530000000112'
- ],
- [
- 1495702834.925,
- '0.006570768635394899'
- ],
- [
- 1495702894.925,
- '0.005551146666666895'
- ],
- [
- 1495702954.925,
- '0.005602604737098058'
- ],
- [
- 1495703014.925,
- '0.00613993580402159'
- ],
- [
- 1495703074.925,
- '0.004770258764368832'
- ],
- [
- 1495703134.925,
- '0.005512376671364914'
- ],
- [
- 1495703194.925,
- '0.005254436666666674'
- ],
- [
- 1495703254.925,
- '0.0050109839141320505'
- ],
- [
- 1495703314.925,
- '0.0049478019256960016'
- ],
- [
- 1495703374.925,
- '0.0037666860965123463'
- ],
- [
- 1495703434.925,
- '0.004813526061656314'
- ],
- [
- 1495703494.925,
- '0.005047748095238278'
- ],
- [
- 1495703554.925,
- '0.00386494081008772'
- ],
- [
- 1495703614.925,
- '0.004304037408111405'
- ],
- [
- 1495703674.925,
- '0.004999466661587168'
- ],
- [
- 1495703734.925,
- '0.004689140476190834'
- ],
- [
- 1495703794.925,
- '0.004746126153582475'
- ],
- [
- 1495703854.925,
- '0.004482706382572302'
- ],
- [
- 1495703914.925,
- '0.004032808931864524'
- ],
- [
- 1495703974.925,
- '0.005728319047618988'
- ],
- [
- 1495704034.925,
- '0.004436139179627006'
- ],
- [
- 1495704094.925,
- '0.004553455714285617'
- ],
- [
- 1495704154.925,
- '0.003455244285714341'
- ],
- [
- 1495704214.925,
- '0.004742244761904621'
- ],
- [
- 1495704274.925,
- '0.005366978571428422'
- ],
- [
- 1495704334.925,
- '0.004257954837665058'
- ],
- [
- 1495704394.925,
- '0.005431603259831257'
- ],
- [
- 1495704454.925,
- '0.0052009214498621986'
- ],
- [
- 1495704514.925,
- '0.004317201904761618'
- ],
- [
- 1495704574.925,
- '0.004307384285714157'
- ],
- [
- 1495704634.925,
- '0.004789801146644822'
- ],
- [
- 1495704694.925,
- '0.0051429795906706485'
- ],
- [
- 1495704754.925,
- '0.005322495714285479'
- ],
- [
- 1495704814.925,
- '0.004512809333244233'
- ],
- [
- 1495704874.925,
- '0.004953843582568726'
- ],
- [
- 1495704934.925,
- '0.005812690120858119'
- ],
- [
- 1495704994.925,
- '0.004997024285714838'
- ],
- [
- 1495705054.925,
- '0.005246216154439592'
- ],
- [
- 1495705114.925,
- '0.0063494966618726795'
- ],
- [
- 1495705174.925,
- '0.005306004342898225'
- ],
- [
- 1495705234.925,
- '0.005081412857142978'
- ],
- [
- 1495705294.925,
- '0.00511409523809522'
- ],
- [
- 1495705354.925,
- '0.0047861001481192'
- ],
- [
- 1495705414.925,
- '0.005107688228042962'
- ],
- [
- 1495705474.925,
- '0.005271929582294012'
- ],
- [
- 1495705534.925,
- '0.004453254502681249'
- ],
- [
- 1495705594.925,
- '0.005799134293959226'
- ],
- [
- 1495705654.925,
- '0.005340865929502478'
- ],
- [
- 1495705714.925,
- '0.004911654761904942'
- ],
- [
- 1495705774.925,
- '0.005888234873953261'
- ],
- [
- 1495705834.925,
- '0.005565283333332954'
- ],
- [
- 1495705894.925,
- '0.005522869047618869'
- ],
- [
- 1495705954.925,
- '0.005177549737621646'
- ],
- [
- 1495706014.925,
- '0.0053145810232096465'
- ],
- [
- 1495706074.925,
- '0.004751095238095275'
- ],
- [
- 1495706134.925,
- '0.006242077142856976'
- ],
- [
- 1495706194.925,
- '0.00621034406957871'
- ],
- [
- 1495706254.925,
- '0.006887592738978596'
- ],
- [
- 1495706314.925,
- '0.006328128779726213'
- ],
- [
- 1495706374.925,
- '0.007488363809523927'
- ],
- [
- 1495706434.925,
- '0.006193758571428157'
- ],
- [
- 1495706494.925,
- '0.0068798371839706935'
- ],
- [
- 1495706554.925,
- '0.005757034340423128'
- ],
- [
- 1495706614.925,
- '0.004571388497294698'
- ],
- [
- 1495706674.925,
- '0.00620283044923395'
- ],
- [
- 1495706734.925,
- '0.005607562380952455'
- ],
- [
- 1495706794.925,
- '0.005506969933620308'
- ],
- [
- 1495706854.925,
- '0.005621118095238131'
- ],
- [
- 1495706914.925,
- '0.004876606098698849'
- ],
- [
- 1495706974.925,
- '0.0047871205988517206'
- ],
- [
- 1495707034.925,
- '0.00526405939458784'
- ],
- [
- 1495707094.925,
- '0.005716323800605852'
- ],
- [
- 1495707154.925,
- '0.005301459523809575'
- ],
- [
- 1495707214.925,
- '0.0051613042857144905'
- ],
- [
- 1495707274.925,
- '0.005384792857142714'
- ],
- [
- 1495707334.925,
- '0.005259719047619222'
- ],
- [
- 1495707394.925,
- '0.00584101142857182'
- ],
- [
- 1495707454.925,
- '0.0060066121920326326'
- ],
- [
- 1495707514.925,
- '0.006359978571428453'
- ],
- [
- 1495707574.925,
- '0.006315876322151109'
- ],
- [
- 1495707634.925,
- '0.005590012517198831'
- ],
- [
- 1495707694.925,
- '0.005517419877137072'
- ],
- [
- 1495707754.925,
- '0.006089813430348506'
- ],
- [
- 1495707814.925,
- '0.00466754476190479'
- ],
- [
- 1495707874.925,
- '0.006059954380517721'
- ],
- [
- 1495707934.925,
- '0.005085657142856972'
- ],
- [
- 1495707994.925,
- '0.005897665238095296'
- ],
- [
- 1495708054.925,
- '0.0062282023199555885'
- ],
- [
- 1495708114.925,
- '0.00526214553236979'
- ],
- [
- 1495708174.925,
- '0.0044803300000000644'
- ],
- [
- 1495708234.925,
- '0.005421443333333592'
- ],
- [
- 1495708294.925,
- '0.005694326244512144'
- ],
- [
- 1495708354.925,
- '0.005527721904761457'
- ],
- [
- 1495708414.925,
- '0.005988819523809819'
- ],
- [
- 1495708474.925,
- '0.005484704285714448'
- ],
- [
- 1495708534.925,
- '0.005041123649230085'
- ],
- [
- 1495708594.925,
- '0.005717767639612059'
- ],
- [
- 1495708654.925,
- '0.005412954417342863'
- ],
- [
- 1495708714.925,
- '0.005833343333333254'
- ],
- [
- 1495708774.925,
- '0.005448135238094969'
- ],
- [
- 1495708834.925,
- '0.005117341428571432'
- ],
- [
- 1495708894.925,
- '0.005888345825277833'
- ],
- [
- 1495708954.925,
- '0.005398543809524135'
- ],
- [
- 1495709014.925,
- '0.005325611428571416'
- ],
- [
- 1495709074.925,
- '0.005848668571428527'
- ],
- [
- 1495709134.925,
- '0.005135003105145044'
- ],
- [
- 1495709194.925,
- '0.0054551400000003'
- ],
- [
- 1495709254.925,
- '0.005319472937322171'
- ],
- [
- 1495709314.925,
- '0.00585677857142792'
- ],
- [
- 1495709374.925,
- '0.0062146261904759215'
- ],
- [
- 1495709434.925,
- '0.0067105060904182265'
- ],
- [
- 1495709494.925,
- '0.005829691904762108'
- ],
- [
- 1495709554.925,
- '0.005719280952381261'
- ],
- [
- 1495709614.925,
- '0.005682603793416407'
- ],
- [
- 1495709674.925,
- '0.0055272846277326934'
- ],
- [
- 1495709734.925,
- '0.0057123680952386735'
- ],
- [
- 1495709794.925,
- '0.00520597958075818'
- ],
- [
- 1495709854.925,
- '0.005584358957263837'
- ],
- [
- 1495709914.925,
- '0.005601104275197466'
- ],
- [
- 1495709974.925,
- '0.005991657142857066'
- ],
- [
- 1495710034.925,
- '0.00553722238095218'
- ],
- [
- 1495710094.925,
- '0.005127883122696293'
- ],
- [
- 1495710154.925,
- '0.005498111927534584'
- ],
- [
- 1495710214.925,
- '0.005609934069084202'
- ],
- [
- 1495710274.925,
- '0.00459206285714307'
- ],
- [
- 1495710334.925,
- '0.0047910828571428084'
- ],
- [
- 1495710394.925,
- '0.0056014671288845685'
- ],
- [
- 1495710454.925,
- '0.005686936791078528'
- ],
- [
- 1495710514.925,
- '0.00444480476190448'
- ],
- [
- 1495710574.925,
- '0.005780394696738921'
- ],
- [
- 1495710634.925,
- '0.0053107227550210365'
- ],
- [
- 1495710694.925,
- '0.005096031495761817'
- ],
- [
- 1495710754.925,
- '0.005451377979091524'
- ],
- [
- 1495710814.925,
- '0.005328136666667083'
- ],
- [
- 1495710874.925,
- '0.006020612857143043'
- ],
- [
- 1495710934.925,
- '0.0061063585714285365'
- ],
- [
- 1495710994.925,
- '0.006018346015752312'
- ],
- [
- 1495711054.925,
- '0.005069130952381193'
- ],
- [
- 1495711114.925,
- '0.005458406190476052'
- ],
- [
- 1495711174.925,
- '0.00577219190476179'
- ],
- [
- 1495711234.925,
- '0.005760814645658314'
- ],
- [
- 1495711294.925,
- '0.005371875716579101'
- ],
- [
- 1495711354.925,
- '0.0064232666666665834'
- ],
- [
- 1495711414.925,
- '0.009369806836906667'
- ],
- [
- 1495711474.925,
- '0.008956864761904692'
- ],
- [
- 1495711534.925,
- '0.005266849368559271'
- ],
- [
- 1495711594.925,
- '0.005335111364934262'
- ],
- [
- 1495711654.925,
- '0.006461778319586945'
- ],
- [
- 1495711714.925,
- '0.004687939890762393'
- ],
- [
- 1495711774.925,
- '0.004438831245760684'
- ],
- [
- 1495711834.925,
- '0.005142786666666613'
- ],
- [
- 1495711894.925,
- '0.007257734212054963'
- ],
- [
- 1495711954.925,
- '0.005621991904761494'
- ],
- [
- 1495712014.925,
- '0.007868689999999862'
- ],
- [
- 1495712074.925,
- '0.00910970215275738'
- ],
- [
- 1495712134.925,
- '0.006151004285714278'
- ],
- [
- 1495712194.925,
- '0.005447120924961522'
- ],
- [
- 1495712254.925,
- '0.005150705153929503'
- ],
- [
- 1495712314.925,
- '0.006358108714969314'
- ],
- [
- 1495712374.925,
- '0.0057725354795696475'
- ],
- [
- 1495712434.925,
- '0.005232139047619015'
- ],
- [
- 1495712494.925,
- '0.004932809617949037'
- ],
- [
- 1495712554.925,
- '0.004511607508499662'
- ],
- [
- 1495712614.925,
- '0.00440487701522666'
- ],
- [
- 1495712674.925,
- '0.005479113333333174'
- ],
- [
- 1495712734.925,
- '0.004726317619047547'
- ],
- [
- 1495712794.925,
- '0.005582041102958029'
- ],
- [
- 1495712854.925,
- '0.006381481216082099'
- ],
- [
- 1495712914.925,
- '0.005474260014095208'
- ],
- [
- 1495712974.925,
- '0.00567597142857188'
- ],
- [
- 1495713034.925,
- '0.0064741233333332985'
- ],
- [
- 1495713094.925,
- '0.005467475714285271'
- ],
- [
- 1495713154.925,
- '0.004868648393824457'
- ],
- [
- 1495713214.925,
- '0.005254923286444893'
- ],
- [
- 1495713274.925,
- '0.005599217150312865'
- ],
- [
- 1495713334.925,
- '0.005105413720618919'
- ],
- [
- 1495713394.925,
- '0.007246073333333279'
- ],
- [
- 1495713454.925,
- '0.005990312380952272'
- ],
- [
- 1495713514.925,
- '0.005594601853351101'
- ],
- [
- 1495713574.925,
- '0.004739258673727054'
- ],
- [
- 1495713634.925,
- '0.003932121428571783'
- ],
- [
- 1495713694.925,
- '0.005018188268459395'
- ],
- [
- 1495713754.925,
- '0.004538238095237985'
- ],
- [
- 1495713814.925,
- '0.00561816643265435'
- ],
- [
- 1495713874.925,
- '0.0063132584495033586'
- ],
- [
- 1495713934.925,
- '0.00442385238095213'
- ],
- [
- 1495713994.925,
- '0.004181795887658453'
- ],
- [
- 1495714054.925,
- '0.004437759047619037'
- ],
- [
- 1495714114.925,
- '0.006421748157178241'
- ],
- [
- 1495714174.925,
- '0.006525143809523842'
- ],
- [
- 1495714234.925,
- '0.004715904935144247'
- ],
- [
- 1495714294.925,
- '0.005966040152763461'
- ],
- [
- 1495714354.925,
- '0.005614535466921674'
- ],
- [
- 1495714414.925,
- '0.004934375119415906'
- ],
- [
- 1495714474.925,
- '0.0054122933333327385'
- ],
- [
- 1495714534.925,
- '0.004926540699612279'
- ],
- [
- 1495714594.925,
- '0.006124649517134237'
- ],
- [
- 1495714654.925,
- '0.004629427092013995'
- ],
- [
- 1495714714.925,
- '0.005117951257607005'
- ],
- [
- 1495714774.925,
- '0.004868774512685422'
- ],
- [
- 1495714834.925,
- '0.005310093333333399'
- ],
- [
- 1495714894.925,
- '0.0054907752286127345'
- ],
- [
- 1495714954.925,
- '0.004597678117351089'
- ],
- [
- 1495715014.925,
- '0.0059622552380952'
- ],
- [
- 1495715074.925,
- '0.005352457072655368'
- ],
- [
- 1495715134.925,
- '0.005491630952381143'
- ],
- [
- 1495715194.925,
- '0.006391770078379791'
- ],
- [
- 1495715254.925,
- '0.005933472857142518'
- ],
- [
- 1495715314.925,
- '0.005301314285714163'
- ],
- [
- 1495715374.925,
- '0.0058352959724814165'
- ],
- [
- 1495715434.925,
- '0.006154755147867044'
- ],
- [
- 1495715494.925,
- '0.009391935637482038'
- ],
- [
- 1495715554.925,
- '0.007846462857142592'
- ],
- [
- 1495715614.925,
- '0.00477608215316353'
- ],
- [
- 1495715674.925,
- '0.006132865238094998'
- ],
- [
- 1495715734.925,
- '0.006159762457649516'
- ],
- [
- 1495715794.925,
- '0.005957307073265968'
- ],
- [
- 1495715854.925,
- '0.006652319091792501'
- ],
- [
- 1495715914.925,
- '0.005493557402895287'
- ],
- [
- 1495715974.925,
- '0.0058652434829145166'
- ],
- [
- 1495716034.925,
- '0.005627400430468021'
- ],
- [
- 1495716094.925,
- '0.006240656190475609'
- ],
- [
- 1495716154.925,
- '0.006305997676168624'
- ],
- [
- 1495716214.925,
- '0.005388057732783248'
- ],
- [
- 1495716274.925,
- '0.0052814916048421244'
- ],
- [
- 1495716334.925,
- '0.00699498614272497'
- ],
- [
- 1495716394.925,
- '0.00627768693035141'
- ],
- [
- 1495716454.925,
- '0.0042411487048161145'
- ],
- [
- 1495716514.925,
- '0.005348647473627653'
- ],
- [
- 1495716574.925,
- '0.0047176657142853975'
- ],
- [
- 1495716634.925,
- '0.004437898571428686'
- ],
- [
- 1495716694.925,
- '0.004923527366927261'
- ],
- [
- 1495716754.925,
- '0.005131935066048421'
- ],
- [
- 1495716814.925,
- '0.005046949523809611'
- ],
- [
- 1495716874.925,
- '0.00547184095238092'
- ],
- [
- 1495716934.925,
- '0.005224140016380444'
- ],
- [
- 1495716994.925,
- '0.005297991171665292'
- ],
- [
- 1495717054.925,
- '0.005492965995623498'
- ],
- [
- 1495717114.925,
- '0.005754660000000403'
- ],
- [
- 1495717174.925,
- '0.005949557138639285'
- ],
- [
- 1495717234.925,
- '0.006091816112534666'
- ],
- [
- 1495717294.925,
- '0.005554210080192063'
- ],
- [
- 1495717354.925,
- '0.006411504395279871'
- ],
- [
- 1495717414.925,
- '0.006319643996609606'
- ],
- [
- 1495717474.925,
- '0.005539174405717675'
- ],
- [
- 1495717534.925,
- '0.0053157078842772255'
- ],
- [
- 1495717594.925,
- '0.005247480952381066'
- ],
- [
- 1495717654.925,
- '0.004820141620396252'
- ],
- [
- 1495717714.925,
- '0.005906173868322844'
- ],
- [
- 1495717774.925,
- '0.006173117219570961'
- ],
- [
- 1495717834.925,
- '0.005963340952380661'
- ],
- [
- 1495717894.925,
- '0.005698976627681527'
- ],
- [
- 1495717954.925,
- '0.004751279096346378'
- ],
- [
- 1495718014.925,
- '0.005733142379359711'
- ],
- [
- 1495718074.925,
- '0.004831689010348035'
- ],
- [
- 1495718134.925,
- '0.005188370476191092'
- ],
- [
- 1495718194.925,
- '0.004793227554547938'
- ],
- [
- 1495718254.925,
- '0.003997442857142731'
- ],
- [
- 1495718314.925,
- '0.004386040132951264'
- ]
- ]
- }
- ]
- }
- ]
- }
- ]
- }
+ metric: {},
+ values: [
+ [1495700554.925, '0.0010794445585559514'],
+ [1495700614.925, '0.003927214935433527'],
+ [1495700674.925, '0.0053045219047619975'],
+ [1495700734.925, '0.0048892095238097155'],
+ [1495700794.925, '0.005827140952381137'],
+ [1495700854.925, '0.00569846906219937'],
+ [1495700914.925, '0.004972616802849382'],
+ [1495700974.925, '0.005117509523809902'],
+ [1495701034.925, '0.00512389061919564'],
+ [1495701094.925, '0.005199100501890691'],
+ [1495701154.925, '0.005415746394885837'],
+ [1495701214.925, '0.005607682788146286'],
+ [1495701274.925, '0.005641300000000118'],
+ [1495701334.925, '0.0071166279368766495'],
+ [1495701394.925, '0.0063242138095234044'],
+ [1495701454.925, '0.005793314698235304'],
+ [1495701514.925, '0.00703934942237556'],
+ [1495701574.925, '0.006357007076123191'],
+ [1495701634.925, '0.003753167300126738'],
+ [1495701694.925, '0.005018469678430698'],
+ [1495701754.925, '0.0045217153371887'],
+ [1495701814.925, '0.006140104285714119'],
+ [1495701874.925, '0.004818684285714102'],
+ [1495701934.925, '0.005079509718955242'],
+ [1495701994.925, '0.005059981142498263'],
+ [1495702054.925, '0.005269098389538773'],
+ [1495702114.925, '0.005269954285714175'],
+ [1495702174.925, '0.014199241435795856'],
+ [1495702234.925, '0.01511936843111017'],
+ [1495702294.925, '0.0060933692920682875'],
+ [1495702354.925, '0.004945682380952493'],
+ [1495702414.925, '0.005641266666666565'],
+ [1495702474.925, '0.005223752857142996'],
+ [1495702534.925, '0.005743098505699831'],
+ [1495702594.925, '0.00538493380952391'],
+ [1495702654.925, '0.005507793883751339'],
+ [1495702714.925, '0.005666705714285466'],
+ [1495702774.925, '0.006231530000000112'],
+ [1495702834.925, '0.006570768635394899'],
+ [1495702894.925, '0.005551146666666895'],
+ [1495702954.925, '0.005602604737098058'],
+ [1495703014.925, '0.00613993580402159'],
+ [1495703074.925, '0.004770258764368832'],
+ [1495703134.925, '0.005512376671364914'],
+ [1495703194.925, '0.005254436666666674'],
+ [1495703254.925, '0.0050109839141320505'],
+ [1495703314.925, '0.0049478019256960016'],
+ [1495703374.925, '0.0037666860965123463'],
+ [1495703434.925, '0.004813526061656314'],
+ [1495703494.925, '0.005047748095238278'],
+ [1495703554.925, '0.00386494081008772'],
+ [1495703614.925, '0.004304037408111405'],
+ [1495703674.925, '0.004999466661587168'],
+ [1495703734.925, '0.004689140476190834'],
+ [1495703794.925, '0.004746126153582475'],
+ [1495703854.925, '0.004482706382572302'],
+ [1495703914.925, '0.004032808931864524'],
+ [1495703974.925, '0.005728319047618988'],
+ [1495704034.925, '0.004436139179627006'],
+ [1495704094.925, '0.004553455714285617'],
+ [1495704154.925, '0.003455244285714341'],
+ [1495704214.925, '0.004742244761904621'],
+ [1495704274.925, '0.005366978571428422'],
+ [1495704334.925, '0.004257954837665058'],
+ [1495704394.925, '0.005431603259831257'],
+ [1495704454.925, '0.0052009214498621986'],
+ [1495704514.925, '0.004317201904761618'],
+ [1495704574.925, '0.004307384285714157'],
+ [1495704634.925, '0.004789801146644822'],
+ [1495704694.925, '0.0051429795906706485'],
+ [1495704754.925, '0.005322495714285479'],
+ [1495704814.925, '0.004512809333244233'],
+ [1495704874.925, '0.004953843582568726'],
+ [1495704934.925, '0.005812690120858119'],
+ [1495704994.925, '0.004997024285714838'],
+ [1495705054.925, '0.005246216154439592'],
+ [1495705114.925, '0.0063494966618726795'],
+ [1495705174.925, '0.005306004342898225'],
+ [1495705234.925, '0.005081412857142978'],
+ [1495705294.925, '0.00511409523809522'],
+ [1495705354.925, '0.0047861001481192'],
+ [1495705414.925, '0.005107688228042962'],
+ [1495705474.925, '0.005271929582294012'],
+ [1495705534.925, '0.004453254502681249'],
+ [1495705594.925, '0.005799134293959226'],
+ [1495705654.925, '0.005340865929502478'],
+ [1495705714.925, '0.004911654761904942'],
+ [1495705774.925, '0.005888234873953261'],
+ [1495705834.925, '0.005565283333332954'],
+ [1495705894.925, '0.005522869047618869'],
+ [1495705954.925, '0.005177549737621646'],
+ [1495706014.925, '0.0053145810232096465'],
+ [1495706074.925, '0.004751095238095275'],
+ [1495706134.925, '0.006242077142856976'],
+ [1495706194.925, '0.00621034406957871'],
+ [1495706254.925, '0.006887592738978596'],
+ [1495706314.925, '0.006328128779726213'],
+ [1495706374.925, '0.007488363809523927'],
+ [1495706434.925, '0.006193758571428157'],
+ [1495706494.925, '0.0068798371839706935'],
+ [1495706554.925, '0.005757034340423128'],
+ [1495706614.925, '0.004571388497294698'],
+ [1495706674.925, '0.00620283044923395'],
+ [1495706734.925, '0.005607562380952455'],
+ [1495706794.925, '0.005506969933620308'],
+ [1495706854.925, '0.005621118095238131'],
+ [1495706914.925, '0.004876606098698849'],
+ [1495706974.925, '0.0047871205988517206'],
+ [1495707034.925, '0.00526405939458784'],
+ [1495707094.925, '0.005716323800605852'],
+ [1495707154.925, '0.005301459523809575'],
+ [1495707214.925, '0.0051613042857144905'],
+ [1495707274.925, '0.005384792857142714'],
+ [1495707334.925, '0.005259719047619222'],
+ [1495707394.925, '0.00584101142857182'],
+ [1495707454.925, '0.0060066121920326326'],
+ [1495707514.925, '0.006359978571428453'],
+ [1495707574.925, '0.006315876322151109'],
+ [1495707634.925, '0.005590012517198831'],
+ [1495707694.925, '0.005517419877137072'],
+ [1495707754.925, '0.006089813430348506'],
+ [1495707814.925, '0.00466754476190479'],
+ [1495707874.925, '0.006059954380517721'],
+ [1495707934.925, '0.005085657142856972'],
+ [1495707994.925, '0.005897665238095296'],
+ [1495708054.925, '0.0062282023199555885'],
+ [1495708114.925, '0.00526214553236979'],
+ [1495708174.925, '0.0044803300000000644'],
+ [1495708234.925, '0.005421443333333592'],
+ [1495708294.925, '0.005694326244512144'],
+ [1495708354.925, '0.005527721904761457'],
+ [1495708414.925, '0.005988819523809819'],
+ [1495708474.925, '0.005484704285714448'],
+ [1495708534.925, '0.005041123649230085'],
+ [1495708594.925, '0.005717767639612059'],
+ [1495708654.925, '0.005412954417342863'],
+ [1495708714.925, '0.005833343333333254'],
+ [1495708774.925, '0.005448135238094969'],
+ [1495708834.925, '0.005117341428571432'],
+ [1495708894.925, '0.005888345825277833'],
+ [1495708954.925, '0.005398543809524135'],
+ [1495709014.925, '0.005325611428571416'],
+ [1495709074.925, '0.005848668571428527'],
+ [1495709134.925, '0.005135003105145044'],
+ [1495709194.925, '0.0054551400000003'],
+ [1495709254.925, '0.005319472937322171'],
+ [1495709314.925, '0.00585677857142792'],
+ [1495709374.925, '0.0062146261904759215'],
+ [1495709434.925, '0.0067105060904182265'],
+ [1495709494.925, '0.005829691904762108'],
+ [1495709554.925, '0.005719280952381261'],
+ [1495709614.925, '0.005682603793416407'],
+ [1495709674.925, '0.0055272846277326934'],
+ [1495709734.925, '0.0057123680952386735'],
+ [1495709794.925, '0.00520597958075818'],
+ [1495709854.925, '0.005584358957263837'],
+ [1495709914.925, '0.005601104275197466'],
+ [1495709974.925, '0.005991657142857066'],
+ [1495710034.925, '0.00553722238095218'],
+ [1495710094.925, '0.005127883122696293'],
+ [1495710154.925, '0.005498111927534584'],
+ [1495710214.925, '0.005609934069084202'],
+ [1495710274.925, '0.00459206285714307'],
+ [1495710334.925, '0.0047910828571428084'],
+ [1495710394.925, '0.0056014671288845685'],
+ [1495710454.925, '0.005686936791078528'],
+ [1495710514.925, '0.00444480476190448'],
+ [1495710574.925, '0.005780394696738921'],
+ [1495710634.925, '0.0053107227550210365'],
+ [1495710694.925, '0.005096031495761817'],
+ [1495710754.925, '0.005451377979091524'],
+ [1495710814.925, '0.005328136666667083'],
+ [1495710874.925, '0.006020612857143043'],
+ [1495710934.925, '0.0061063585714285365'],
+ [1495710994.925, '0.006018346015752312'],
+ [1495711054.925, '0.005069130952381193'],
+ [1495711114.925, '0.005458406190476052'],
+ [1495711174.925, '0.00577219190476179'],
+ [1495711234.925, '0.005760814645658314'],
+ [1495711294.925, '0.005371875716579101'],
+ [1495711354.925, '0.0064232666666665834'],
+ [1495711414.925, '0.009369806836906667'],
+ [1495711474.925, '0.008956864761904692'],
+ [1495711534.925, '0.005266849368559271'],
+ [1495711594.925, '0.005335111364934262'],
+ [1495711654.925, '0.006461778319586945'],
+ [1495711714.925, '0.004687939890762393'],
+ [1495711774.925, '0.004438831245760684'],
+ [1495711834.925, '0.005142786666666613'],
+ [1495711894.925, '0.007257734212054963'],
+ [1495711954.925, '0.005621991904761494'],
+ [1495712014.925, '0.007868689999999862'],
+ [1495712074.925, '0.00910970215275738'],
+ [1495712134.925, '0.006151004285714278'],
+ [1495712194.925, '0.005447120924961522'],
+ [1495712254.925, '0.005150705153929503'],
+ [1495712314.925, '0.006358108714969314'],
+ [1495712374.925, '0.0057725354795696475'],
+ [1495712434.925, '0.005232139047619015'],
+ [1495712494.925, '0.004932809617949037'],
+ [1495712554.925, '0.004511607508499662'],
+ [1495712614.925, '0.00440487701522666'],
+ [1495712674.925, '0.005479113333333174'],
+ [1495712734.925, '0.004726317619047547'],
+ [1495712794.925, '0.005582041102958029'],
+ [1495712854.925, '0.006381481216082099'],
+ [1495712914.925, '0.005474260014095208'],
+ [1495712974.925, '0.00567597142857188'],
+ [1495713034.925, '0.0064741233333332985'],
+ [1495713094.925, '0.005467475714285271'],
+ [1495713154.925, '0.004868648393824457'],
+ [1495713214.925, '0.005254923286444893'],
+ [1495713274.925, '0.005599217150312865'],
+ [1495713334.925, '0.005105413720618919'],
+ [1495713394.925, '0.007246073333333279'],
+ [1495713454.925, '0.005990312380952272'],
+ [1495713514.925, '0.005594601853351101'],
+ [1495713574.925, '0.004739258673727054'],
+ [1495713634.925, '0.003932121428571783'],
+ [1495713694.925, '0.005018188268459395'],
+ [1495713754.925, '0.004538238095237985'],
+ [1495713814.925, '0.00561816643265435'],
+ [1495713874.925, '0.0063132584495033586'],
+ [1495713934.925, '0.00442385238095213'],
+ [1495713994.925, '0.004181795887658453'],
+ [1495714054.925, '0.004437759047619037'],
+ [1495714114.925, '0.006421748157178241'],
+ [1495714174.925, '0.006525143809523842'],
+ [1495714234.925, '0.004715904935144247'],
+ [1495714294.925, '0.005966040152763461'],
+ [1495714354.925, '0.005614535466921674'],
+ [1495714414.925, '0.004934375119415906'],
+ [1495714474.925, '0.0054122933333327385'],
+ [1495714534.925, '0.004926540699612279'],
+ [1495714594.925, '0.006124649517134237'],
+ [1495714654.925, '0.004629427092013995'],
+ [1495714714.925, '0.005117951257607005'],
+ [1495714774.925, '0.004868774512685422'],
+ [1495714834.925, '0.005310093333333399'],
+ [1495714894.925, '0.0054907752286127345'],
+ [1495714954.925, '0.004597678117351089'],
+ [1495715014.925, '0.0059622552380952'],
+ [1495715074.925, '0.005352457072655368'],
+ [1495715134.925, '0.005491630952381143'],
+ [1495715194.925, '0.006391770078379791'],
+ [1495715254.925, '0.005933472857142518'],
+ [1495715314.925, '0.005301314285714163'],
+ [1495715374.925, '0.0058352959724814165'],
+ [1495715434.925, '0.006154755147867044'],
+ [1495715494.925, '0.009391935637482038'],
+ [1495715554.925, '0.007846462857142592'],
+ [1495715614.925, '0.00477608215316353'],
+ [1495715674.925, '0.006132865238094998'],
+ [1495715734.925, '0.006159762457649516'],
+ [1495715794.925, '0.005957307073265968'],
+ [1495715854.925, '0.006652319091792501'],
+ [1495715914.925, '0.005493557402895287'],
+ [1495715974.925, '0.0058652434829145166'],
+ [1495716034.925, '0.005627400430468021'],
+ [1495716094.925, '0.006240656190475609'],
+ [1495716154.925, '0.006305997676168624'],
+ [1495716214.925, '0.005388057732783248'],
+ [1495716274.925, '0.0052814916048421244'],
+ [1495716334.925, '0.00699498614272497'],
+ [1495716394.925, '0.00627768693035141'],
+ [1495716454.925, '0.0042411487048161145'],
+ [1495716514.925, '0.005348647473627653'],
+ [1495716574.925, '0.0047176657142853975'],
+ [1495716634.925, '0.004437898571428686'],
+ [1495716694.925, '0.004923527366927261'],
+ [1495716754.925, '0.005131935066048421'],
+ [1495716814.925, '0.005046949523809611'],
+ [1495716874.925, '0.00547184095238092'],
+ [1495716934.925, '0.005224140016380444'],
+ [1495716994.925, '0.005297991171665292'],
+ [1495717054.925, '0.005492965995623498'],
+ [1495717114.925, '0.005754660000000403'],
+ [1495717174.925, '0.005949557138639285'],
+ [1495717234.925, '0.006091816112534666'],
+ [1495717294.925, '0.005554210080192063'],
+ [1495717354.925, '0.006411504395279871'],
+ [1495717414.925, '0.006319643996609606'],
+ [1495717474.925, '0.005539174405717675'],
+ [1495717534.925, '0.0053157078842772255'],
+ [1495717594.925, '0.005247480952381066'],
+ [1495717654.925, '0.004820141620396252'],
+ [1495717714.925, '0.005906173868322844'],
+ [1495717774.925, '0.006173117219570961'],
+ [1495717834.925, '0.005963340952380661'],
+ [1495717894.925, '0.005698976627681527'],
+ [1495717954.925, '0.004751279096346378'],
+ [1495718014.925, '0.005733142379359711'],
+ [1495718074.925, '0.004831689010348035'],
+ [1495718134.925, '0.005188370476191092'],
+ [1495718194.925, '0.004793227554547938'],
+ [1495718254.925, '0.003997442857142731'],
+ [1495718314.925, '0.004386040132951264'],
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
],
- 'last_update': '2017-05-25T13:18:34.949Z'
+ last_update: '2017-05-25T13:18:34.949Z',
};
export default metricsGroupsAPIResponse;
@@ -2432,41 +651,44 @@ export const deploymentData = [
id: 111,
iid: 3,
sha: 'f5bcd1d9dac6fa4137e2510b9ccd134ef2e84187',
- commitUrl: 'http://test.host/frontend-fixtures/environments-project/commit/f5bcd1d9dac6fa4137e2510b9ccd134ef2e84187',
+ commitUrl:
+ 'http://test.host/frontend-fixtures/environments-project/commit/f5bcd1d9dac6fa4137e2510b9ccd134ef2e84187',
ref: {
- name: 'master'
+ name: 'master',
},
created_at: '2017-05-31T21:23:37.881Z',
tag: false,
tagUrl: 'http://test.host/frontend-fixtures/environments-project/tags/false',
- 'last?': true
+ 'last?': true,
},
{
id: 110,
iid: 2,
sha: 'f5bcd1d9dac6fa4137e2510b9ccd134ef2e84187',
- commitUrl: 'http://test.host/frontend-fixtures/environments-project/commit/f5bcd1d9dac6fa4137e2510b9ccd134ef2e84187',
+ commitUrl:
+ 'http://test.host/frontend-fixtures/environments-project/commit/f5bcd1d9dac6fa4137e2510b9ccd134ef2e84187',
ref: {
- name: 'master'
+ name: 'master',
},
created_at: '2017-05-30T20:08:04.629Z',
tag: false,
- tagUrl: 'http://test.host/frontend-fixtures/environments-project/tags/false',
- 'last?': false
+ tagUrl: 'http://test.host/frontend-fixtures/environments-project/tags/false',
+ 'last?': false,
},
{
id: 109,
iid: 1,
sha: '6511e58faafaa7ad2228990ec57f19d66f7db7c2',
- commitUrl: 'http://test.host/frontend-fixtures/environments-project/commit/6511e58faafaa7ad2228990ec57f19d66f7db7c2',
+ commitUrl:
+ 'http://test.host/frontend-fixtures/environments-project/commit/6511e58faafaa7ad2228990ec57f19d66f7db7c2',
ref: {
- name: 'update2-readme'
+ name: 'update2-readme',
},
created_at: '2017-05-30T17:42:38.409Z',
tag: false,
tagUrl: 'http://test.host/frontend-fixtures/environments-project/tags/false',
- 'last?': false
- }
+ 'last?': false,
+ },
];
export const statePaths = {
@@ -2476,5844 +698,5844 @@ export const statePaths = {
};
export const singleRowMetricsMultipleSeries = [
- {
- 'title': 'Multiple Time Series',
- 'weight': 1,
- 'y_label': 'Request Rates',
- 'queries': [
- {
- 'query_range': 'sum(rate(nginx_responses_total{environment="production"}[2m])) by (status_code)',
- 'label': 'Requests',
- 'unit': 'Req/sec',
- 'result': [
- {
- 'metric': {
- 'status_code': '1xx'
- },
- 'values': [
- {
- 'time': '2017-08-27T11:01:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:02:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:03:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:04:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:05:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:06:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:07:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:08:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:09:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:10:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:11:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:12:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:13:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:14:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:15:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:16:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:17:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:18:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:19:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:20:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:21:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:22:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:23:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:24:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:25:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:26:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:27:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:28:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:29:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:30:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:31:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:32:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:33:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:34:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:35:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:36:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:37:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:38:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:39:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:40:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:41:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:42:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:43:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:44:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:45:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:46:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:47:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:48:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:49:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:50:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:51:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:52:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:53:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:54:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:55:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:56:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:57:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:58:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T11:59:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:00:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:01:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:02:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:03:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:04:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:05:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:06:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:07:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:08:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:09:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:10:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:11:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:12:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:13:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:14:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:15:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:16:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:17:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:18:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:19:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:20:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:21:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:22:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:23:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:24:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:25:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:26:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:27:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:28:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:29:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:30:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:31:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:32:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:33:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:34:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:35:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:36:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:37:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:38:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:39:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:40:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:41:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:42:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:43:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:44:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:45:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:46:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:47:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:48:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:49:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:50:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:51:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:52:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:53:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:54:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:55:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:56:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:57:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:58:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T12:59:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:00:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:01:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:02:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:03:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:04:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:05:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:06:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:07:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:08:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:09:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:10:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:11:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:12:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:13:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:14:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:15:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:16:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:17:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:18:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:19:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:20:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:21:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:22:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:23:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:24:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:25:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:26:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:27:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:28:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:29:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:30:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:31:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:32:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:33:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:34:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:35:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:36:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:37:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:38:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:39:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:40:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:41:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:42:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:43:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:44:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:45:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:46:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:47:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:48:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:49:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:50:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:51:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:52:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:53:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:54:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:55:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:56:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:57:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:58:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T13:59:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:00:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:01:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:02:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:03:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:04:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:05:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:06:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:07:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:08:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:09:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:10:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:11:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:12:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:13:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:14:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:15:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:16:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:17:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:18:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:19:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:20:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:21:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:22:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:23:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:24:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:25:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:26:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:27:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:28:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:29:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:30:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:31:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:32:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:33:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:34:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:35:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:36:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:37:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:38:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:39:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:40:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:41:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:42:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:43:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:44:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:45:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:46:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:47:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:48:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:49:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:50:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:51:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:52:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:53:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:54:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:55:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:56:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:57:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:58:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T14:59:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:00:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:01:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:02:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:03:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:04:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:05:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:06:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:07:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:08:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:09:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:10:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:11:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:12:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:13:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:14:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:15:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:16:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:17:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:18:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:19:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:20:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:21:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:22:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:23:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:24:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:25:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:26:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:27:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:28:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:29:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:30:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:31:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:32:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:33:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:34:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:35:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:36:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:37:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:38:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:39:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:40:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:41:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:42:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:43:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:44:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:45:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:46:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:47:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:48:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:49:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:50:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:51:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:52:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:53:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:54:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:55:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:56:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:57:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:58:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T15:59:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:00:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:01:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:02:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:03:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:04:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:05:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:06:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:07:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:08:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:09:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:10:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:11:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:12:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:13:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:14:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:15:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:16:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:17:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:18:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:19:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:20:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:21:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:22:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:23:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:24:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:25:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:26:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:27:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:28:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:29:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:30:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:31:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:32:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:33:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:34:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:35:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:36:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:37:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:38:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:39:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:40:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:41:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:42:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:43:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:44:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:45:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:46:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:47:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:48:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:49:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:50:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:51:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:52:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:53:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:54:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:55:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:56:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:57:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:58:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T16:59:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:00:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:01:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:02:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:03:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:04:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:05:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:06:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:07:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:08:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:09:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:10:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:11:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:12:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:13:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:14:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:15:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:16:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:17:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:18:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:19:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:20:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:21:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:22:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:23:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:24:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:25:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:26:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:27:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:28:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:29:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:30:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:31:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:32:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:33:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:34:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:35:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:36:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:37:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:38:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:39:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:40:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:41:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:42:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:43:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:44:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:45:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:46:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:47:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:48:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:49:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:50:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:51:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:52:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:53:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:54:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:55:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:56:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:57:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:58:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T17:59:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:00:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:01:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:02:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:03:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:04:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:05:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:06:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:07:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:08:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:09:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:10:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:11:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:12:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:13:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:14:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:15:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:16:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:17:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:18:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:19:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:20:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:21:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:22:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:23:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:24:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:25:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:26:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:27:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:28:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:29:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:30:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:31:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:32:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:33:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:34:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:35:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:36:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:37:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:38:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:39:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:40:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:41:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:42:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:43:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:44:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:45:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:46:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:47:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:48:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:49:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:50:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:51:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:52:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:53:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:54:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:55:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:56:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:57:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:58:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T18:59:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T19:00:51.462Z',
- 'value': '0'
- },
- {
- 'time': '2017-08-27T19:01:51.462Z',
- 'value': '0'
- }
- ]
- },
- {
- 'metric': {
- 'status_code': '2xx'
- },
- 'values': [
- {
- 'time': '2017-08-27T11:01:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:02:51.462Z',
- 'value': '1.2571428571428571'
- },
- {
- 'time': '2017-08-27T11:03:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:04:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:05:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:06:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:07:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:08:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:09:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:10:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:11:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:12:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:13:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:14:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:15:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:16:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:17:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:18:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:19:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:20:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:21:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:22:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:23:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:24:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:25:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:26:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:27:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:28:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:29:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:30:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:31:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:32:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:33:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:34:51.462Z',
- 'value': '1.333320635041571'
- },
- {
- 'time': '2017-08-27T11:35:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:36:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:37:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:38:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:39:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:40:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:41:51.462Z',
- 'value': '1.3333587306424883'
- },
- {
- 'time': '2017-08-27T11:42:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:43:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:44:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:45:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:46:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:47:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:48:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:49:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T11:50:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:51:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:52:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:53:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:54:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:55:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:56:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:57:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T11:58:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T11:59:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:00:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:01:51.462Z',
- 'value': '1.3333460318669703'
- },
- {
- 'time': '2017-08-27T12:02:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:03:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:04:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:05:51.462Z',
- 'value': '1.31427319739812'
- },
- {
- 'time': '2017-08-27T12:06:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:07:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:08:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:09:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:10:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:11:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:12:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:13:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:14:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:15:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:16:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:17:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:18:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:19:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:20:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:21:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:22:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:23:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:24:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:25:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:26:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:27:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:28:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:29:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:30:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:31:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:32:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:33:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:34:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:35:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:36:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:37:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:38:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:39:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:40:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:41:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:42:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:43:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:44:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:45:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:46:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:47:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:48:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:49:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:50:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:51:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:52:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:53:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:54:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T12:55:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:56:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:57:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T12:58:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T12:59:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T13:00:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T13:01:51.462Z',
- 'value': '1.295225759754669'
- },
- {
- 'time': '2017-08-27T13:02:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:03:51.462Z',
- 'value': '1.2952627669098458'
- },
- {
- 'time': '2017-08-27T13:04:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:05:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:06:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:07:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:08:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:09:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:10:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:11:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:12:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:13:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:14:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:15:51.462Z',
- 'value': '1.2571428571428571'
- },
- {
- 'time': '2017-08-27T13:16:51.462Z',
- 'value': '1.3333587306424883'
- },
- {
- 'time': '2017-08-27T13:17:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:18:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:19:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:20:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T13:21:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:22:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:23:51.462Z',
- 'value': '1.276190476190476'
- },
- {
- 'time': '2017-08-27T13:24:51.462Z',
- 'value': '1.2571428571428571'
- },
- {
- 'time': '2017-08-27T13:25:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T13:26:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:27:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T13:28:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:29:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:30:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:31:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:32:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T13:33:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:34:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:35:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T13:36:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:37:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:38:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:39:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:40:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:41:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:42:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:43:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:44:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:45:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:46:51.462Z',
- 'value': '1.2571428571428571'
- },
- {
- 'time': '2017-08-27T13:47:51.462Z',
- 'value': '1.276190476190476'
- },
- {
- 'time': '2017-08-27T13:48:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T13:49:51.462Z',
- 'value': '1.295225759754669'
- },
- {
- 'time': '2017-08-27T13:50:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:51:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:52:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:53:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:54:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:55:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:56:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T13:57:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T13:58:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T13:59:51.462Z',
- 'value': '1.295225759754669'
- },
- {
- 'time': '2017-08-27T14:00:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T14:01:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T14:02:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:03:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:04:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:05:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T14:06:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:07:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:08:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:09:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:10:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:11:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:12:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:13:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:14:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:15:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:16:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:17:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T14:18:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:19:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T14:20:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:21:51.462Z',
- 'value': '1.3333079369916765'
- },
- {
- 'time': '2017-08-27T14:22:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:23:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:24:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:25:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T14:26:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:27:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T14:28:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:29:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:30:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T14:31:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:32:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:33:51.462Z',
- 'value': '1.2571428571428571'
- },
- {
- 'time': '2017-08-27T14:34:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:35:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:36:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:37:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:38:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T14:39:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:40:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:41:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:42:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:43:51.462Z',
- 'value': '1.276190476190476'
- },
- {
- 'time': '2017-08-27T14:44:51.462Z',
- 'value': '1.2571428571428571'
- },
- {
- 'time': '2017-08-27T14:45:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:46:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:47:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:48:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:49:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:50:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:51:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T14:52:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:53:51.462Z',
- 'value': '1.333320635041571'
- },
- {
- 'time': '2017-08-27T14:54:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:55:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T14:56:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:57:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T14:58:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T14:59:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T15:00:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:01:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:02:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:03:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:04:51.462Z',
- 'value': '1.2571428571428571'
- },
- {
- 'time': '2017-08-27T15:05:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:06:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:07:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:08:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:09:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:10:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:11:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:12:51.462Z',
- 'value': '1.31427319739812'
- },
- {
- 'time': '2017-08-27T15:13:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:14:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:15:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:16:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T15:17:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:18:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:19:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:20:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T15:21:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:22:51.462Z',
- 'value': '1.3333460318669703'
- },
- {
- 'time': '2017-08-27T15:23:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:24:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:25:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:26:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:27:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:28:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:29:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:30:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:31:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T15:32:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:33:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T15:34:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:35:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T15:36:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:37:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:38:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T15:39:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:40:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:41:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:42:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:43:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:44:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:45:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:46:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:47:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:48:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:49:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T15:50:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:51:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:52:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:53:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:54:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:55:51.462Z',
- 'value': '1.3333587306424883'
- },
- {
- 'time': '2017-08-27T15:56:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T15:57:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:58:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T15:59:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:00:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:01:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:02:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:03:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:04:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:05:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:06:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:07:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:08:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:09:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:10:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:11:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:12:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:13:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:14:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:15:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:16:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:17:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:18:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:19:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:20:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:21:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:22:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:23:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:24:51.462Z',
- 'value': '1.295225759754669'
- },
- {
- 'time': '2017-08-27T16:25:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:26:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:27:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:28:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:29:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:30:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:31:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:32:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:33:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:34:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:35:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:36:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:37:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:38:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:39:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:40:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:41:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:42:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:43:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:44:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:45:51.462Z',
- 'value': '1.3142982314117277'
- },
- {
- 'time': '2017-08-27T16:46:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:47:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:48:51.462Z',
- 'value': '1.333320635041571'
- },
- {
- 'time': '2017-08-27T16:49:51.462Z',
- 'value': '1.31427319739812'
- },
- {
- 'time': '2017-08-27T16:50:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:51:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:52:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:53:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:54:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:55:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T16:56:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:57:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T16:58:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T16:59:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:00:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:01:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:02:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:03:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:04:51.462Z',
- 'value': '1.2952504309564854'
- },
- {
- 'time': '2017-08-27T17:05:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T17:06:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:07:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T17:08:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T17:09:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:10:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:11:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:12:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:13:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:14:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:15:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:16:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:17:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:18:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:19:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:20:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:21:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:22:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:23:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:24:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T17:25:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:26:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:27:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:28:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:29:51.462Z',
- 'value': '1.295225759754669'
- },
- {
- 'time': '2017-08-27T17:30:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:31:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:32:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:33:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:34:51.462Z',
- 'value': '1.295225759754669'
- },
- {
- 'time': '2017-08-27T17:35:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:36:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T17:37:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:38:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:39:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:40:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:41:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:42:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:43:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:44:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T17:45:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:46:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:47:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:48:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T17:49:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:50:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T17:51:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:52:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:53:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:54:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:55:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T17:56:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:57:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T17:58:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T17:59:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T18:00:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:01:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:02:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:03:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:04:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:05:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:06:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:07:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:08:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:09:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:10:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:11:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:12:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T18:13:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:14:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:15:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:16:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:17:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:18:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:19:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:20:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:21:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:22:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:23:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:24:51.462Z',
- 'value': '1.2571428571428571'
- },
- {
- 'time': '2017-08-27T18:25:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:26:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:27:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:28:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:29:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:30:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:31:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:32:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:33:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:34:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:35:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:36:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:37:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T18:38:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:39:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:40:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:41:51.462Z',
- 'value': '1.580952380952381'
- },
- {
- 'time': '2017-08-27T18:42:51.462Z',
- 'value': '1.7333333333333334'
- },
- {
- 'time': '2017-08-27T18:43:51.462Z',
- 'value': '2.057142857142857'
- },
- {
- 'time': '2017-08-27T18:44:51.462Z',
- 'value': '2.1904761904761902'
- },
- {
- 'time': '2017-08-27T18:45:51.462Z',
- 'value': '1.8285714285714287'
- },
- {
- 'time': '2017-08-27T18:46:51.462Z',
- 'value': '2.1142857142857143'
- },
- {
- 'time': '2017-08-27T18:47:51.462Z',
- 'value': '1.619047619047619'
- },
- {
- 'time': '2017-08-27T18:48:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:49:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:50:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T18:51:51.462Z',
- 'value': '1.2952504309564854'
- },
- {
- 'time': '2017-08-27T18:52:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:53:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:54:51.462Z',
- 'value': '1.3333333333333333'
- },
- {
- 'time': '2017-08-27T18:55:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:56:51.462Z',
- 'value': '1.314285714285714'
- },
- {
- 'time': '2017-08-27T18:57:51.462Z',
- 'value': '1.295238095238095'
- },
- {
- 'time': '2017-08-27T18:58:51.462Z',
- 'value': '1.7142857142857142'
- },
- {
- 'time': '2017-08-27T18:59:51.462Z',
- 'value': '1.7333333333333334'
- },
- {
- 'time': '2017-08-27T19:00:51.462Z',
- 'value': '1.3904761904761904'
- },
- {
- 'time': '2017-08-27T19:01:51.462Z',
- 'value': '1.5047619047619047'
- }
- ]
- },
- ],
- 'when': [
- {
- 'value': 'hundred(s)',
- 'color': 'green',
- },
- ],
- }
- ]
- },
- {
- 'title': 'Throughput',
- 'weight': 1,
- 'y_label': 'Requests / Sec',
- 'queries': [
- {
- 'query_range': 'sum(rate(nginx_requests_total{server_zone!=\'*\', server_zone!=\'_\', container_name!=\'POD\',environment=\'production\'}[2m]))',
- 'label': 'Total',
- 'unit': 'req / sec',
- 'result': [
- {
- 'metric': {
-
- },
- 'values': [
- {
- 'time': '2017-08-27T11:01:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:02:51.462Z',
- 'value': '0.45714285714285713'
- },
- {
- 'time': '2017-08-27T11:03:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:04:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:05:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:06:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:07:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:08:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:09:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:10:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:11:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:12:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:13:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:14:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:15:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:16:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:17:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:18:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:19:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:20:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:21:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:22:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:23:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:24:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:25:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:26:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:27:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:28:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:29:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:30:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:31:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:32:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:33:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:34:51.462Z',
- 'value': '0.4952333787297264'
- },
- {
- 'time': '2017-08-27T11:35:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:36:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:37:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:38:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:39:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:40:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:41:51.462Z',
- 'value': '0.49524752852435283'
- },
- {
- 'time': '2017-08-27T11:42:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:43:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:44:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:45:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:46:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:47:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:48:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:49:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T11:50:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:51:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:52:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:53:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:54:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:55:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:56:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:57:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T11:58:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T11:59:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:00:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:01:51.462Z',
- 'value': '0.49524281183630325'
- },
- {
- 'time': '2017-08-27T12:02:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:03:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:04:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:05:51.462Z',
- 'value': '0.4857096599080009'
- },
- {
- 'time': '2017-08-27T12:06:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:07:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:08:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:09:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:10:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:11:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:12:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:13:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:14:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:15:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:16:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:17:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:18:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:19:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:20:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:21:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:22:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:23:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:24:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:25:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:26:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:27:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:28:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:29:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:30:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:31:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:32:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:33:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:34:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:35:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:36:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:37:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:38:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:39:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:40:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:41:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:42:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:43:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:44:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:45:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:46:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:47:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:48:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:49:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:50:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:51:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:52:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:53:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:54:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T12:55:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:56:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:57:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T12:58:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T12:59:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T13:00:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T13:01:51.462Z',
- 'value': '0.4761859410862754'
- },
- {
- 'time': '2017-08-27T13:02:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:03:51.462Z',
- 'value': '0.4761995466580315'
- },
- {
- 'time': '2017-08-27T13:04:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:05:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:06:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:07:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:08:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:09:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:10:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:11:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:12:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:13:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:14:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:15:51.462Z',
- 'value': '0.45714285714285713'
- },
- {
- 'time': '2017-08-27T13:16:51.462Z',
- 'value': '0.49524752852435283'
- },
- {
- 'time': '2017-08-27T13:17:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:18:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:19:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:20:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T13:21:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:22:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:23:51.462Z',
- 'value': '0.4666666666666667'
- },
- {
- 'time': '2017-08-27T13:24:51.462Z',
- 'value': '0.45714285714285713'
- },
- {
- 'time': '2017-08-27T13:25:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T13:26:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:27:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T13:28:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:29:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:30:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:31:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:32:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T13:33:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:34:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:35:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T13:36:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:37:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:38:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:39:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:40:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:41:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:42:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:43:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:44:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:45:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:46:51.462Z',
- 'value': '0.45714285714285713'
- },
- {
- 'time': '2017-08-27T13:47:51.462Z',
- 'value': '0.4666666666666667'
- },
- {
- 'time': '2017-08-27T13:48:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T13:49:51.462Z',
- 'value': '0.4761859410862754'
- },
- {
- 'time': '2017-08-27T13:50:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:51:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:52:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:53:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:54:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:55:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:56:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T13:57:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T13:58:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T13:59:51.462Z',
- 'value': '0.4761859410862754'
- },
- {
- 'time': '2017-08-27T14:00:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T14:01:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T14:02:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:03:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:04:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:05:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T14:06:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:07:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:08:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:09:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:10:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:11:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:12:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:13:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:14:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:15:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:16:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:17:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T14:18:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:19:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T14:20:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:21:51.462Z',
- 'value': '0.4952286623111941'
- },
- {
- 'time': '2017-08-27T14:22:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:23:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:24:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:25:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T14:26:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:27:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T14:28:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:29:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:30:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T14:31:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:32:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:33:51.462Z',
- 'value': '0.45714285714285713'
- },
- {
- 'time': '2017-08-27T14:34:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:35:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:36:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:37:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:38:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T14:39:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:40:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:41:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:42:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:43:51.462Z',
- 'value': '0.4666666666666667'
- },
- {
- 'time': '2017-08-27T14:44:51.462Z',
- 'value': '0.45714285714285713'
- },
- {
- 'time': '2017-08-27T14:45:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:46:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:47:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:48:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:49:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:50:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:51:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T14:52:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:53:51.462Z',
- 'value': '0.4952333787297264'
- },
- {
- 'time': '2017-08-27T14:54:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:55:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T14:56:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:57:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T14:58:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T14:59:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T15:00:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:01:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:02:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:03:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:04:51.462Z',
- 'value': '0.45714285714285713'
- },
- {
- 'time': '2017-08-27T15:05:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:06:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:07:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:08:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:09:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:10:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:11:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:12:51.462Z',
- 'value': '0.4857096599080009'
- },
- {
- 'time': '2017-08-27T15:13:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:14:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:15:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:16:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T15:17:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:18:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:19:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:20:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T15:21:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:22:51.462Z',
- 'value': '0.49524281183630325'
- },
- {
- 'time': '2017-08-27T15:23:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:24:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:25:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:26:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:27:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:28:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:29:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:30:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:31:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T15:32:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:33:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T15:34:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:35:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T15:36:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:37:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:38:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T15:39:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:40:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:41:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:42:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:43:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:44:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:45:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:46:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:47:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:48:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:49:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T15:50:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:51:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:52:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:53:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:54:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:55:51.462Z',
- 'value': '0.49524752852435283'
- },
- {
- 'time': '2017-08-27T15:56:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T15:57:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:58:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T15:59:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:00:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:01:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:02:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:03:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:04:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:05:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:06:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:07:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:08:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:09:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:10:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:11:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:12:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:13:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:14:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:15:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:16:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:17:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:18:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:19:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:20:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:21:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:22:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:23:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:24:51.462Z',
- 'value': '0.4761859410862754'
- },
- {
- 'time': '2017-08-27T16:25:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:26:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:27:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:28:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:29:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:30:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:31:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:32:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:33:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:34:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:35:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:36:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:37:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:38:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:39:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:40:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:41:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:42:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:43:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:44:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:45:51.462Z',
- 'value': '0.485718911608682'
- },
- {
- 'time': '2017-08-27T16:46:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:47:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:48:51.462Z',
- 'value': '0.4952333787297264'
- },
- {
- 'time': '2017-08-27T16:49:51.462Z',
- 'value': '0.4857096599080009'
- },
- {
- 'time': '2017-08-27T16:50:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:51:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:52:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:53:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:54:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:55:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T16:56:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:57:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T16:58:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T16:59:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:00:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:01:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:02:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:03:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:04:51.462Z',
- 'value': '0.47619501138106085'
- },
- {
- 'time': '2017-08-27T17:05:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T17:06:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:07:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T17:08:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T17:09:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:10:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:11:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:12:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:13:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:14:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:15:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:16:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:17:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:18:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:19:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:20:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:21:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:22:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:23:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:24:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T17:25:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:26:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:27:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:28:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:29:51.462Z',
- 'value': '0.4761859410862754'
- },
- {
- 'time': '2017-08-27T17:30:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:31:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:32:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:33:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:34:51.462Z',
- 'value': '0.4761859410862754'
- },
- {
- 'time': '2017-08-27T17:35:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:36:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T17:37:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:38:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:39:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:40:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:41:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:42:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:43:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:44:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T17:45:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:46:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:47:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:48:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T17:49:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:50:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T17:51:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:52:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:53:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:54:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:55:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T17:56:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:57:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T17:58:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T17:59:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T18:00:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:01:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:02:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:03:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:04:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:05:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:06:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:07:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:08:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:09:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:10:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:11:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:12:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T18:13:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:14:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:15:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:16:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:17:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:18:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:19:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:20:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:21:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:22:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:23:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:24:51.462Z',
- 'value': '0.45714285714285713'
- },
- {
- 'time': '2017-08-27T18:25:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:26:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:27:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:28:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:29:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:30:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:31:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:32:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:33:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:34:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:35:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:36:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:37:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T18:38:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:39:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:40:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:41:51.462Z',
- 'value': '0.6190476190476191'
- },
- {
- 'time': '2017-08-27T18:42:51.462Z',
- 'value': '0.6952380952380952'
- },
- {
- 'time': '2017-08-27T18:43:51.462Z',
- 'value': '0.857142857142857'
- },
- {
- 'time': '2017-08-27T18:44:51.462Z',
- 'value': '0.9238095238095239'
- },
- {
- 'time': '2017-08-27T18:45:51.462Z',
- 'value': '0.7428571428571429'
- },
- {
- 'time': '2017-08-27T18:46:51.462Z',
- 'value': '0.8857142857142857'
- },
- {
- 'time': '2017-08-27T18:47:51.462Z',
- 'value': '0.638095238095238'
- },
- {
- 'time': '2017-08-27T18:48:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:49:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:50:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T18:51:51.462Z',
- 'value': '0.47619501138106085'
- },
- {
- 'time': '2017-08-27T18:52:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:53:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:54:51.462Z',
- 'value': '0.4952380952380952'
- },
- {
- 'time': '2017-08-27T18:55:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:56:51.462Z',
- 'value': '0.4857142857142857'
- },
- {
- 'time': '2017-08-27T18:57:51.462Z',
- 'value': '0.47619047619047616'
- },
- {
- 'time': '2017-08-27T18:58:51.462Z',
- 'value': '0.6857142857142856'
- },
- {
- 'time': '2017-08-27T18:59:51.462Z',
- 'value': '0.6952380952380952'
- },
- {
- 'time': '2017-08-27T19:00:51.462Z',
- 'value': '0.5238095238095237'
- },
- {
- 'time': '2017-08-27T19:01:51.462Z',
- 'value': '0.5904761904761905'
- }
- ]
- }
- ]
- }
- ]
- }
+ {
+ title: 'Multiple Time Series',
+ weight: 1,
+ y_label: 'Request Rates',
+ queries: [
+ {
+ query_range:
+ 'sum(rate(nginx_responses_total{environment="production"}[2m])) by (status_code)',
+ label: 'Requests',
+ unit: 'Req/sec',
+ result: [
+ {
+ metric: {
+ status_code: '1xx',
+ },
+ values: [
+ {
+ time: '2017-08-27T11:01:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:02:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:03:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:04:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:05:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:06:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:07:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:08:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:09:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:10:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:11:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:12:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:13:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:14:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:15:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:16:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:17:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:18:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:19:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:20:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:21:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:22:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:23:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:24:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:25:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:26:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:27:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:28:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:29:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:30:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:31:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:32:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:33:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:34:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:35:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:36:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:37:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:38:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:39:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:40:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:41:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:42:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:43:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:44:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:45:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:46:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:47:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:48:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:49:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:50:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:51:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:52:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:53:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:54:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:55:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:56:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:57:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:58:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T11:59:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:00:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:01:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:02:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:03:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:04:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:05:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:06:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:07:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:08:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:09:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:10:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:11:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:12:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:13:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:14:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:15:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:16:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:17:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:18:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:19:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:20:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:21:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:22:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:23:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:24:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:25:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:26:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:27:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:28:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:29:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:30:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:31:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:32:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:33:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:34:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:35:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:36:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:37:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:38:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:39:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:40:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:41:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:42:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:43:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:44:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:45:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:46:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:47:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:48:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:49:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:50:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:51:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:52:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:53:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:54:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:55:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:56:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:57:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:58:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T12:59:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:00:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:01:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:02:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:03:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:04:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:05:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:06:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:07:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:08:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:09:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:10:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:11:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:12:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:13:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:14:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:15:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:16:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:17:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:18:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:19:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:20:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:21:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:22:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:23:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:24:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:25:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:26:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:27:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:28:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:29:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:30:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:31:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:32:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:33:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:34:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:35:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:36:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:37:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:38:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:39:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:40:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:41:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:42:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:43:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:44:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:45:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:46:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:47:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:48:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:49:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:50:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:51:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:52:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:53:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:54:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:55:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:56:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:57:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:58:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T13:59:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:00:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:01:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:02:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:03:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:04:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:05:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:06:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:07:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:08:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:09:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:10:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:11:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:12:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:13:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:14:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:15:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:16:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:17:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:18:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:19:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:20:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:21:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:22:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:23:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:24:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:25:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:26:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:27:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:28:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:29:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:30:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:31:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:32:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:33:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:34:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:35:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:36:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:37:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:38:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:39:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:40:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:41:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:42:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:43:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:44:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:45:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:46:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:47:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:48:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:49:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:50:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:51:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:52:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:53:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:54:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:55:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:56:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:57:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:58:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T14:59:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:00:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:01:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:02:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:03:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:04:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:05:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:06:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:07:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:08:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:09:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:10:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:11:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:12:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:13:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:14:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:15:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:16:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:17:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:18:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:19:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:20:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:21:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:22:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:23:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:24:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:25:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:26:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:27:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:28:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:29:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:30:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:31:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:32:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:33:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:34:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:35:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:36:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:37:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:38:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:39:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:40:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:41:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:42:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:43:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:44:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:45:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:46:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:47:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:48:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:49:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:50:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:51:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:52:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:53:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:54:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:55:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:56:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:57:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:58:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T15:59:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:00:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:01:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:02:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:03:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:04:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:05:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:06:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:07:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:08:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:09:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:10:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:11:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:12:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:13:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:14:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:15:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:16:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:17:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:18:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:19:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:20:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:21:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:22:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:23:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:24:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:25:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:26:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:27:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:28:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:29:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:30:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:31:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:32:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:33:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:34:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:35:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:36:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:37:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:38:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:39:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:40:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:41:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:42:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:43:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:44:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:45:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:46:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:47:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:48:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:49:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:50:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:51:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:52:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:53:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:54:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:55:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:56:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:57:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:58:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T16:59:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:00:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:01:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:02:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:03:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:04:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:05:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:06:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:07:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:08:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:09:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:10:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:11:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:12:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:13:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:14:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:15:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:16:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:17:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:18:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:19:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:20:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:21:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:22:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:23:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:24:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:25:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:26:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:27:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:28:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:29:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:30:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:31:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:32:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:33:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:34:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:35:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:36:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:37:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:38:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:39:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:40:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:41:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:42:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:43:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:44:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:45:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:46:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:47:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:48:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:49:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:50:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:51:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:52:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:53:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:54:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:55:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:56:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:57:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:58:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T17:59:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:00:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:01:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:02:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:03:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:04:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:05:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:06:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:07:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:08:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:09:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:10:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:11:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:12:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:13:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:14:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:15:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:16:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:17:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:18:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:19:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:20:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:21:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:22:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:23:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:24:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:25:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:26:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:27:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:28:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:29:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:30:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:31:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:32:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:33:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:34:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:35:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:36:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:37:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:38:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:39:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:40:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:41:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:42:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:43:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:44:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:45:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:46:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:47:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:48:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:49:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:50:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:51:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:52:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:53:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:54:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:55:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:56:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:57:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:58:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T18:59:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T19:00:51.462Z',
+ value: '0',
+ },
+ {
+ time: '2017-08-27T19:01:51.462Z',
+ value: '0',
+ },
+ ],
+ },
+ {
+ metric: {
+ status_code: '2xx',
+ },
+ values: [
+ {
+ time: '2017-08-27T11:01:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:02:51.462Z',
+ value: '1.2571428571428571',
+ },
+ {
+ time: '2017-08-27T11:03:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:04:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:05:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:06:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:07:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:08:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:09:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:10:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:11:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:12:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:13:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:14:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:15:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:16:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:17:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:18:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:19:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:20:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:21:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:22:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:23:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:24:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:25:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:26:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:27:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:28:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:29:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:30:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:31:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:32:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:33:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:34:51.462Z',
+ value: '1.333320635041571',
+ },
+ {
+ time: '2017-08-27T11:35:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:36:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:37:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:38:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:39:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:40:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:41:51.462Z',
+ value: '1.3333587306424883',
+ },
+ {
+ time: '2017-08-27T11:42:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:43:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:44:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:45:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:46:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:47:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:48:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:49:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T11:50:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:51:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:52:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:53:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:54:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:55:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:56:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:57:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T11:58:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T11:59:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:00:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:01:51.462Z',
+ value: '1.3333460318669703',
+ },
+ {
+ time: '2017-08-27T12:02:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:03:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:04:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:05:51.462Z',
+ value: '1.31427319739812',
+ },
+ {
+ time: '2017-08-27T12:06:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:07:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:08:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:09:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:10:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:11:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:12:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:13:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:14:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:15:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:16:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:17:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:18:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:19:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:20:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:21:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:22:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:23:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:24:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:25:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:26:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:27:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:28:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:29:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:30:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:31:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:32:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:33:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:34:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:35:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:36:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:37:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:38:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:39:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:40:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:41:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:42:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:43:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:44:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:45:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:46:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:47:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:48:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:49:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:50:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:51:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:52:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:53:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:54:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T12:55:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:56:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:57:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T12:58:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T12:59:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T13:00:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T13:01:51.462Z',
+ value: '1.295225759754669',
+ },
+ {
+ time: '2017-08-27T13:02:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:03:51.462Z',
+ value: '1.2952627669098458',
+ },
+ {
+ time: '2017-08-27T13:04:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:05:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:06:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:07:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:08:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:09:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:10:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:11:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:12:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:13:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:14:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:15:51.462Z',
+ value: '1.2571428571428571',
+ },
+ {
+ time: '2017-08-27T13:16:51.462Z',
+ value: '1.3333587306424883',
+ },
+ {
+ time: '2017-08-27T13:17:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:18:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:19:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:20:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T13:21:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:22:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:23:51.462Z',
+ value: '1.276190476190476',
+ },
+ {
+ time: '2017-08-27T13:24:51.462Z',
+ value: '1.2571428571428571',
+ },
+ {
+ time: '2017-08-27T13:25:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T13:26:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:27:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T13:28:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:29:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:30:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:31:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:32:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T13:33:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:34:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:35:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T13:36:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:37:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:38:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:39:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:40:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:41:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:42:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:43:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:44:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:45:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:46:51.462Z',
+ value: '1.2571428571428571',
+ },
+ {
+ time: '2017-08-27T13:47:51.462Z',
+ value: '1.276190476190476',
+ },
+ {
+ time: '2017-08-27T13:48:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T13:49:51.462Z',
+ value: '1.295225759754669',
+ },
+ {
+ time: '2017-08-27T13:50:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:51:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:52:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:53:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:54:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:55:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:56:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T13:57:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T13:58:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T13:59:51.462Z',
+ value: '1.295225759754669',
+ },
+ {
+ time: '2017-08-27T14:00:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T14:01:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T14:02:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:03:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:04:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:05:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T14:06:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:07:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:08:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:09:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:10:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:11:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:12:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:13:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:14:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:15:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:16:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:17:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T14:18:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:19:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T14:20:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:21:51.462Z',
+ value: '1.3333079369916765',
+ },
+ {
+ time: '2017-08-27T14:22:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:23:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:24:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:25:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T14:26:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:27:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T14:28:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:29:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:30:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T14:31:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:32:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:33:51.462Z',
+ value: '1.2571428571428571',
+ },
+ {
+ time: '2017-08-27T14:34:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:35:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:36:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:37:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:38:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T14:39:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:40:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:41:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:42:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:43:51.462Z',
+ value: '1.276190476190476',
+ },
+ {
+ time: '2017-08-27T14:44:51.462Z',
+ value: '1.2571428571428571',
+ },
+ {
+ time: '2017-08-27T14:45:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:46:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:47:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:48:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:49:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:50:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:51:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T14:52:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:53:51.462Z',
+ value: '1.333320635041571',
+ },
+ {
+ time: '2017-08-27T14:54:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:55:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T14:56:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:57:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T14:58:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T14:59:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T15:00:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:01:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:02:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:03:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:04:51.462Z',
+ value: '1.2571428571428571',
+ },
+ {
+ time: '2017-08-27T15:05:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:06:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:07:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:08:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:09:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:10:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:11:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:12:51.462Z',
+ value: '1.31427319739812',
+ },
+ {
+ time: '2017-08-27T15:13:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:14:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:15:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:16:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T15:17:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:18:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:19:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:20:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T15:21:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:22:51.462Z',
+ value: '1.3333460318669703',
+ },
+ {
+ time: '2017-08-27T15:23:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:24:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:25:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:26:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:27:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:28:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:29:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:30:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:31:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T15:32:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:33:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T15:34:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:35:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T15:36:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:37:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:38:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T15:39:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:40:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:41:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:42:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:43:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:44:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:45:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:46:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:47:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:48:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:49:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T15:50:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:51:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:52:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:53:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:54:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:55:51.462Z',
+ value: '1.3333587306424883',
+ },
+ {
+ time: '2017-08-27T15:56:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T15:57:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:58:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T15:59:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:00:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:01:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:02:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:03:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:04:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:05:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:06:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:07:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:08:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:09:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:10:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:11:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:12:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:13:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:14:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:15:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:16:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:17:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:18:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:19:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:20:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:21:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:22:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:23:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:24:51.462Z',
+ value: '1.295225759754669',
+ },
+ {
+ time: '2017-08-27T16:25:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:26:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:27:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:28:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:29:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:30:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:31:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:32:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:33:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:34:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:35:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:36:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:37:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:38:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:39:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:40:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:41:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:42:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:43:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:44:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:45:51.462Z',
+ value: '1.3142982314117277',
+ },
+ {
+ time: '2017-08-27T16:46:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:47:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:48:51.462Z',
+ value: '1.333320635041571',
+ },
+ {
+ time: '2017-08-27T16:49:51.462Z',
+ value: '1.31427319739812',
+ },
+ {
+ time: '2017-08-27T16:50:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:51:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:52:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:53:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:54:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:55:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T16:56:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:57:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T16:58:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T16:59:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:00:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:01:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:02:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:03:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:04:51.462Z',
+ value: '1.2952504309564854',
+ },
+ {
+ time: '2017-08-27T17:05:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T17:06:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:07:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T17:08:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T17:09:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:10:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:11:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:12:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:13:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:14:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:15:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:16:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:17:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:18:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:19:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:20:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:21:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:22:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:23:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:24:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T17:25:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:26:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:27:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:28:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:29:51.462Z',
+ value: '1.295225759754669',
+ },
+ {
+ time: '2017-08-27T17:30:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:31:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:32:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:33:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:34:51.462Z',
+ value: '1.295225759754669',
+ },
+ {
+ time: '2017-08-27T17:35:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:36:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T17:37:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:38:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:39:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:40:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:41:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:42:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:43:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:44:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T17:45:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:46:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:47:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:48:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T17:49:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:50:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T17:51:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:52:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:53:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:54:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:55:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T17:56:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:57:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T17:58:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T17:59:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T18:00:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:01:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:02:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:03:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:04:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:05:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:06:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:07:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:08:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:09:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:10:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:11:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:12:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T18:13:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:14:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:15:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:16:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:17:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:18:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:19:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:20:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:21:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:22:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:23:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:24:51.462Z',
+ value: '1.2571428571428571',
+ },
+ {
+ time: '2017-08-27T18:25:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:26:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:27:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:28:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:29:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:30:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:31:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:32:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:33:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:34:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:35:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:36:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:37:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T18:38:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:39:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:40:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:41:51.462Z',
+ value: '1.580952380952381',
+ },
+ {
+ time: '2017-08-27T18:42:51.462Z',
+ value: '1.7333333333333334',
+ },
+ {
+ time: '2017-08-27T18:43:51.462Z',
+ value: '2.057142857142857',
+ },
+ {
+ time: '2017-08-27T18:44:51.462Z',
+ value: '2.1904761904761902',
+ },
+ {
+ time: '2017-08-27T18:45:51.462Z',
+ value: '1.8285714285714287',
+ },
+ {
+ time: '2017-08-27T18:46:51.462Z',
+ value: '2.1142857142857143',
+ },
+ {
+ time: '2017-08-27T18:47:51.462Z',
+ value: '1.619047619047619',
+ },
+ {
+ time: '2017-08-27T18:48:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:49:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:50:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T18:51:51.462Z',
+ value: '1.2952504309564854',
+ },
+ {
+ time: '2017-08-27T18:52:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:53:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:54:51.462Z',
+ value: '1.3333333333333333',
+ },
+ {
+ time: '2017-08-27T18:55:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:56:51.462Z',
+ value: '1.314285714285714',
+ },
+ {
+ time: '2017-08-27T18:57:51.462Z',
+ value: '1.295238095238095',
+ },
+ {
+ time: '2017-08-27T18:58:51.462Z',
+ value: '1.7142857142857142',
+ },
+ {
+ time: '2017-08-27T18:59:51.462Z',
+ value: '1.7333333333333334',
+ },
+ {
+ time: '2017-08-27T19:00:51.462Z',
+ value: '1.3904761904761904',
+ },
+ {
+ time: '2017-08-27T19:01:51.462Z',
+ value: '1.5047619047619047',
+ },
+ ],
+ },
+ ],
+ when: [
+ {
+ value: 'hundred(s)',
+ color: 'green',
+ },
+ ],
+ },
+ ],
+ },
+ {
+ title: 'Throughput',
+ weight: 1,
+ y_label: 'Requests / Sec',
+ queries: [
+ {
+ query_range:
+ "sum(rate(nginx_requests_total{server_zone!='*', server_zone!='_', container_name!='POD',environment='production'}[2m]))",
+ label: 'Total',
+ unit: 'req / sec',
+ result: [
+ {
+ metric: {},
+ values: [
+ {
+ time: '2017-08-27T11:01:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:02:51.462Z',
+ value: '0.45714285714285713',
+ },
+ {
+ time: '2017-08-27T11:03:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:04:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:05:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:06:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:07:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:08:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:09:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:10:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:11:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:12:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:13:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:14:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:15:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:16:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:17:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:18:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:19:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:20:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:21:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:22:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:23:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:24:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:25:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:26:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:27:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:28:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:29:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:30:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:31:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:32:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:33:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:34:51.462Z',
+ value: '0.4952333787297264',
+ },
+ {
+ time: '2017-08-27T11:35:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:36:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:37:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:38:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:39:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:40:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:41:51.462Z',
+ value: '0.49524752852435283',
+ },
+ {
+ time: '2017-08-27T11:42:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:43:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:44:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:45:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:46:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:47:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:48:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:49:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T11:50:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:51:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:52:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:53:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:54:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:55:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:56:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:57:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T11:58:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T11:59:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:00:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:01:51.462Z',
+ value: '0.49524281183630325',
+ },
+ {
+ time: '2017-08-27T12:02:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:03:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:04:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:05:51.462Z',
+ value: '0.4857096599080009',
+ },
+ {
+ time: '2017-08-27T12:06:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:07:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:08:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:09:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:10:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:11:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:12:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:13:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:14:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:15:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:16:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:17:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:18:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:19:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:20:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:21:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:22:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:23:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:24:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:25:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:26:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:27:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:28:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:29:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:30:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:31:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:32:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:33:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:34:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:35:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:36:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:37:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:38:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:39:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:40:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:41:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:42:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:43:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:44:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:45:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:46:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:47:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:48:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:49:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:50:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:51:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:52:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:53:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:54:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T12:55:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:56:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:57:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T12:58:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T12:59:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T13:00:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T13:01:51.462Z',
+ value: '0.4761859410862754',
+ },
+ {
+ time: '2017-08-27T13:02:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:03:51.462Z',
+ value: '0.4761995466580315',
+ },
+ {
+ time: '2017-08-27T13:04:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:05:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:06:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:07:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:08:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:09:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:10:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:11:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:12:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:13:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:14:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:15:51.462Z',
+ value: '0.45714285714285713',
+ },
+ {
+ time: '2017-08-27T13:16:51.462Z',
+ value: '0.49524752852435283',
+ },
+ {
+ time: '2017-08-27T13:17:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:18:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:19:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:20:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T13:21:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:22:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:23:51.462Z',
+ value: '0.4666666666666667',
+ },
+ {
+ time: '2017-08-27T13:24:51.462Z',
+ value: '0.45714285714285713',
+ },
+ {
+ time: '2017-08-27T13:25:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T13:26:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:27:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T13:28:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:29:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:30:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:31:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:32:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T13:33:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:34:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:35:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T13:36:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:37:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:38:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:39:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:40:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:41:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:42:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:43:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:44:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:45:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:46:51.462Z',
+ value: '0.45714285714285713',
+ },
+ {
+ time: '2017-08-27T13:47:51.462Z',
+ value: '0.4666666666666667',
+ },
+ {
+ time: '2017-08-27T13:48:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T13:49:51.462Z',
+ value: '0.4761859410862754',
+ },
+ {
+ time: '2017-08-27T13:50:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:51:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:52:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:53:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:54:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:55:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:56:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T13:57:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T13:58:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T13:59:51.462Z',
+ value: '0.4761859410862754',
+ },
+ {
+ time: '2017-08-27T14:00:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T14:01:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T14:02:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:03:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:04:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:05:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T14:06:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:07:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:08:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:09:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:10:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:11:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:12:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:13:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:14:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:15:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:16:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:17:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T14:18:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:19:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T14:20:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:21:51.462Z',
+ value: '0.4952286623111941',
+ },
+ {
+ time: '2017-08-27T14:22:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:23:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:24:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:25:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T14:26:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:27:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T14:28:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:29:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:30:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T14:31:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:32:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:33:51.462Z',
+ value: '0.45714285714285713',
+ },
+ {
+ time: '2017-08-27T14:34:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:35:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:36:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:37:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:38:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T14:39:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:40:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:41:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:42:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:43:51.462Z',
+ value: '0.4666666666666667',
+ },
+ {
+ time: '2017-08-27T14:44:51.462Z',
+ value: '0.45714285714285713',
+ },
+ {
+ time: '2017-08-27T14:45:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:46:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:47:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:48:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:49:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:50:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:51:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T14:52:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:53:51.462Z',
+ value: '0.4952333787297264',
+ },
+ {
+ time: '2017-08-27T14:54:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:55:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T14:56:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:57:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T14:58:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T14:59:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T15:00:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:01:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:02:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:03:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:04:51.462Z',
+ value: '0.45714285714285713',
+ },
+ {
+ time: '2017-08-27T15:05:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:06:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:07:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:08:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:09:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:10:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:11:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:12:51.462Z',
+ value: '0.4857096599080009',
+ },
+ {
+ time: '2017-08-27T15:13:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:14:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:15:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:16:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T15:17:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:18:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:19:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:20:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T15:21:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:22:51.462Z',
+ value: '0.49524281183630325',
+ },
+ {
+ time: '2017-08-27T15:23:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:24:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:25:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:26:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:27:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:28:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:29:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:30:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:31:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T15:32:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:33:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T15:34:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:35:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T15:36:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:37:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:38:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T15:39:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:40:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:41:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:42:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:43:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:44:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:45:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:46:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:47:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:48:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:49:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T15:50:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:51:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:52:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:53:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:54:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:55:51.462Z',
+ value: '0.49524752852435283',
+ },
+ {
+ time: '2017-08-27T15:56:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T15:57:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:58:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T15:59:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:00:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:01:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:02:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:03:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:04:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:05:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:06:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:07:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:08:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:09:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:10:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:11:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:12:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:13:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:14:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:15:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:16:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:17:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:18:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:19:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:20:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:21:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:22:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:23:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:24:51.462Z',
+ value: '0.4761859410862754',
+ },
+ {
+ time: '2017-08-27T16:25:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:26:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:27:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:28:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:29:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:30:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:31:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:32:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:33:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:34:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:35:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:36:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:37:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:38:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:39:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:40:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:41:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:42:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:43:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:44:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:45:51.462Z',
+ value: '0.485718911608682',
+ },
+ {
+ time: '2017-08-27T16:46:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:47:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:48:51.462Z',
+ value: '0.4952333787297264',
+ },
+ {
+ time: '2017-08-27T16:49:51.462Z',
+ value: '0.4857096599080009',
+ },
+ {
+ time: '2017-08-27T16:50:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:51:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:52:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:53:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:54:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:55:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T16:56:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:57:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T16:58:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T16:59:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:00:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:01:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:02:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:03:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:04:51.462Z',
+ value: '0.47619501138106085',
+ },
+ {
+ time: '2017-08-27T17:05:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T17:06:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:07:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T17:08:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T17:09:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:10:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:11:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:12:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:13:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:14:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:15:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:16:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:17:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:18:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:19:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:20:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:21:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:22:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:23:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:24:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T17:25:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:26:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:27:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:28:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:29:51.462Z',
+ value: '0.4761859410862754',
+ },
+ {
+ time: '2017-08-27T17:30:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:31:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:32:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:33:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:34:51.462Z',
+ value: '0.4761859410862754',
+ },
+ {
+ time: '2017-08-27T17:35:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:36:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T17:37:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:38:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:39:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:40:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:41:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:42:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:43:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:44:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T17:45:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:46:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:47:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:48:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T17:49:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:50:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T17:51:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:52:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:53:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:54:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:55:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T17:56:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:57:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T17:58:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T17:59:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T18:00:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:01:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:02:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:03:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:04:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:05:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:06:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:07:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:08:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:09:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:10:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:11:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:12:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T18:13:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:14:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:15:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:16:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:17:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:18:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:19:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:20:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:21:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:22:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:23:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:24:51.462Z',
+ value: '0.45714285714285713',
+ },
+ {
+ time: '2017-08-27T18:25:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:26:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:27:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:28:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:29:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:30:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:31:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:32:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:33:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:34:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:35:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:36:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:37:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T18:38:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:39:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:40:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:41:51.462Z',
+ value: '0.6190476190476191',
+ },
+ {
+ time: '2017-08-27T18:42:51.462Z',
+ value: '0.6952380952380952',
+ },
+ {
+ time: '2017-08-27T18:43:51.462Z',
+ value: '0.857142857142857',
+ },
+ {
+ time: '2017-08-27T18:44:51.462Z',
+ value: '0.9238095238095239',
+ },
+ {
+ time: '2017-08-27T18:45:51.462Z',
+ value: '0.7428571428571429',
+ },
+ {
+ time: '2017-08-27T18:46:51.462Z',
+ value: '0.8857142857142857',
+ },
+ {
+ time: '2017-08-27T18:47:51.462Z',
+ value: '0.638095238095238',
+ },
+ {
+ time: '2017-08-27T18:48:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:49:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:50:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T18:51:51.462Z',
+ value: '0.47619501138106085',
+ },
+ {
+ time: '2017-08-27T18:52:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:53:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:54:51.462Z',
+ value: '0.4952380952380952',
+ },
+ {
+ time: '2017-08-27T18:55:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:56:51.462Z',
+ value: '0.4857142857142857',
+ },
+ {
+ time: '2017-08-27T18:57:51.462Z',
+ value: '0.47619047619047616',
+ },
+ {
+ time: '2017-08-27T18:58:51.462Z',
+ value: '0.6857142857142856',
+ },
+ {
+ time: '2017-08-27T18:59:51.462Z',
+ value: '0.6952380952380952',
+ },
+ {
+ time: '2017-08-27T19:00:51.462Z',
+ value: '0.5238095238095237',
+ },
+ {
+ time: '2017-08-27T19:01:51.462Z',
+ value: '0.5904761904761905',
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
];
export function convertDatesMultipleSeries(multipleSeries) {
const convertedMultiple = multipleSeries;
multipleSeries.forEach((column, index) => {
let convertedResult = [];
- convertedResult = column.queries[0].result.map((resultObj) => {
+ convertedResult = column.queries[0].result.map(resultObj => {
const convertedMetrics = {};
convertedMetrics.values = resultObj.values.map(val => ({
- time: new Date(val.time),
- value: val.value,
+ time: new Date(val.time),
+ value: val.value,
}));
convertedMetrics.metric = resultObj.metric;
return convertedMetrics;
diff --git a/spec/javascripts/notes/mock_data.js b/spec/javascripts/notes/mock_data.js
index 5be13ed0dfe..24388fba219 100644
--- a/spec/javascripts/notes/mock_data.js
+++ b/spec/javascripts/notes/mock_data.js
@@ -1,4 +1,3 @@
-/* eslint-disable */
export const notesDataMock = {
discussionsPath: '/gitlab-org/gitlab-ce/issues/26/discussions.json',
lastFetchedAt: 1501862675,
@@ -43,7 +42,8 @@ export const noteableDataMock = {
milestone: null,
milestone_id: null,
moved_to_id: null,
- preview_note_path: '/gitlab-org/gitlab-ce/preview_markdown?quick_actions_target_id=98&quick_actions_target_type=Issue',
+ preview_note_path:
+ '/gitlab-org/gitlab-ce/preview_markdown?quick_actions_target_id=98&quick_actions_target_type=Issue',
project_id: 2,
state: 'opened',
time_estimate: 0,
@@ -52,6 +52,7 @@ export const noteableDataMock = {
updated_at: '2017-08-04T09:53:01.226Z',
updated_by_id: 1,
web_url: '/gitlab-org/gitlab-ce/issues/26',
+ noteableType: 'issue',
};
export const lastFetchedAt = '1501862675';
@@ -60,465 +61,504 @@ export const individualNote = {
expanded: true,
id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
individual_note: true,
- notes: [{
- id: 1390,
- attachment: {
- url: null,
- filename: null,
- image: false,
- },
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: 'test',
- path: '/root',
+ notes: [
+ {
+ id: 1390,
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: 'test',
+ path: '/root',
+ },
+ created_at: '2017-08-01T17: 09: 33.762Z',
+ updated_at: '2017-08-01T17: 09: 33.762Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: null,
+ human_access: 'Owner',
+ note: 'sdfdsaf',
+ note_html: "<p dir='auto'>sdfdsaf</p>",
+ current_user: { can_edit: true },
+ discussion_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
+ emoji_awardable: true,
+ award_emoji: [
+ { name: 'baseball', user: { id: 1, name: 'Root', username: 'root' } },
+ { name: 'art', user: { id: 1, name: 'Root', username: 'root' } },
+ ],
+ toggle_award_path: '/gitlab-org/gitlab-ce/notes/1390/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390&user_id=1',
+ path: '/gitlab-org/gitlab-ce/notes/1390',
},
- created_at: '2017-08-01T17: 09: 33.762Z',
- updated_at: '2017-08-01T17: 09: 33.762Z',
- system: false,
- noteable_id: 98,
- noteable_type: 'Issue',
- type: null,
- human_access: 'Owner',
- note: 'sdfdsaf',
- note_html: '<p dir=\'auto\'>sdfdsaf</p>',
- current_user: { can_edit: true },
- discussion_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
- emoji_awardable: true,
- award_emoji: [
- { name: 'baseball', user: { id: 1, name: 'Root', username: 'root' } },
- { name: 'art', user: { id: 1, name: 'Root', username: 'root' } },
- ],
- toggle_award_path: '/gitlab-org/gitlab-ce/notes/1390/toggle_award_emoji',
- report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390&user_id=1',
- path: '/gitlab-org/gitlab-ce/notes/1390',
- }],
+ ],
reply_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
};
export const note = {
- "id": 546,
- "attachment": {
- "url": null,
- "filename": null,
- "image": false
+ id: 546,
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
},
- "author": {
- "id": 1,
- "name": "Administrator",
- "username": "root",
- "state": "active",
- "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
- "path": "/root"
+ author: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ state: 'active',
+ avatar_url: 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ path: '/root',
},
- "created_at": "2017-08-10T15:24:03.087Z",
- "updated_at": "2017-08-10T15:24:03.087Z",
- "system": false,
- "noteable_id": 67,
- "noteable_type": "Issue",
- "noteable_iid": 7,
- "type": null,
- "human_access": "Owner",
- "note": "Vel id placeat reprehenderit sit numquam.",
- "note_html": "<p dir=\"auto\">Vel id placeat reprehenderit sit numquam.</p>",
- "current_user": {
- "can_edit": true
+ created_at: '2017-08-10T15:24:03.087Z',
+ updated_at: '2017-08-10T15:24:03.087Z',
+ system: false,
+ noteable_id: 67,
+ noteable_type: 'Issue',
+ noteable_iid: 7,
+ type: null,
+ human_access: 'Owner',
+ note: 'Vel id placeat reprehenderit sit numquam.',
+ note_html: '<p dir="auto">Vel id placeat reprehenderit sit numquam.</p>',
+ current_user: {
+ can_edit: true,
},
- "discussion_id": "d3842a451b7f3d9a5dfce329515127b2d29a4cd0",
- "emoji_awardable": true,
- "award_emoji": [{
- "name": "baseball",
- "user": {
- "id": 1,
- "name": "Administrator",
- "username": "root"
- }
- }, {
- "name": "bath_tone3",
- "user": {
- "id": 1,
- "name": "Administrator",
- "username": "root"
- }
- }],
- "toggle_award_path": "/gitlab-org/gitlab-ce/notes/546/toggle_award_emoji",
- "report_abuse_path": "/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_546&user_id=1",
- "path": "/gitlab-org/gitlab-ce/notes/546"
- }
+ discussion_id: 'd3842a451b7f3d9a5dfce329515127b2d29a4cd0',
+ emoji_awardable: true,
+ award_emoji: [
+ {
+ name: 'baseball',
+ user: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ },
+ },
+ {
+ name: 'bath_tone3',
+ user: {
+ id: 1,
+ name: 'Administrator',
+ username: 'root',
+ },
+ },
+ ],
+ toggle_award_path: '/gitlab-org/gitlab-ce/notes/546/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_546&user_id=1',
+ path: '/gitlab-org/gitlab-ce/notes/546',
+};
export const discussionMock = {
id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
reply_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
expanded: true,
- notes: [{
- id: 1395,
- attachment: {
- url: null,
- filename: null,
- image: false,
- },
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- created_at: '2017-08-02T10:51:58.559Z',
- updated_at: '2017-08-02T10:51:58.559Z',
- system: false,
- noteable_id: 98,
- noteable_type: 'Issue',
- type: 'DiscussionNote',
- human_access: 'Owner',
- note: 'THIS IS A DICUSSSION!',
- note_html: '<p dir=\'auto\'>THIS IS A DICUSSSION!</p>',
- current_user: {
- can_edit: true,
- },
- discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
- emoji_awardable: true,
- award_emoji: [],
- toggle_award_path: '/gitlab-org/gitlab-ce/notes/1395/toggle_award_emoji',
- report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1395&user_id=1',
- path: '/gitlab-org/gitlab-ce/notes/1395',
- }, {
- id: 1396,
- attachment: {
- url: null,
- filename: null,
- image: false,
- },
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- created_at: '2017-08-02T10:56:50.980Z',
- updated_at: '2017-08-03T14:19:35.691Z',
- system: false,
- noteable_id: 98,
- noteable_type: 'Issue',
- type: 'DiscussionNote',
- human_access: 'Owner',
- note: 'sadfasdsdgdsf',
- note_html: '<p dir=\'auto\'>sadfasdsdgdsf</p>',
- last_edited_at: '2017-08-03T14:19:35.691Z',
- last_edited_by: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
- },
- current_user: {
- can_edit: true,
+ notes: [
+ {
+ id: 1395,
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-02T10:51:58.559Z',
+ updated_at: '2017-08-02T10:51:58.559Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: 'DiscussionNote',
+ human_access: 'Owner',
+ note: 'THIS IS A DICUSSSION!',
+ note_html: "<p dir='auto'>THIS IS A DICUSSSION!</p>",
+ current_user: {
+ can_edit: true,
+ },
+ discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
+ emoji_awardable: true,
+ award_emoji: [],
+ toggle_award_path: '/gitlab-org/gitlab-ce/notes/1395/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1395&user_id=1',
+ path: '/gitlab-org/gitlab-ce/notes/1395',
},
- discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
- emoji_awardable: true,
- award_emoji: [],
- toggle_award_path: '/gitlab-org/gitlab-ce/notes/1396/toggle_award_emoji',
- report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1396&user_id=1',
- path: '/gitlab-org/gitlab-ce/notes/1396',
- }, {
- id: 1437,
- attachment: {
- url: null,
- filename: null,
- image: false,
+ {
+ id: 1396,
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-02T10:56:50.980Z',
+ updated_at: '2017-08-03T14:19:35.691Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: 'DiscussionNote',
+ human_access: 'Owner',
+ note: 'sadfasdsdgdsf',
+ note_html: "<p dir='auto'>sadfasdsdgdsf</p>",
+ last_edited_at: '2017-08-03T14:19:35.691Z',
+ last_edited_by: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ current_user: {
+ can_edit: true,
+ },
+ discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
+ emoji_awardable: true,
+ award_emoji: [],
+ toggle_award_path: '/gitlab-org/gitlab-ce/notes/1396/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1396&user_id=1',
+ path: '/gitlab-org/gitlab-ce/notes/1396',
},
- author: {
- id: 1,
- name: 'Root',
- username: 'root',
- state: 'active',
- avatar_url: null,
- path: '/root',
+ {
+ id: 1437,
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-03T18:11:18.780Z',
+ updated_at: '2017-08-04T09:52:31.062Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: 'DiscussionNote',
+ human_access: 'Owner',
+ note: 'adsfasf Should disappear',
+ note_html: "<p dir='auto'>adsfasf Should disappear</p>",
+ last_edited_at: '2017-08-04T09:52:31.062Z',
+ last_edited_by: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ current_user: {
+ can_edit: true,
+ },
+ discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
+ emoji_awardable: true,
+ award_emoji: [],
+ toggle_award_path: '/gitlab-org/gitlab-ce/notes/1437/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1437&user_id=1',
+ path: '/gitlab-org/gitlab-ce/notes/1437',
},
- created_at: '2017-08-03T18:11:18.780Z',
- updated_at: '2017-08-04T09:52:31.062Z',
- system: false,
- noteable_id: 98,
- noteable_type: 'Issue',
- type: 'DiscussionNote',
- human_access: 'Owner',
- note: 'adsfasf Should disappear',
- note_html: '<p dir=\'auto\'>adsfasf Should disappear</p>',
- last_edited_at: '2017-08-04T09:52:31.062Z',
- last_edited_by: {
+ ],
+ individual_note: false,
+};
+
+export const loggedOutnoteableData = {
+ id: 98,
+ iid: 26,
+ author_id: 1,
+ description: '',
+ lock_version: 1,
+ milestone_id: null,
+ state: 'opened',
+ title: 'asdsa',
+ updated_by_id: 1,
+ created_at: '2017-02-07T10:11:18.395Z',
+ updated_at: '2017-08-08T10:22:51.564Z',
+ time_estimate: 0,
+ total_time_spent: 0,
+ human_time_estimate: null,
+ human_total_time_spent: null,
+ milestone: null,
+ labels: [],
+ branch_name: null,
+ confidential: false,
+ assignees: [
+ {
id: 1,
name: 'Root',
username: 'root',
state: 'active',
avatar_url: null,
- path: '/root',
+ web_url: 'http://localhost:3000/root',
},
- current_user: {
- can_edit: true,
- },
- discussion_id: '9e3bd2f71a01de45fd166e6719eb380ad9f270b1',
- emoji_awardable: true,
- award_emoji: [],
- toggle_award_path: '/gitlab-org/gitlab-ce/notes/1437/toggle_award_emoji',
- report_abuse_path: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1437&user_id=1',
- path: '/gitlab-org/gitlab-ce/notes/1437',
- }],
- individual_note: false,
-};
-
-export const loggedOutnoteableData = {
- "id": 98,
- "iid": 26,
- "author_id": 1,
- "description": "",
- "lock_version": 1,
- "milestone_id": null,
- "state": "opened",
- "title": "asdsa",
- "updated_by_id": 1,
- "created_at": "2017-02-07T10:11:18.395Z",
- "updated_at": "2017-08-08T10:22:51.564Z",
- "time_estimate": 0,
- "total_time_spent": 0,
- "human_time_estimate": null,
- "human_total_time_spent": null,
- "milestone": null,
- "labels": [],
- "branch_name": null,
- "confidential": false,
- "assignees": [{
- "id": 1,
- "name": "Root",
- "username": "root",
- "state": "active",
- "avatar_url": null,
- "web_url": "http://localhost:3000/root"
- }],
- "due_date": null,
- "moved_to_id": null,
- "project_id": 2,
- "web_url": "/gitlab-org/gitlab-ce/issues/26",
- "current_user": {
- "can_create_note": false,
- "can_update": false
+ ],
+ due_date: null,
+ moved_to_id: null,
+ project_id: 2,
+ web_url: '/gitlab-org/gitlab-ce/issues/26',
+ current_user: {
+ can_create_note: false,
+ can_update: false,
},
- "create_note_path": "/gitlab-org/gitlab-ce/notes?target_id=98&target_type=issue",
- "preview_note_path": "/gitlab-org/gitlab-ce/preview_markdown?quick_actions_target_id=98&quick_actions_target_type=Issue"
-}
+ create_note_path: '/gitlab-org/gitlab-ce/notes?target_id=98&target_type=issue',
+ preview_note_path:
+ '/gitlab-org/gitlab-ce/preview_markdown?quick_actions_target_id=98&quick_actions_target_type=Issue',
+};
export const INDIVIDUAL_NOTE_RESPONSE_MAP = {
- 'GET': {
- '/gitlab-org/gitlab-ce/issues/26/discussions.json': [{
- "id": "0fb4e0e3f9276e55ff32eb4195add694aece4edd",
- "reply_id": "0fb4e0e3f9276e55ff32eb4195add694aece4edd",
- "expanded": true,
- "notes": [{
- "id": 1390,
- "attachment": {
- "url": null,
- "filename": null,
- "image": false
- },
- "author": {
- "id": 1,
- "name": "Root",
- "username": "root",
- "state": "active",
- "avatar_url": null,
- "path": "/root"
- },
- "created_at": "2017-08-01T17:09:33.762Z",
- "updated_at": "2017-08-01T17:09:33.762Z",
- "system": false,
- "noteable_id": 98,
- "noteable_type": "Issue",
- "type": null,
- "human_access": "Owner",
- "note": "sdfdsaf",
- "note_html": "\u003cp dir=\"auto\"\u003esdfdsaf\u003c/p\u003e",
- "current_user": {
- "can_edit": true
- },
- "discussion_id": "0fb4e0e3f9276e55ff32eb4195add694aece4edd",
- "emoji_awardable": true,
- "award_emoji": [{
- "name": "baseball",
- "user": {
- "id": 1,
- "name": "Root",
- "username": "root"
- }
- }, {
- "name": "art",
- "user": {
- "id": 1,
- "name": "Root",
- "username": "root"
- }
- }],
- "toggle_award_path": "/gitlab-org/gitlab-ce/notes/1390/toggle_award_emoji",
- "report_abuse_path": "/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390\u0026user_id=1",
- "path": "/gitlab-org/gitlab-ce/notes/1390"
- }],
- "individual_note": true
- }, {
- "id": "70d5c92a4039a36c70100c6691c18c27e4b0a790",
- "reply_id": "70d5c92a4039a36c70100c6691c18c27e4b0a790",
- "expanded": true,
- "notes": [{
- "id": 1391,
- "attachment": {
- "url": null,
- "filename": null,
- "image": false
- },
- "author": {
- "id": 1,
- "name": "Root",
- "username": "root",
- "state": "active",
- "avatar_url": null,
- "path": "/root"
- },
- "created_at": "2017-08-02T10:51:38.685Z",
- "updated_at": "2017-08-02T10:51:38.685Z",
- "system": false,
- "noteable_id": 98,
- "noteable_type": "Issue",
- "type": null,
- "human_access": "Owner",
- "note": "New note!",
- "note_html": "\u003cp dir=\"auto\"\u003eNew note!\u003c/p\u003e",
- "current_user": {
- "can_edit": true
- },
- "discussion_id": "70d5c92a4039a36c70100c6691c18c27e4b0a790",
- "emoji_awardable": true,
- "award_emoji": [],
- "toggle_award_path": "/gitlab-org/gitlab-ce/notes/1391/toggle_award_emoji",
- "report_abuse_path": "/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1391\u0026user_id=1",
- "path": "/gitlab-org/gitlab-ce/notes/1391"
- }],
- "individual_note": true
- }],
+ GET: {
+ '/gitlab-org/gitlab-ce/issues/26/discussions.json': [
+ {
+ id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
+ reply_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
+ expanded: true,
+ notes: [
+ {
+ id: 1390,
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-01T17:09:33.762Z',
+ updated_at: '2017-08-01T17:09:33.762Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: null,
+ human_access: 'Owner',
+ note: 'sdfdsaf',
+ note_html: '\u003cp dir="auto"\u003esdfdsaf\u003c/p\u003e',
+ current_user: {
+ can_edit: true,
+ },
+ discussion_id: '0fb4e0e3f9276e55ff32eb4195add694aece4edd',
+ emoji_awardable: true,
+ award_emoji: [
+ {
+ name: 'baseball',
+ user: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ },
+ },
+ {
+ name: 'art',
+ user: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ },
+ },
+ ],
+ toggle_award_path: '/gitlab-org/gitlab-ce/notes/1390/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1390\u0026user_id=1',
+ path: '/gitlab-org/gitlab-ce/notes/1390',
+ },
+ ],
+ individual_note: true,
+ },
+ {
+ id: '70d5c92a4039a36c70100c6691c18c27e4b0a790',
+ reply_id: '70d5c92a4039a36c70100c6691c18c27e4b0a790',
+ expanded: true,
+ notes: [
+ {
+ id: 1391,
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-02T10:51:38.685Z',
+ updated_at: '2017-08-02T10:51:38.685Z',
+ system: false,
+ noteable_id: 98,
+ noteable_type: 'Issue',
+ type: null,
+ human_access: 'Owner',
+ note: 'New note!',
+ note_html: '\u003cp dir="auto"\u003eNew note!\u003c/p\u003e',
+ current_user: {
+ can_edit: true,
+ },
+ discussion_id: '70d5c92a4039a36c70100c6691c18c27e4b0a790',
+ emoji_awardable: true,
+ award_emoji: [],
+ toggle_award_path: '/gitlab-org/gitlab-ce/notes/1391/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F26%23note_1391\u0026user_id=1',
+ path: '/gitlab-org/gitlab-ce/notes/1391',
+ },
+ ],
+ individual_note: true,
+ },
+ ],
'/gitlab-org/gitlab-ce/noteable/issue/98/notes': {
last_fetched_at: 1512900838,
notes: [],
},
},
- 'PUT': {
+ PUT: {
'/gitlab-org/gitlab-ce/notes/1471': {
- "commands_changes": null,
- "valid": true,
- "id": 1471,
- "attachment": null,
- "author": {
- "id": 1,
- "name": "Root",
- "username": "root",
- "state": "active",
- "avatar_url": null,
- "path": "/root"
+ commands_changes: null,
+ valid: true,
+ id: 1471,
+ attachment: null,
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
},
- "created_at": "2017-08-08T16:53:00.666Z",
- "updated_at": "2017-12-10T11:03:21.876Z",
- "system": false,
- "noteable_id": 124,
- "noteable_type": "Issue",
- "noteable_iid": 29,
- "type": "DiscussionNote",
- "human_access": "Owner",
- "note": "Adding a comment",
- "note_html": "\u003cp dir=\"auto\"\u003eAdding a comment\u003c/p\u003e",
- "last_edited_at": "2017-12-10T11:03:21.876Z",
- "last_edited_by": {
- "id": 1,
- "name": 'Root',
- "username": 'root',
- "state": 'active',
- "avatar_url": null,
- "path": '/root',
+ created_at: '2017-08-08T16:53:00.666Z',
+ updated_at: '2017-12-10T11:03:21.876Z',
+ system: false,
+ noteable_id: 124,
+ noteable_type: 'Issue',
+ noteable_iid: 29,
+ type: 'DiscussionNote',
+ human_access: 'Owner',
+ note: 'Adding a comment',
+ note_html: '\u003cp dir="auto"\u003eAdding a comment\u003c/p\u003e',
+ last_edited_at: '2017-12-10T11:03:21.876Z',
+ last_edited_by: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
},
- "current_user": {
- "can_edit": true
+ current_user: {
+ can_edit: true,
},
- "discussion_id": "a3ed36e29b1957efb3b68c53e2d7a2b24b1df052",
- "emoji_awardable": true,
- "award_emoji": [],
- "toggle_award_path": "/gitlab-org/gitlab-ce/notes/1471/toggle_award_emoji",
- "report_abuse_path": "/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1",
- "path": "/gitlab-org/gitlab-ce/notes/1471"
+ discussion_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
+ emoji_awardable: true,
+ award_emoji: [],
+ toggle_award_path: '/gitlab-org/gitlab-ce/notes/1471/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1',
+ path: '/gitlab-org/gitlab-ce/notes/1471',
},
- }
+ },
};
export const DISCUSSION_NOTE_RESPONSE_MAP = {
...INDIVIDUAL_NOTE_RESPONSE_MAP,
- 'GET': {
+ GET: {
...INDIVIDUAL_NOTE_RESPONSE_MAP.GET,
- '/gitlab-org/gitlab-ce/issues/26/discussions.json': [{
- "id": "a3ed36e29b1957efb3b68c53e2d7a2b24b1df052",
- "reply_id": "a3ed36e29b1957efb3b68c53e2d7a2b24b1df052",
- "expanded": true,
- "notes": [{
- "id": 1471,
- "attachment": {
- "url": null,
- "filename": null,
- "image": false
- },
- "author": {
- "id": 1,
- "name": "Root",
- "username": "root",
- "state": "active",
- "avatar_url": null,
- "path": "/root"
- },
- "created_at": "2017-08-08T16:53:00.666Z",
- "updated_at": "2017-08-08T16:53:00.666Z",
- "system": false,
- "noteable_id": 124,
- "noteable_type": "Issue",
- "noteable_iid": 29,
- "type": "DiscussionNote",
- "human_access": "Owner",
- "note": "Adding a comment",
- "note_html": "\u003cp dir=\"auto\"\u003eAdding a comment\u003c/p\u003e",
- "current_user": {
- "can_edit": true
- },
- "discussion_id": "a3ed36e29b1957efb3b68c53e2d7a2b24b1df052",
- "emoji_awardable": true,
- "award_emoji": [],
- "toggle_award_path": "/gitlab-org/gitlab-ce/notes/1471/toggle_award_emoji",
- "report_abuse_path": "/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1",
- "path": "/gitlab-org/gitlab-ce/notes/1471"
- }],
- "individual_note": false
- }],
+ '/gitlab-org/gitlab-ce/issues/26/discussions.json': [
+ {
+ id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
+ reply_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
+ expanded: true,
+ notes: [
+ {
+ id: 1471,
+ attachment: {
+ url: null,
+ filename: null,
+ image: false,
+ },
+ author: {
+ id: 1,
+ name: 'Root',
+ username: 'root',
+ state: 'active',
+ avatar_url: null,
+ path: '/root',
+ },
+ created_at: '2017-08-08T16:53:00.666Z',
+ updated_at: '2017-08-08T16:53:00.666Z',
+ system: false,
+ noteable_id: 124,
+ noteable_type: 'Issue',
+ noteable_iid: 29,
+ type: 'DiscussionNote',
+ human_access: 'Owner',
+ note: 'Adding a comment',
+ note_html: '\u003cp dir="auto"\u003eAdding a comment\u003c/p\u003e',
+ current_user: {
+ can_edit: true,
+ },
+ discussion_id: 'a3ed36e29b1957efb3b68c53e2d7a2b24b1df052',
+ emoji_awardable: true,
+ award_emoji: [],
+ toggle_award_path: '/gitlab-org/gitlab-ce/notes/1471/toggle_award_emoji',
+ report_abuse_path:
+ '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F29%23note_1471\u0026user_id=1',
+ path: '/gitlab-org/gitlab-ce/notes/1471',
+ },
+ ],
+ individual_note: false,
+ },
+ ],
},
};
export function individualNoteInterceptor(request, next) {
const body = INDIVIDUAL_NOTE_RESPONSE_MAP[request.method.toUpperCase()][request.url];
- next(request.respondWith(JSON.stringify(body), {
- status: 200,
- }));
+ next(
+ request.respondWith(JSON.stringify(body), {
+ status: 200,
+ }),
+ );
}
export function discussionNoteInterceptor(request, next) {
const body = DISCUSSION_NOTE_RESPONSE_MAP[request.method.toUpperCase()][request.url];
- next(request.respondWith(JSON.stringify(body), {
- status: 200,
- }));
+ next(
+ request.respondWith(JSON.stringify(body), {
+ status: 200,
+ }),
+ );
}
diff --git a/spec/javascripts/pipelines/graph/action_component_spec.js b/spec/javascripts/pipelines/graph/action_component_spec.js
index e8fcd4b1a36..581209f215d 100644
--- a/spec/javascripts/pipelines/graph/action_component_spec.js
+++ b/spec/javascripts/pipelines/graph/action_component_spec.js
@@ -1,25 +1,30 @@
import Vue from 'vue';
import actionComponent from '~/pipelines/components/graph/action_component.vue';
+import eventHub from '~/pipelines/event_hub';
+import mountComponent from '../../helpers/vue_mount_component_helper';
describe('pipeline graph action component', () => {
let component;
beforeEach((done) => {
const ActionComponent = Vue.extend(actionComponent);
- component = new ActionComponent({
- propsData: {
- tooltipText: 'bar',
- link: 'foo',
- actionMethod: 'post',
- actionIcon: 'cancel',
- },
- }).$mount();
+ component = mountComponent(ActionComponent, {
+ tooltipText: 'bar',
+ link: 'foo',
+ actionIcon: 'cancel',
+ });
Vue.nextTick(done);
});
- it('should render a link', () => {
- expect(component.$el.getAttribute('href')).toEqual('foo');
+ afterEach(() => {
+ component.$destroy();
+ });
+
+ it('should emit an event with the provided link', () => {
+ eventHub.$on('graphAction', (link) => {
+ expect(link).toEqual('foo');
+ });
});
it('should render the provided title as a bootstrap tooltip', () => {
diff --git a/spec/javascripts/pipelines/graph/job_component_spec.js b/spec/javascripts/pipelines/graph/job_component_spec.js
index ce181a1e515..c9677ae209a 100644
--- a/spec/javascripts/pipelines/graph/job_component_spec.js
+++ b/spec/javascripts/pipelines/graph/job_component_spec.js
@@ -13,6 +13,7 @@ describe('pipeline graph job component', () => {
icon: 'icon_status_success',
text: 'passed',
label: 'passed',
+ tooltip: 'passed',
group: 'success',
details_path: '/root/ci-mock/builds/4256',
has_details: true,
@@ -137,6 +138,7 @@ describe('pipeline graph job component', () => {
status: {
icon: 'icon_status_success',
label: 'success',
+ tooltip: 'success',
},
},
});
diff --git a/spec/javascripts/pipelines/graph/mock_data.js b/spec/javascripts/pipelines/graph/mock_data.js
index b9494f86d74..70eba98e939 100644
--- a/spec/javascripts/pipelines/graph/mock_data.js
+++ b/spec/javascripts/pipelines/graph/mock_data.js
@@ -1,232 +1,261 @@
-/* eslint-disable quote-props, quotes, comma-dangle */
export default {
- "id": 123,
- "user": {
- "name": "Root",
- "username": "root",
- "id": 1,
- "state": "active",
- "avatar_url": null,
- "web_url": "http://localhost:3000/root"
+ id: 123,
+ user: {
+ name: 'Root',
+ username: 'root',
+ id: 1,
+ state: 'active',
+ avatar_url: null,
+ web_url: 'http://localhost:3000/root',
},
- "active": false,
- "coverage": null,
- "path": "/root/ci-mock/pipelines/123",
- "details": {
- "status": {
- "icon": "icon_status_success",
- "text": "passed",
- "label": "passed",
- "group": "success",
- "has_details": true,
- "details_path": "/root/ci-mock/pipelines/123",
- "favicon": "/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico"
+ active: false,
+ coverage: null,
+ path: '/root/ci-mock/pipelines/123',
+ details: {
+ status: {
+ icon: 'icon_status_success',
+ text: 'passed',
+ label: 'passed',
+ group: 'success',
+ has_details: true,
+ details_path: '/root/ci-mock/pipelines/123',
+ favicon:
+ '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico',
},
- "duration": 9,
- "finished_at": "2017-04-19T14:30:27.542Z",
- "stages": [{
- "name": "test",
- "title": "test: passed",
- "groups": [{
- "name": "test",
- "size": 1,
- "status": {
- "icon": "icon_status_success",
- "text": "passed",
- "label": "passed",
- "group": "success",
- "has_details": true,
- "details_path": "/root/ci-mock/builds/4153",
- "favicon": "/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico",
- "action": {
- "icon": "retry",
- "title": "Retry",
- "path": "/root/ci-mock/builds/4153/retry",
- "method": "post"
- }
+ duration: 9,
+ finished_at: '2017-04-19T14:30:27.542Z',
+ stages: [
+ {
+ name: 'test',
+ title: 'test: passed',
+ groups: [
+ {
+ name: 'test',
+ size: 1,
+ status: {
+ icon: 'icon_status_success',
+ text: 'passed',
+ label: 'passed',
+ group: 'success',
+ has_details: true,
+ details_path: '/root/ci-mock/builds/4153',
+ favicon:
+ '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico',
+ action: {
+ icon: 'retry',
+ title: 'Retry',
+ path: '/root/ci-mock/builds/4153/retry',
+ method: 'post',
+ },
+ },
+ jobs: [
+ {
+ id: 4153,
+ name: 'test',
+ build_path: '/root/ci-mock/builds/4153',
+ retry_path: '/root/ci-mock/builds/4153/retry',
+ playable: false,
+ created_at: '2017-04-13T09:25:18.959Z',
+ updated_at: '2017-04-13T09:25:23.118Z',
+ status: {
+ icon: 'icon_status_success',
+ text: 'passed',
+ label: 'passed',
+ group: 'success',
+ has_details: true,
+ details_path: '/root/ci-mock/builds/4153',
+ favicon:
+ '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico',
+ action: {
+ icon: 'retry',
+ title: 'Retry',
+ path: '/root/ci-mock/builds/4153/retry',
+ method: 'post',
+ },
+ },
+ },
+ ],
+ },
+ ],
+ status: {
+ icon: 'icon_status_success',
+ text: 'passed',
+ label: 'passed',
+ group: 'success',
+ has_details: true,
+ details_path: '/root/ci-mock/pipelines/123#test',
+ favicon:
+ '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico',
},
- "jobs": [{
- "id": 4153,
- "name": "test",
- "build_path": "/root/ci-mock/builds/4153",
- "retry_path": "/root/ci-mock/builds/4153/retry",
- "playable": false,
- "created_at": "2017-04-13T09:25:18.959Z",
- "updated_at": "2017-04-13T09:25:23.118Z",
- "status": {
- "icon": "icon_status_success",
- "text": "passed",
- "label": "passed",
- "group": "success",
- "has_details": true,
- "details_path": "/root/ci-mock/builds/4153",
- "favicon": "/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico",
- "action": {
- "icon": "retry",
- "title": "Retry",
- "path": "/root/ci-mock/builds/4153/retry",
- "method": "post"
- }
- }
- }]
- }],
- "status": {
- "icon": "icon_status_success",
- "text": "passed",
- "label": "passed",
- "group": "success",
- "has_details": true,
- "details_path": "/root/ci-mock/pipelines/123#test",
- "favicon": "/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico"
+ path: '/root/ci-mock/pipelines/123#test',
+ dropdown_path: '/root/ci-mock/pipelines/123/stage.json?stage=test',
},
- "path": "/root/ci-mock/pipelines/123#test",
- "dropdown_path": "/root/ci-mock/pipelines/123/stage.json?stage=test"
- }, {
- "name": "deploy",
- "title": "deploy: passed",
- "groups": [{
- "name": "deploy to production",
- "size": 1,
- "status": {
- "icon": "icon_status_success",
- "text": "passed",
- "label": "passed",
- "group": "success",
- "has_details": true,
- "details_path": "/root/ci-mock/builds/4166",
- "favicon": "/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico",
- "action": {
- "icon": "retry",
- "title": "Retry",
- "path": "/root/ci-mock/builds/4166/retry",
- "method": "post"
- }
+ {
+ name: 'deploy',
+ title: 'deploy: passed',
+ groups: [
+ {
+ name: 'deploy to production',
+ size: 1,
+ status: {
+ icon: 'icon_status_success',
+ text: 'passed',
+ label: 'passed',
+ group: 'success',
+ has_details: true,
+ details_path: '/root/ci-mock/builds/4166',
+ favicon:
+ '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico',
+ action: {
+ icon: 'retry',
+ title: 'Retry',
+ path: '/root/ci-mock/builds/4166/retry',
+ method: 'post',
+ },
+ },
+ jobs: [
+ {
+ id: 4166,
+ name: 'deploy to production',
+ build_path: '/root/ci-mock/builds/4166',
+ retry_path: '/root/ci-mock/builds/4166/retry',
+ playable: false,
+ created_at: '2017-04-19T14:29:46.463Z',
+ updated_at: '2017-04-19T14:30:27.498Z',
+ status: {
+ icon: 'icon_status_success',
+ text: 'passed',
+ label: 'passed',
+ group: 'success',
+ has_details: true,
+ details_path: '/root/ci-mock/builds/4166',
+ favicon:
+ '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico',
+ action: {
+ icon: 'retry',
+ title: 'Retry',
+ path: '/root/ci-mock/builds/4166/retry',
+ method: 'post',
+ },
+ },
+ },
+ ],
+ },
+ {
+ name: 'deploy to staging',
+ size: 1,
+ status: {
+ icon: 'icon_status_success',
+ text: 'passed',
+ label: 'passed',
+ group: 'success',
+ has_details: true,
+ details_path: '/root/ci-mock/builds/4159',
+ favicon:
+ '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico',
+ action: {
+ icon: 'retry',
+ title: 'Retry',
+ path: '/root/ci-mock/builds/4159/retry',
+ method: 'post',
+ },
+ },
+ jobs: [
+ {
+ id: 4159,
+ name: 'deploy to staging',
+ build_path: '/root/ci-mock/builds/4159',
+ retry_path: '/root/ci-mock/builds/4159/retry',
+ playable: false,
+ created_at: '2017-04-18T16:32:08.420Z',
+ updated_at: '2017-04-18T16:32:12.631Z',
+ status: {
+ icon: 'icon_status_success',
+ text: 'passed',
+ label: 'passed',
+ group: 'success',
+ has_details: true,
+ details_path: '/root/ci-mock/builds/4159',
+ favicon:
+ '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico',
+ action: {
+ icon: 'retry',
+ title: 'Retry',
+ path: '/root/ci-mock/builds/4159/retry',
+ method: 'post',
+ },
+ },
+ },
+ ],
+ },
+ ],
+ status: {
+ icon: 'icon_status_success',
+ text: 'passed',
+ label: 'passed',
+ group: 'success',
+ has_details: true,
+ details_path: '/root/ci-mock/pipelines/123#deploy',
+ favicon:
+ '/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico',
},
- "jobs": [{
- "id": 4166,
- "name": "deploy to production",
- "build_path": "/root/ci-mock/builds/4166",
- "retry_path": "/root/ci-mock/builds/4166/retry",
- "playable": false,
- "created_at": "2017-04-19T14:29:46.463Z",
- "updated_at": "2017-04-19T14:30:27.498Z",
- "status": {
- "icon": "icon_status_success",
- "text": "passed",
- "label": "passed",
- "group": "success",
- "has_details": true,
- "details_path": "/root/ci-mock/builds/4166",
- "favicon": "/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico",
- "action": {
- "icon": "retry",
- "title": "Retry",
- "path": "/root/ci-mock/builds/4166/retry",
- "method": "post"
- }
- }
- }]
- }, {
- "name": "deploy to staging",
- "size": 1,
- "status": {
- "icon": "icon_status_success",
- "text": "passed",
- "label": "passed",
- "group": "success",
- "has_details": true,
- "details_path": "/root/ci-mock/builds/4159",
- "favicon": "/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico",
- "action": {
- "icon": "retry",
- "title": "Retry",
- "path": "/root/ci-mock/builds/4159/retry",
- "method": "post"
- }
- },
- "jobs": [{
- "id": 4159,
- "name": "deploy to staging",
- "build_path": "/root/ci-mock/builds/4159",
- "retry_path": "/root/ci-mock/builds/4159/retry",
- "playable": false,
- "created_at": "2017-04-18T16:32:08.420Z",
- "updated_at": "2017-04-18T16:32:12.631Z",
- "status": {
- "icon": "icon_status_success",
- "text": "passed",
- "label": "passed",
- "group": "success",
- "has_details": true,
- "details_path": "/root/ci-mock/builds/4159",
- "favicon": "/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico",
- "action": {
- "icon": "retry",
- "title": "Retry",
- "path": "/root/ci-mock/builds/4159/retry",
- "method": "post"
- }
- }
- }]
- }],
- "status": {
- "icon": "icon_status_success",
- "text": "passed",
- "label": "passed",
- "group": "success",
- "has_details": true,
- "details_path": "/root/ci-mock/pipelines/123#deploy",
- "favicon": "/assets/ci_favicons/dev/favicon_status_success-308b4fc054cdd1b68d0865e6cfb7b02e92e3472f201507418f8eddb74ac11a59.ico"
+ path: '/root/ci-mock/pipelines/123#deploy',
+ dropdown_path: '/root/ci-mock/pipelines/123/stage.json?stage=deploy',
+ },
+ ],
+ artifacts: [],
+ manual_actions: [
+ {
+ name: 'deploy to production',
+ path: '/root/ci-mock/builds/4166/play',
+ playable: false,
},
- "path": "/root/ci-mock/pipelines/123#deploy",
- "dropdown_path": "/root/ci-mock/pipelines/123/stage.json?stage=deploy"
- }],
- "artifacts": [],
- "manual_actions": [{
- "name": "deploy to production",
- "path": "/root/ci-mock/builds/4166/play",
- "playable": false
- }]
+ ],
},
- "flags": {
- "latest": true,
- "triggered": false,
- "stuck": false,
- "yaml_errors": false,
- "retryable": false,
- "cancelable": false
+ flags: {
+ latest: true,
+ triggered: false,
+ stuck: false,
+ yaml_errors: false,
+ retryable: false,
+ cancelable: false,
},
- "ref": {
- "name": "master",
- "path": "/root/ci-mock/tree/master",
- "tag": false,
- "branch": true
+ ref: {
+ name: 'master',
+ path: '/root/ci-mock/tree/master',
+ tag: false,
+ branch: true,
},
- "commit": {
- "id": "798e5f902592192afaba73f4668ae30e56eae492",
- "short_id": "798e5f90",
- "title": "Merge branch 'new-branch' into 'master'\r",
- "created_at": "2017-04-13T10:25:17.000+01:00",
- "parent_ids": ["54d483b1ed156fbbf618886ddf7ab023e24f8738", "c8e2d38a6c538822e81c57022a6e3a0cfedebbcc"],
- "message": "Merge branch 'new-branch' into 'master'\r\n\r\nAdd new file\r\n\r\nSee merge request !1",
- "author_name": "Root",
- "author_email": "admin@example.com",
- "authored_date": "2017-04-13T10:25:17.000+01:00",
- "committer_name": "Root",
- "committer_email": "admin@example.com",
- "committed_date": "2017-04-13T10:25:17.000+01:00",
- "author": {
- "name": "Root",
- "username": "root",
- "id": 1,
- "state": "active",
- "avatar_url": null,
- "web_url": "http://localhost:3000/root"
+ commit: {
+ id: '798e5f902592192afaba73f4668ae30e56eae492',
+ short_id: '798e5f90',
+ title: "Merge branch 'new-branch' into 'master'\r",
+ created_at: '2017-04-13T10:25:17.000+01:00',
+ parent_ids: [
+ '54d483b1ed156fbbf618886ddf7ab023e24f8738',
+ 'c8e2d38a6c538822e81c57022a6e3a0cfedebbcc',
+ ],
+ message:
+ "Merge branch 'new-branch' into 'master'\r\n\r\nAdd new file\r\n\r\nSee merge request !1",
+ author_name: 'Root',
+ author_email: 'admin@example.com',
+ authored_date: '2017-04-13T10:25:17.000+01:00',
+ committer_name: 'Root',
+ committer_email: 'admin@example.com',
+ committed_date: '2017-04-13T10:25:17.000+01:00',
+ author: {
+ name: 'Root',
+ username: 'root',
+ id: 1,
+ state: 'active',
+ avatar_url: null,
+ web_url: 'http://localhost:3000/root',
},
- "author_gravatar_url": null,
- "commit_url": "http://localhost:3000/root/ci-mock/commit/798e5f902592192afaba73f4668ae30e56eae492",
- "commit_path": "/root/ci-mock/commit/798e5f902592192afaba73f4668ae30e56eae492"
+ author_gravatar_url: null,
+ commit_url:
+ 'http://localhost:3000/root/ci-mock/commit/798e5f902592192afaba73f4668ae30e56eae492',
+ commit_path: '/root/ci-mock/commit/798e5f902592192afaba73f4668ae30e56eae492',
},
- "created_at": "2017-04-13T09:25:18.881Z",
- "updated_at": "2017-04-19T14:30:27.561Z"
+ created_at: '2017-04-13T09:25:18.881Z',
+ updated_at: '2017-04-19T14:30:27.561Z',
};
diff --git a/spec/javascripts/pipelines/pipelines_spec.js b/spec/javascripts/pipelines/pipelines_spec.js
index 7e242eb45e1..d79544f83ad 100644
--- a/spec/javascripts/pipelines/pipelines_spec.js
+++ b/spec/javascripts/pipelines/pipelines_spec.js
@@ -1,5 +1,6 @@
-import _ from 'underscore';
import Vue from 'vue';
+import MockAdapter from 'axios-mock-adapter';
+import axios from '~/lib/utils/axios_utils';
import pipelinesComp from '~/pipelines/components/pipelines.vue';
import Store from '~/pipelines/stores/pipelines_store';
import mountComponent from 'spec/helpers/vue_mount_component_helper';
@@ -12,6 +13,8 @@ describe('Pipelines', () => {
let PipelinesComponent;
let pipelines;
let vm;
+ let mock;
+
const paths = {
endpoint: 'twitter/flight/pipelines.json',
autoDevopsPath: '/help/topics/autodevops/index.md',
@@ -34,6 +37,8 @@ describe('Pipelines', () => {
};
beforeEach(() => {
+ mock = new MockAdapter(axios);
+
pipelines = getJSONFixture(jsonFixtureName);
PipelinesComponent = Vue.extend(pipelinesComp);
@@ -41,38 +46,14 @@ describe('Pipelines', () => {
afterEach(() => {
vm.$destroy();
+ mock.restore();
});
- const pipelinesInterceptor = (request, next) => {
- next(request.respondWith(JSON.stringify(pipelines), {
- status: 200,
- }));
- };
-
- const emptyStateInterceptor = (request, next) => {
- next(request.respondWith(JSON.stringify({
- pipelines: [],
- count: {
- all: 0,
- pending: 0,
- running: 0,
- finished: 0,
- },
- }), {
- status: 200,
- }));
- };
-
- const errorInterceptor = (request, next) => {
- next(request.respondWith(JSON.stringify({}), {
- status: 500,
- }));
- };
-
describe('With permission', () => {
describe('With pipelines in main tab', () => {
beforeEach((done) => {
- Vue.http.interceptors.push(pipelinesInterceptor);
+ mock.onGet('twitter/flight/pipelines.json').reply(200, pipelines);
+
vm = mountComponent(PipelinesComponent, {
store: new Store(),
hasGitlabCi: true,
@@ -85,12 +66,6 @@ describe('Pipelines', () => {
});
});
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, pipelinesInterceptor,
- );
- });
-
it('renders tabs', () => {
expect(vm.$el.querySelector('.js-pipelines-tab-all').textContent.trim()).toContain('All');
});
@@ -116,7 +91,15 @@ describe('Pipelines', () => {
describe('Without pipelines on main tab with CI', () => {
beforeEach((done) => {
- Vue.http.interceptors.push(emptyStateInterceptor);
+ mock.onGet('twitter/flight/pipelines.json').reply(200, {
+ pipelines: [],
+ count: {
+ all: 0,
+ pending: 0,
+ running: 0,
+ finished: 0,
+ },
+ });
vm = mountComponent(PipelinesComponent, {
store: new Store(),
hasGitlabCi: true,
@@ -129,12 +112,6 @@ describe('Pipelines', () => {
});
});
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, emptyStateInterceptor,
- );
- });
-
it('renders tabs', () => {
expect(vm.$el.querySelector('.js-pipelines-tab-all').textContent.trim()).toContain('All');
});
@@ -158,7 +135,15 @@ describe('Pipelines', () => {
describe('Without pipelines nor CI', () => {
beforeEach((done) => {
- Vue.http.interceptors.push(emptyStateInterceptor);
+ mock.onGet('twitter/flight/pipelines.json').reply(200, {
+ pipelines: [],
+ count: {
+ all: 0,
+ pending: 0,
+ running: 0,
+ finished: 0,
+ },
+ });
vm = mountComponent(PipelinesComponent, {
store: new Store(),
hasGitlabCi: false,
@@ -171,12 +156,6 @@ describe('Pipelines', () => {
});
});
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, emptyStateInterceptor,
- );
- });
-
it('renders empty state', () => {
expect(vm.$el.querySelector('.js-empty-state h4').textContent.trim()).toEqual('Build with confidence');
expect(vm.$el.querySelector('.js-get-started-pipelines').getAttribute('href')).toEqual(paths.helpPagePath);
@@ -192,7 +171,7 @@ describe('Pipelines', () => {
describe('When API returns error', () => {
beforeEach((done) => {
- Vue.http.interceptors.push(errorInterceptor);
+ mock.onGet('twitter/flight/pipelines.json').reply(500, {});
vm = mountComponent(PipelinesComponent, {
store: new Store(),
hasGitlabCi: false,
@@ -205,12 +184,6 @@ describe('Pipelines', () => {
});
});
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, errorInterceptor,
- );
- });
-
it('renders tabs', () => {
expect(vm.$el.querySelector('.js-pipelines-tab-all').textContent.trim()).toContain('All');
});
@@ -230,7 +203,8 @@ describe('Pipelines', () => {
describe('Without permission', () => {
describe('With pipelines in main tab', () => {
beforeEach((done) => {
- Vue.http.interceptors.push(pipelinesInterceptor);
+ mock.onGet('twitter/flight/pipelines.json').reply(200, pipelines);
+
vm = mountComponent(PipelinesComponent, {
store: new Store(),
hasGitlabCi: false,
@@ -243,12 +217,6 @@ describe('Pipelines', () => {
});
});
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, pipelinesInterceptor,
- );
- });
-
it('renders tabs', () => {
expect(vm.$el.querySelector('.js-pipelines-tab-all').textContent.trim()).toContain('All');
});
@@ -268,7 +236,16 @@ describe('Pipelines', () => {
describe('Without pipelines on main tab with CI', () => {
beforeEach((done) => {
- Vue.http.interceptors.push(emptyStateInterceptor);
+ mock.onGet('twitter/flight/pipelines.json').reply(200, {
+ pipelines: [],
+ count: {
+ all: 0,
+ pending: 0,
+ running: 0,
+ finished: 0,
+ },
+ });
+
vm = mountComponent(PipelinesComponent, {
store: new Store(),
hasGitlabCi: true,
@@ -281,11 +258,6 @@ describe('Pipelines', () => {
});
});
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, emptyStateInterceptor,
- );
- });
it('renders tabs', () => {
expect(vm.$el.querySelector('.js-pipelines-tab-all').textContent.trim()).toContain('All');
});
@@ -303,7 +275,16 @@ describe('Pipelines', () => {
describe('Without pipelines nor CI', () => {
beforeEach((done) => {
- Vue.http.interceptors.push(emptyStateInterceptor);
+ mock.onGet('twitter/flight/pipelines.json').reply(200, {
+ pipelines: [],
+ count: {
+ all: 0,
+ pending: 0,
+ running: 0,
+ finished: 0,
+ },
+ });
+
vm = mountComponent(PipelinesComponent, {
store: new Store(),
hasGitlabCi: false,
@@ -316,12 +297,6 @@ describe('Pipelines', () => {
});
});
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, emptyStateInterceptor,
- );
- });
-
it('renders empty state without button to set CI', () => {
expect(vm.$el.querySelector('.js-empty-state').textContent.trim()).toEqual('This project is not currently set up to run pipelines.');
expect(vm.$el.querySelector('.js-get-started-pipelines')).toBeNull();
@@ -337,7 +312,8 @@ describe('Pipelines', () => {
describe('When API returns error', () => {
beforeEach((done) => {
- Vue.http.interceptors.push(errorInterceptor);
+ mock.onGet('twitter/flight/pipelines.json').reply(500, {});
+
vm = mountComponent(PipelinesComponent, {
store: new Store(),
hasGitlabCi: false,
@@ -350,12 +326,6 @@ describe('Pipelines', () => {
});
});
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, errorInterceptor,
- );
- });
-
it('renders tabs', () => {
expect(vm.$el.querySelector('.js-pipelines-tab-all').textContent.trim()).toContain('All');
});
@@ -375,7 +345,8 @@ describe('Pipelines', () => {
describe('successfull request', () => {
describe('with pipelines', () => {
beforeEach(() => {
- Vue.http.interceptors.push(pipelinesInterceptor);
+ mock.onGet('twitter/flight/pipelines.json').reply(200, pipelines);
+
vm = mountComponent(PipelinesComponent, {
store: new Store(),
hasGitlabCi: true,
@@ -384,12 +355,6 @@ describe('Pipelines', () => {
});
});
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, pipelinesInterceptor,
- );
- });
-
it('should render table', (done) => {
setTimeout(() => {
expect(vm.$el.querySelector('.table-holder')).toBeDefined();
diff --git a/spec/javascripts/pipelines/stage_spec.js b/spec/javascripts/pipelines/stage_spec.js
index 61c2f783acc..c2ed2e9a31b 100644
--- a/spec/javascripts/pipelines/stage_spec.js
+++ b/spec/javascripts/pipelines/stage_spec.js
@@ -1,27 +1,35 @@
-import _ from 'underscore';
import Vue from 'vue';
+import MockAdapter from 'axios-mock-adapter';
+import axios from '~/lib/utils/axios_utils';
import stage from '~/pipelines/components/stage.vue';
+import mountComponent from 'spec/helpers/vue_mount_component_helper';
describe('Pipelines stage component', () => {
let StageComponent;
let component;
+ let mock;
beforeEach(() => {
+ mock = new MockAdapter(axios);
+
StageComponent = Vue.extend(stage);
- component = new StageComponent({
- propsData: {
- stage: {
- status: {
- group: 'success',
- icon: 'icon_status_success',
- title: 'success',
- },
- dropdown_path: 'foo',
+ component = mountComponent(StageComponent, {
+ stage: {
+ status: {
+ group: 'success',
+ icon: 'icon_status_success',
+ title: 'success',
},
- updateDropdown: false,
+ dropdown_path: 'path.json',
},
- }).$mount();
+ updateDropdown: false,
+ });
+ });
+
+ afterEach(() => {
+ component.$destroy();
+ mock.restore();
});
it('should render a dropdown with the status icon', () => {
@@ -31,23 +39,11 @@ describe('Pipelines stage component', () => {
});
describe('with successfull request', () => {
- const interceptor = (request, next) => {
- next(request.respondWith(JSON.stringify({ html: 'foo' }), {
- status: 200,
- }));
- };
-
beforeEach(() => {
- Vue.http.interceptors.push(interceptor);
- });
-
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, interceptor,
- );
+ mock.onGet('path.json').reply(200, { html: 'foo' });
});
- it('should render the received data', (done) => {
+ it('should render the received data', done => {
component.$el.querySelector('button').click();
setTimeout(() => {
@@ -60,20 +56,8 @@ describe('Pipelines stage component', () => {
});
describe('when request fails', () => {
- const interceptor = (request, next) => {
- next(request.respondWith(JSON.stringify({}), {
- status: 500,
- }));
- };
-
beforeEach(() => {
- Vue.http.interceptors.push(interceptor);
- });
-
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, interceptor,
- );
+ mock.onGet('path.json').reply(500);
});
it('should close the dropdown', () => {
@@ -86,33 +70,18 @@ describe('Pipelines stage component', () => {
});
describe('update endpoint correctly', () => {
- const updatedInterceptor = (request, next) => {
- if (request.url === 'bar') {
- next(request.respondWith(JSON.stringify({ html: 'this is the updated content' }), {
- status: 200,
- }));
- }
- next();
- };
-
beforeEach(() => {
- Vue.http.interceptors.push(updatedInterceptor);
- });
-
- afterEach(() => {
- Vue.http.interceptors = _.without(
- Vue.http.interceptors, updatedInterceptor,
- );
+ mock.onGet('bar.json').reply(200, { html: 'this is the updated content' });
});
- it('should update the stage to request the new endpoint provided', (done) => {
+ it('should update the stage to request the new endpoint provided', done => {
component.stage = {
status: {
group: 'running',
icon: 'running',
title: 'running',
},
- dropdown_path: 'bar',
+ dropdown_path: 'bar.json',
};
Vue.nextTick(() => {
@@ -121,7 +90,7 @@ describe('Pipelines stage component', () => {
setTimeout(() => {
expect(
component.$el.querySelector('.js-builds-dropdown-container ul').textContent.trim(),
- ).toEqual('this is the updated content');
+ ).toEqual('this is the updated content');
done();
});
});
diff --git a/spec/javascripts/profile/account/components/update_username_spec.js b/spec/javascripts/profile/account/components/update_username_spec.js
new file mode 100644
index 00000000000..bac306edf5a
--- /dev/null
+++ b/spec/javascripts/profile/account/components/update_username_spec.js
@@ -0,0 +1,172 @@
+import Vue from 'vue';
+import axios from '~/lib/utils/axios_utils';
+import MockAdapter from 'axios-mock-adapter';
+
+import updateUsername from '~/profile/account/components/update_username.vue';
+import mountComponent from 'spec/helpers/vue_mount_component_helper';
+
+describe('UpdateUsername component', () => {
+ const rootUrl = gl.TEST_HOST;
+ const actionUrl = `${gl.TEST_HOST}/update/username`;
+ const username = 'hasnoname';
+ const newUsername = 'new_username';
+ let Component;
+ let vm;
+ let axiosMock;
+
+ beforeEach(() => {
+ axiosMock = new MockAdapter(axios);
+ Component = Vue.extend(updateUsername);
+ vm = mountComponent(Component, {
+ actionUrl,
+ rootUrl,
+ initialUsername: username,
+ });
+ });
+
+ afterEach(() => {
+ vm.$destroy();
+ axiosMock.restore();
+ });
+
+ const findElements = () => {
+ const modalSelector = `#${vm.$options.modalId}`;
+
+ return {
+ input: vm.$el.querySelector(`#${vm.$options.inputId}`),
+ openModalBtn: vm.$el.querySelector(`[data-target="${modalSelector}"]`),
+ modal: vm.$el.querySelector(modalSelector),
+ modalBody: vm.$el.querySelector(`${modalSelector} .modal-body`),
+ modalHeader: vm.$el.querySelector(`${modalSelector} .modal-title`),
+ confirmModalBtn: vm.$el.querySelector(`${modalSelector} .btn-warning`),
+ };
+ };
+
+ it('has a disabled button if the username was not changed', done => {
+ const { input, openModalBtn } = findElements();
+ input.dispatchEvent(new Event('input'));
+
+ Vue.nextTick()
+ .then(() => {
+ expect(vm.username).toBe(username);
+ expect(vm.newUsername).toBe(username);
+ expect(openModalBtn).toBeDisabled();
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('has an enabled button which if the username was changed', done => {
+ const { input, openModalBtn } = findElements();
+ input.value = newUsername;
+ input.dispatchEvent(new Event('input'));
+
+ Vue.nextTick()
+ .then(() => {
+ expect(vm.username).toBe(username);
+ expect(vm.newUsername).toBe(newUsername);
+ expect(openModalBtn).not.toBeDisabled();
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('confirmation modal contains proper header and body', done => {
+ const { modalBody, modalHeader } = findElements();
+
+ vm.newUsername = newUsername;
+
+ Vue.nextTick()
+ .then(() => {
+ expect(modalHeader.textContent).toContain('Change username?');
+ expect(modalBody.textContent).toContain(
+ `You are going to change the username ${username} to ${newUsername}`,
+ );
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('confirmation modal should escape usernames properly', done => {
+ const { modalBody } = findElements();
+
+ vm.username = vm.newUsername = '<i>Italic</i>';
+
+ Vue.nextTick()
+ .then(() => {
+ expect(modalBody.innerHTML).toContain('&lt;i&gt;Italic&lt;/i&gt;');
+ expect(modalBody.innerHTML).not.toContain(vm.username);
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('executes API call on confirmation button click', done => {
+ const { confirmModalBtn } = findElements();
+
+ axiosMock.onPut(actionUrl).replyOnce(() => [200, { message: 'Username changed' }]);
+ spyOn(axios, 'put').and.callThrough();
+
+ vm.newUsername = newUsername;
+
+ Vue.nextTick()
+ .then(() => {
+ confirmModalBtn.click();
+ expect(axios.put).toHaveBeenCalledWith(actionUrl, { user: { username: newUsername } });
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('sets the username after a successful update', done => {
+ const { input, openModalBtn } = findElements();
+
+ axiosMock.onPut(actionUrl).replyOnce(() => {
+ expect(input).toBeDisabled();
+ expect(openModalBtn).toBeDisabled();
+
+ return [200, { message: 'Username changed' }];
+ });
+
+ vm.newUsername = newUsername;
+
+ vm
+ .onConfirm()
+ .then(() => {
+ expect(vm.username).toBe(newUsername);
+ expect(vm.newUsername).toBe(newUsername);
+ expect(input).not.toBeDisabled();
+ expect(input.value).toBe(newUsername);
+ expect(openModalBtn).toBeDisabled();
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+
+ it('does not set the username after a erroneous update', done => {
+ const { input, openModalBtn } = findElements();
+
+ axiosMock.onPut(actionUrl).replyOnce(() => {
+ expect(input).toBeDisabled();
+ expect(openModalBtn).toBeDisabled();
+
+ return [400, { message: 'Invalid username' }];
+ });
+
+ const invalidUsername = 'anything.git';
+ vm.newUsername = invalidUsername;
+
+ vm
+ .onConfirm()
+ .then(() => done.fail('Expected onConfirm to throw!'))
+ .catch(() => {
+ expect(vm.username).toBe(username);
+ expect(vm.newUsername).toBe(invalidUsername);
+ expect(input).not.toBeDisabled();
+ expect(input.value).toBe(invalidUsername);
+ expect(openModalBtn).not.toBeDisabled();
+ })
+ .then(done)
+ .catch(done.fail);
+ });
+});
diff --git a/spec/javascripts/search_autocomplete_spec.js b/spec/javascripts/search_autocomplete_spec.js
index 40115792652..1a27955983d 100644
--- a/spec/javascripts/search_autocomplete_spec.js
+++ b/spec/javascripts/search_autocomplete_spec.js
@@ -6,8 +6,21 @@ import SearchAutocomplete from '~/search_autocomplete';
import '~/lib/utils/common_utils';
import * as urlUtils from '~/lib/utils/url_utility';
-(function() {
- var assertLinks, dashboardIssuesPath, dashboardMRsPath, groupIssuesPath, groupMRsPath, groupName, mockDashboardOptions, mockGroupOptions, mockProjectOptions, projectIssuesPath, projectMRsPath, projectName, userId, widget;
+describe('Search autocomplete dropdown', () => {
+ var assertLinks,
+ dashboardIssuesPath,
+ dashboardMRsPath,
+ groupIssuesPath,
+ groupMRsPath,
+ groupName,
+ mockDashboardOptions,
+ mockGroupOptions,
+ mockProjectOptions,
+ projectIssuesPath,
+ projectMRsPath,
+ projectName,
+ userId,
+ widget;
var userName = 'root';
widget = null;
@@ -66,133 +79,126 @@ import * as urlUtils from '~/lib/utils/url_utility';
// Mock `gl` object in window for dashboard specific page. App code will need it.
mockDashboardOptions = function() {
window.gl || (window.gl = {});
- return window.gl.dashboardOptions = {
+ return (window.gl.dashboardOptions = {
issuesPath: dashboardIssuesPath,
- mrPath: dashboardMRsPath
- };
+ mrPath: dashboardMRsPath,
+ });
};
// Mock `gl` object in window for project specific page. App code will need it.
mockProjectOptions = function() {
window.gl || (window.gl = {});
- return window.gl.projectOptions = {
+ return (window.gl.projectOptions = {
'gitlab-ce': {
issuesPath: projectIssuesPath,
mrPath: projectMRsPath,
- projectName: projectName
- }
- };
+ projectName: projectName,
+ },
+ });
};
mockGroupOptions = function() {
window.gl || (window.gl = {});
- return window.gl.groupOptions = {
+ return (window.gl.groupOptions = {
'gitlab-org': {
issuesPath: groupIssuesPath,
mrPath: groupMRsPath,
- projectName: groupName
- }
- };
+ projectName: groupName,
+ },
+ });
};
assertLinks = function(list, issuesPath, mrsPath) {
- var a1, a2, a3, a4, issuesAssignedToMeLink, issuesIHaveCreatedLink, mrsAssignedToMeLink, mrsIHaveCreatedLink;
if (issuesPath) {
- issuesAssignedToMeLink = issuesPath + "/?assignee_username=" + userName;
- issuesIHaveCreatedLink = issuesPath + "/?author_username=" + userName;
- a1 = "a[href='" + issuesAssignedToMeLink + "']";
- a2 = "a[href='" + issuesIHaveCreatedLink + "']";
- expect(list.find(a1).length).toBe(1);
- expect(list.find(a1).text()).toBe('Issues assigned to me');
- expect(list.find(a2).length).toBe(1);
- expect(list.find(a2).text()).toBe("Issues I've created");
+ const issuesAssignedToMeLink = `a[href="${issuesPath}/?assignee_id=${userId}"]`;
+ const issuesIHaveCreatedLink = `a[href="${issuesPath}/?author_id=${userId}"]`;
+ expect(list.find(issuesAssignedToMeLink).length).toBe(1);
+ expect(list.find(issuesAssignedToMeLink).text()).toBe('Issues assigned to me');
+ expect(list.find(issuesIHaveCreatedLink).length).toBe(1);
+ expect(list.find(issuesIHaveCreatedLink).text()).toBe("Issues I've created");
}
- mrsAssignedToMeLink = mrsPath + "/?assignee_username=" + userName;
- mrsIHaveCreatedLink = mrsPath + "/?author_username=" + userName;
- a3 = "a[href='" + mrsAssignedToMeLink + "']";
- a4 = "a[href='" + mrsIHaveCreatedLink + "']";
- expect(list.find(a3).length).toBe(1);
- expect(list.find(a3).text()).toBe('Merge requests assigned to me');
- expect(list.find(a4).length).toBe(1);
- return expect(list.find(a4).text()).toBe("Merge requests I've created");
+ const mrsAssignedToMeLink = `a[href="${mrsPath}/?assignee_id=${userId}"]`;
+ const mrsIHaveCreatedLink = `a[href="${mrsPath}/?author_id=${userId}"]`;
+ expect(list.find(mrsAssignedToMeLink).length).toBe(1);
+ expect(list.find(mrsAssignedToMeLink).text()).toBe('Merge requests assigned to me');
+ expect(list.find(mrsIHaveCreatedLink).length).toBe(1);
+ expect(list.find(mrsIHaveCreatedLink).text()).toBe("Merge requests I've created");
};
- describe('Search autocomplete dropdown', function() {
- preloadFixtures('static/search_autocomplete.html.raw');
- beforeEach(function() {
- loadFixtures('static/search_autocomplete.html.raw');
+ preloadFixtures('static/search_autocomplete.html.raw');
+ beforeEach(function() {
+ loadFixtures('static/search_autocomplete.html.raw');
- // Prevent turbolinks from triggering within gl_dropdown
- spyOn(urlUtils, 'visitUrl').and.returnValue(true);
+ // Prevent turbolinks from triggering within gl_dropdown
+ spyOn(urlUtils, 'visitUrl').and.returnValue(true);
- window.gon = {};
- window.gon.current_user_id = userId;
- window.gon.current_username = userName;
+ window.gon = {};
+ window.gon.current_user_id = userId;
+ window.gon.current_username = userName;
- return widget = new SearchAutocomplete();
- });
+ return (widget = new SearchAutocomplete());
+ });
- afterEach(function() {
- // Undo what we did to the shared <body>
- removeBodyAttributes();
- window.gon = {};
- });
- it('should show Dashboard specific dropdown menu', function() {
- var list;
- addBodyAttributes();
- mockDashboardOptions();
- widget.searchInput.triggerHandler('focus');
- list = widget.wrap.find('.dropdown-menu').find('ul');
- return assertLinks(list, dashboardIssuesPath, dashboardMRsPath);
- });
- it('should show Group specific dropdown menu', function() {
- var list;
- addBodyAttributes('group');
- mockGroupOptions();
- widget.searchInput.triggerHandler('focus');
- list = widget.wrap.find('.dropdown-menu').find('ul');
- return assertLinks(list, groupIssuesPath, groupMRsPath);
- });
- it('should show Project specific dropdown menu', function() {
- var list;
- addBodyAttributes('project');
- mockProjectOptions();
- widget.searchInput.triggerHandler('focus');
- list = widget.wrap.find('.dropdown-menu').find('ul');
- return assertLinks(list, projectIssuesPath, projectMRsPath);
- });
- it('should show only Project mergeRequest dropdown menu items when project issues are disabled', function() {
- addBodyAttributes('project');
- disableProjectIssues();
- mockProjectOptions();
- widget.searchInput.triggerHandler('focus');
- const list = widget.wrap.find('.dropdown-menu').find('ul');
- assertLinks(list, null, projectMRsPath);
- });
- it('should not show category related menu if there is text in the input', function() {
- var link, list;
- addBodyAttributes('project');
- mockProjectOptions();
- widget.searchInput.val('help');
- widget.searchInput.triggerHandler('focus');
- list = widget.wrap.find('.dropdown-menu').find('ul');
- link = "a[href='" + projectIssuesPath + "/?assignee_id=" + userId + "']";
- return expect(list.find(link).length).toBe(0);
- });
- return it('should not submit the search form when selecting an autocomplete row with the keyboard', function() {
- var ENTER = 13;
- var DOWN = 40;
- addBodyAttributes();
- mockDashboardOptions(true);
- var submitSpy = spyOnEvent('form', 'submit');
- widget.searchInput.triggerHandler('focus');
- widget.wrap.trigger($.Event('keydown', { which: DOWN }));
- var enterKeyEvent = $.Event('keydown', { which: ENTER });
- widget.searchInput.trigger(enterKeyEvent);
- // This does not currently catch failing behavior. For security reasons,
- // browsers will not trigger default behavior (form submit, in this
- // example) on JavaScript-created keypresses.
- expect(submitSpy).not.toHaveBeenTriggered();
- });
+ afterEach(function() {
+ // Undo what we did to the shared <body>
+ removeBodyAttributes();
+ window.gon = {};
+ });
+ it('should show Dashboard specific dropdown menu', function() {
+ var list;
+ addBodyAttributes();
+ mockDashboardOptions();
+ widget.searchInput.triggerHandler('focus');
+ list = widget.wrap.find('.dropdown-menu').find('ul');
+ return assertLinks(list, dashboardIssuesPath, dashboardMRsPath);
+ });
+ it('should show Group specific dropdown menu', function() {
+ var list;
+ addBodyAttributes('group');
+ mockGroupOptions();
+ widget.searchInput.triggerHandler('focus');
+ list = widget.wrap.find('.dropdown-menu').find('ul');
+ return assertLinks(list, groupIssuesPath, groupMRsPath);
+ });
+ it('should show Project specific dropdown menu', function() {
+ var list;
+ addBodyAttributes('project');
+ mockProjectOptions();
+ widget.searchInput.triggerHandler('focus');
+ list = widget.wrap.find('.dropdown-menu').find('ul');
+ return assertLinks(list, projectIssuesPath, projectMRsPath);
+ });
+ it('should show only Project mergeRequest dropdown menu items when project issues are disabled', function() {
+ addBodyAttributes('project');
+ disableProjectIssues();
+ mockProjectOptions();
+ widget.searchInput.triggerHandler('focus');
+ const list = widget.wrap.find('.dropdown-menu').find('ul');
+ assertLinks(list, null, projectMRsPath);
+ });
+ it('should not show category related menu if there is text in the input', function() {
+ var link, list;
+ addBodyAttributes('project');
+ mockProjectOptions();
+ widget.searchInput.val('help');
+ widget.searchInput.triggerHandler('focus');
+ list = widget.wrap.find('.dropdown-menu').find('ul');
+ link = "a[href='" + projectIssuesPath + '/?assignee_id=' + userId + "']";
+ return expect(list.find(link).length).toBe(0);
+ });
+ it('should not submit the search form when selecting an autocomplete row with the keyboard', function() {
+ var ENTER = 13;
+ var DOWN = 40;
+ addBodyAttributes();
+ mockDashboardOptions(true);
+ var submitSpy = spyOnEvent('form', 'submit');
+ widget.searchInput.triggerHandler('focus');
+ widget.wrap.trigger($.Event('keydown', { which: DOWN }));
+ var enterKeyEvent = $.Event('keydown', { which: ENTER });
+ widget.searchInput.trigger(enterKeyEvent);
+ // This does not currently catch failing behavior. For security reasons,
+ // browsers will not trigger default behavior (form submit, in this
+ // example) on JavaScript-created keypresses.
+ expect(submitSpy).not.toHaveBeenTriggered();
});
-}).call(window);
+});
diff --git a/spec/javascripts/sidebar/confidential_issue_sidebar_spec.js b/spec/javascripts/sidebar/confidential_issue_sidebar_spec.js
index 88a33caf2e3..0c173062835 100644
--- a/spec/javascripts/sidebar/confidential_issue_sidebar_spec.js
+++ b/spec/javascripts/sidebar/confidential_issue_sidebar_spec.js
@@ -62,4 +62,22 @@ describe('Confidential Issue Sidebar Block', () => {
done();
});
});
+
+ it('displays the edit form when opened from collapsed state', (done) => {
+ expect(vm1.edit).toBe(false);
+
+ vm1.$el.querySelector('.sidebar-collapsed-icon').click();
+
+ expect(vm1.edit).toBe(true);
+
+ setTimeout(() => {
+ expect(
+ vm1.$el
+ .innerHTML
+ .includes('You are going to turn off the confidentiality.'),
+ ).toBe(true);
+
+ done();
+ });
+ });
});
diff --git a/spec/javascripts/sidebar/lock/lock_issue_sidebar_spec.js b/spec/javascripts/sidebar/lock/lock_issue_sidebar_spec.js
index 696fca516bc..9abc3daf221 100644
--- a/spec/javascripts/sidebar/lock/lock_issue_sidebar_spec.js
+++ b/spec/javascripts/sidebar/lock/lock_issue_sidebar_spec.js
@@ -68,4 +68,22 @@ describe('LockIssueSidebar', () => {
done();
});
});
+
+ it('displays the edit form when opened from collapsed state', (done) => {
+ expect(vm1.isLockDialogOpen).toBe(false);
+
+ vm1.$el.querySelector('.sidebar-collapsed-icon').click();
+
+ expect(vm1.isLockDialogOpen).toBe(true);
+
+ setTimeout(() => {
+ expect(
+ vm1.$el
+ .innerHTML
+ .includes('Unlock this issue?'),
+ ).toBe(true);
+
+ done();
+ });
+ });
});
diff --git a/spec/javascripts/sidebar/mock_data.js b/spec/javascripts/sidebar/mock_data.js
index d9e84e35f69..8b6e8b24f00 100644
--- a/spec/javascripts/sidebar/mock_data.js
+++ b/spec/javascripts/sidebar/mock_data.js
@@ -1,7 +1,5 @@
-/* eslint-disable quote-props*/
-
const RESPONSE_MAP = {
- 'GET': {
+ GET: {
'/gitlab-org/gitlab-shell/issues/5.json': {
id: 45,
iid: 5,
@@ -27,7 +25,8 @@ const RESPONSE_MAP = {
username: 'user0',
id: 22,
state: 'active',
- avatar_url: 'https://www.gravatar.com/avatar/52e4ce24a915fb7e51e1ad3b57f4b00a?s=80\u0026d=identicon',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/52e4ce24a915fb7e51e1ad3b57f4b00a?s=80\u0026d=identicon',
web_url: 'http: //localhost:3001/user0',
},
{
@@ -35,7 +34,8 @@ const RESPONSE_MAP = {
username: 'tajuana',
id: 18,
state: 'active',
- avatar_url: 'https://www.gravatar.com/avatar/4852a41fb41616bf8f140d3701673f53?s=80\u0026d=identicon',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/4852a41fb41616bf8f140d3701673f53?s=80\u0026d=identicon',
web_url: 'http: //localhost:3001/tajuana',
},
{
@@ -43,7 +43,8 @@ const RESPONSE_MAP = {
username: 'michaele.will',
id: 16,
state: 'active',
- avatar_url: 'https://www.gravatar.com/avatar/e301827eb03be955c9c172cb9a8e4e8a?s=80\u0026d=identicon',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e301827eb03be955c9c172cb9a8e4e8a?s=80\u0026d=identicon',
web_url: 'http: //localhost:3001/michaele.will',
},
],
@@ -72,7 +73,8 @@ const RESPONSE_MAP = {
username: 'user0',
id: 22,
state: 'active',
- avatar_url: 'https://www.gravatar.com/avatar/52e4ce24a915fb7e51e1ad3b57f4b00a?s=80\u0026d=identicon',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/52e4ce24a915fb7e51e1ad3b57f4b00a?s=80\u0026d=identicon',
web_url: 'http://localhost:3001/user0',
},
{
@@ -80,7 +82,8 @@ const RESPONSE_MAP = {
username: 'tajuana',
id: 18,
state: 'active',
- avatar_url: 'https://www.gravatar.com/avatar/4852a41fb41616bf8f140d3701673f53?s=80\u0026d=identicon',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/4852a41fb41616bf8f140d3701673f53?s=80\u0026d=identicon',
web_url: 'http://localhost:3001/tajuana',
},
{
@@ -88,7 +91,8 @@ const RESPONSE_MAP = {
username: 'michaele.will',
id: 16,
state: 'active',
- avatar_url: 'https://www.gravatar.com/avatar/e301827eb03be955c9c172cb9a8e4e8a?s=80\u0026d=identicon',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e301827eb03be955c9c172cb9a8e4e8a?s=80\u0026d=identicon',
web_url: 'http://localhost:3001/michaele.will',
},
],
@@ -100,7 +104,8 @@ const RESPONSE_MAP = {
username: 'user0',
id: 22,
state: 'active',
- avatar_url: 'https://www.gravatar.com/avatar/52e4ce24a915fb7e51e1ad3b57f4b00a?s=80\u0026d=identicon',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/52e4ce24a915fb7e51e1ad3b57f4b00a?s=80\u0026d=identicon',
web_url: 'http://localhost:3001/user0',
},
{
@@ -108,7 +113,8 @@ const RESPONSE_MAP = {
username: 'tajuana',
id: 18,
state: 'active',
- avatar_url: 'https://www.gravatar.com/avatar/4852a41fb41616bf8f140d3701673f53?s=80\u0026d=identicon',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/4852a41fb41616bf8f140d3701673f53?s=80\u0026d=identicon',
web_url: 'http://localhost:3001/tajuana',
},
{
@@ -116,7 +122,8 @@ const RESPONSE_MAP = {
username: 'michaele.will',
id: 16,
state: 'active',
- avatar_url: 'https://www.gravatar.com/avatar/e301827eb03be955c9c172cb9a8e4e8a?s=80\u0026d=identicon',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e301827eb03be955c9c172cb9a8e4e8a?s=80\u0026d=identicon',
web_url: 'http://localhost:3001/michaele.will',
},
],
@@ -126,20 +133,21 @@ const RESPONSE_MAP = {
},
'/autocomplete/projects?project_id=15': [
{
- 'id': 0,
- 'name_with_namespace': 'No project',
- }, {
- 'id': 20,
- 'name_with_namespace': 'foo / bar',
+ id: 0,
+ name_with_namespace: 'No project',
+ },
+ {
+ id: 20,
+ name_with_namespace: 'foo / bar',
},
],
},
- 'PUT': {
+ PUT: {
'/gitlab-org/gitlab-shell/issues/5.json': {
data: {},
},
},
- 'POST': {
+ POST: {
'/gitlab-org/gitlab-shell/issues/5/move': {
id: 123,
iid: 5,
@@ -182,7 +190,8 @@ const mockData = {
id: 1,
name: 'Administrator',
username: 'root',
- avatar_url: 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
},
rootPath: '/',
fullPath: '/gitlab-org/gitlab-shell',
@@ -201,12 +210,14 @@ const mockData = {
},
};
-mockData.sidebarMockInterceptor = function (request, next) {
+mockData.sidebarMockInterceptor = function(request, next) {
const body = this.responseMap[request.method.toUpperCase()][request.url];
- next(request.respondWith(JSON.stringify(body), {
- status: 200,
- }));
+ next(
+ request.respondWith(JSON.stringify(body), {
+ status: 200,
+ }),
+ );
}.bind(mockData);
export default mockData;
diff --git a/spec/javascripts/test_bundle.js b/spec/javascripts/test_bundle.js
index 1bcfdfe72b6..d158786e484 100644
--- a/spec/javascripts/test_bundle.js
+++ b/spec/javascripts/test_bundle.js
@@ -7,6 +7,9 @@ import Vue from 'vue';
import VueResource from 'vue-resource';
import { getDefaultAdapter } from '~/lib/utils/axios_utils';
+import { FIXTURES_PATH, TEST_HOST } from './test_constants';
+
+import customMatchers from './matchers';
const isHeadlessChrome = /\bHeadlessChrome\//.test(navigator.userAgent);
Vue.config.devtools = !isHeadlessChrome;
@@ -27,15 +30,17 @@ Vue.config.errorHandler = function (err) {
Vue.use(VueResource);
// enable test fixtures
-jasmine.getFixtures().fixturesPath = '/base/spec/javascripts/fixtures';
-jasmine.getJSONFixtures().fixturesPath = '/base/spec/javascripts/fixtures';
+jasmine.getFixtures().fixturesPath = FIXTURES_PATH;
+jasmine.getJSONFixtures().fixturesPath = FIXTURES_PATH;
+
+beforeAll(() => jasmine.addMatchers(customMatchers));
// globalize common libraries
window.$ = window.jQuery = $;
// stub expected globals
window.gl = window.gl || {};
-window.gl.TEST_HOST = 'http://test.host';
+window.gl.TEST_HOST = TEST_HOST;
window.gon = window.gon || {};
window.gon.test_env = true;
diff --git a/spec/javascripts/test_constants.js b/spec/javascripts/test_constants.js
new file mode 100644
index 00000000000..df59195e9f6
--- /dev/null
+++ b/spec/javascripts/test_constants.js
@@ -0,0 +1,4 @@
+export const FIXTURES_PATH = '/base/spec/javascripts/fixtures';
+export const TEST_HOST = 'http://test.host';
+
+export const DUMMY_IMAGE_URL = `${FIXTURES_PATH}/one_white_pixel.png`;
diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js
index 235c33fac0d..9b9c9656979 100644
--- a/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js
+++ b/spec/javascripts/vue_mr_widget/components/mr_widget_header_spec.js
@@ -17,46 +17,58 @@ describe('MRWidgetHeader', () => {
describe('computed', () => {
describe('shouldShowCommitsBehindText', () => {
it('return true when there are divergedCommitsCount', () => {
- vm = mountComponent(Component, { mr: {
- divergedCommitsCount: 12,
- sourceBranch: 'mr-widget-refactor',
- sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">Link</a>',
- targetBranch: 'master',
- } });
+ vm = mountComponent(Component, {
+ mr: {
+ divergedCommitsCount: 12,
+ sourceBranch: 'mr-widget-refactor',
+ sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">Link</a>',
+ targetBranch: 'master',
+ statusPath: 'abc',
+ },
+ });
expect(vm.shouldShowCommitsBehindText).toEqual(true);
});
it('returns false where there are no divergedComits count', () => {
- vm = mountComponent(Component, { mr: {
- divergedCommitsCount: 0,
- sourceBranch: 'mr-widget-refactor',
- sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">Link</a>',
- targetBranch: 'master',
- } });
+ vm = mountComponent(Component, {
+ mr: {
+ divergedCommitsCount: 0,
+ sourceBranch: 'mr-widget-refactor',
+ sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">Link</a>',
+ targetBranch: 'master',
+ statusPath: 'abc',
+ },
+ });
expect(vm.shouldShowCommitsBehindText).toEqual(false);
});
});
describe('commitsText', () => {
it('returns singular when there is one commit', () => {
- vm = mountComponent(Component, { mr: {
- divergedCommitsCount: 1,
- sourceBranch: 'mr-widget-refactor',
- sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">Link</a>',
- targetBranch: 'master',
- } });
+ vm = mountComponent(Component, {
+ mr: {
+ divergedCommitsCount: 1,
+ sourceBranch: 'mr-widget-refactor',
+ sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">Link</a>',
+ targetBranch: 'master',
+ statusPath: 'abc',
+ },
+ });
expect(vm.commitsText).toEqual('1 commit behind');
});
it('returns plural when there is more than one commit', () => {
- vm = mountComponent(Component, { mr: {
- divergedCommitsCount: 2,
- sourceBranch: 'mr-widget-refactor',
- sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">Link</a>',
- targetBranch: 'master',
- } });
+ vm = mountComponent(Component, {
+ mr: {
+ divergedCommitsCount: 2,
+ sourceBranch: 'mr-widget-refactor',
+ sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">Link</a>',
+ targetBranch: 'master',
+ statusPath: 'abc',
+ },
+ });
expect(vm.commitsText).toEqual('2 commits behind');
});
@@ -66,24 +78,27 @@ describe('MRWidgetHeader', () => {
describe('template', () => {
describe('common elements', () => {
beforeEach(() => {
- vm = mountComponent(Component, { mr: {
- divergedCommitsCount: 12,
- sourceBranch: 'mr-widget-refactor',
- sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>',
- sourceBranchRemoved: false,
- targetBranchPath: 'foo/bar/commits-path',
- targetBranchTreePath: 'foo/bar/tree/path',
- targetBranch: 'master',
- isOpen: true,
- emailPatchesPath: '/mr/email-patches',
- plainDiffPath: '/mr/plainDiffPath',
- } });
+ vm = mountComponent(Component, {
+ mr: {
+ divergedCommitsCount: 12,
+ sourceBranch: 'mr-widget-refactor',
+ sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>',
+ sourceBranchRemoved: false,
+ targetBranchPath: 'foo/bar/commits-path',
+ targetBranchTreePath: 'foo/bar/tree/path',
+ targetBranch: 'master',
+ isOpen: true,
+ emailPatchesPath: '/mr/email-patches',
+ plainDiffPath: '/mr/plainDiffPath',
+ statusPath: 'abc',
+ },
+ });
});
it('renders source branch link', () => {
- expect(
- vm.$el.querySelector('.js-source-branch').innerHTML,
- ).toEqual('<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>');
+ expect(vm.$el.querySelector('.js-source-branch').innerHTML).toEqual(
+ '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>',
+ );
});
it('renders clipboard button', () => {
@@ -101,18 +116,21 @@ describe('MRWidgetHeader', () => {
});
beforeEach(() => {
- vm = mountComponent(Component, { mr: {
- divergedCommitsCount: 12,
- sourceBranch: 'mr-widget-refactor',
- sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>',
- sourceBranchRemoved: false,
- targetBranchPath: 'foo/bar/commits-path',
- targetBranchTreePath: 'foo/bar/tree/path',
- targetBranch: 'master',
- isOpen: true,
- emailPatchesPath: '/mr/email-patches',
- plainDiffPath: '/mr/plainDiffPath',
- } });
+ vm = mountComponent(Component, {
+ mr: {
+ divergedCommitsCount: 12,
+ sourceBranch: 'mr-widget-refactor',
+ sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>',
+ sourceBranchRemoved: false,
+ targetBranchPath: 'foo/bar/commits-path',
+ targetBranchTreePath: 'foo/bar/tree/path',
+ targetBranch: 'master',
+ isOpen: true,
+ emailPatchesPath: '/mr/email-patches',
+ plainDiffPath: '/mr/plainDiffPath',
+ statusPath: 'abc',
+ },
+ });
});
it('renders checkout branch button with modal trigger', () => {
@@ -123,39 +141,49 @@ describe('MRWidgetHeader', () => {
expect(button.getAttribute('data-toggle')).toEqual('modal');
});
+ it('renders web ide button', () => {
+ const button = vm.$el.querySelector('.js-web-ide');
+
+ expect(button.textContent.trim()).toEqual('Web IDE');
+ expect(button.getAttribute('href')).toEqual('undefined/-/ide/projectabc');
+ });
+
it('renders download dropdown with links', () => {
- expect(
- vm.$el.querySelector('.js-download-email-patches').textContent.trim(),
- ).toEqual('Email patches');
+ expect(vm.$el.querySelector('.js-download-email-patches').textContent.trim()).toEqual(
+ 'Email patches',
+ );
- expect(
- vm.$el.querySelector('.js-download-email-patches').getAttribute('href'),
- ).toEqual('/mr/email-patches');
+ expect(vm.$el.querySelector('.js-download-email-patches').getAttribute('href')).toEqual(
+ '/mr/email-patches',
+ );
- expect(
- vm.$el.querySelector('.js-download-plain-diff').textContent.trim(),
- ).toEqual('Plain diff');
+ expect(vm.$el.querySelector('.js-download-plain-diff').textContent.trim()).toEqual(
+ 'Plain diff',
+ );
- expect(
- vm.$el.querySelector('.js-download-plain-diff').getAttribute('href'),
- ).toEqual('/mr/plainDiffPath');
+ expect(vm.$el.querySelector('.js-download-plain-diff').getAttribute('href')).toEqual(
+ '/mr/plainDiffPath',
+ );
});
});
describe('with a closed merge request', () => {
beforeEach(() => {
- vm = mountComponent(Component, { mr: {
- divergedCommitsCount: 12,
- sourceBranch: 'mr-widget-refactor',
- sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>',
- sourceBranchRemoved: false,
- targetBranchPath: 'foo/bar/commits-path',
- targetBranchTreePath: 'foo/bar/tree/path',
- targetBranch: 'master',
- isOpen: false,
- emailPatchesPath: '/mr/email-patches',
- plainDiffPath: '/mr/plainDiffPath',
- } });
+ vm = mountComponent(Component, {
+ mr: {
+ divergedCommitsCount: 12,
+ sourceBranch: 'mr-widget-refactor',
+ sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>',
+ sourceBranchRemoved: false,
+ targetBranchPath: 'foo/bar/commits-path',
+ targetBranchTreePath: 'foo/bar/tree/path',
+ targetBranch: 'master',
+ isOpen: false,
+ emailPatchesPath: '/mr/email-patches',
+ plainDiffPath: '/mr/plainDiffPath',
+ statusPath: 'abc',
+ },
+ });
});
it('does not render checkout branch button with modal trigger', () => {
@@ -165,30 +193,29 @@ describe('MRWidgetHeader', () => {
});
it('does not render download dropdown with links', () => {
- expect(
- vm.$el.querySelector('.js-download-email-patches'),
- ).toEqual(null);
+ expect(vm.$el.querySelector('.js-download-email-patches')).toEqual(null);
- expect(
- vm.$el.querySelector('.js-download-plain-diff'),
- ).toEqual(null);
+ expect(vm.$el.querySelector('.js-download-plain-diff')).toEqual(null);
});
});
describe('without diverged commits', () => {
beforeEach(() => {
- vm = mountComponent(Component, { mr: {
- divergedCommitsCount: 0,
- sourceBranch: 'mr-widget-refactor',
- sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>',
- sourceBranchRemoved: false,
- targetBranchPath: 'foo/bar/commits-path',
- targetBranchTreePath: 'foo/bar/tree/path',
- targetBranch: 'master',
- isOpen: true,
- emailPatchesPath: '/mr/email-patches',
- plainDiffPath: '/mr/plainDiffPath',
- } });
+ vm = mountComponent(Component, {
+ mr: {
+ divergedCommitsCount: 0,
+ sourceBranch: 'mr-widget-refactor',
+ sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>',
+ sourceBranchRemoved: false,
+ targetBranchPath: 'foo/bar/commits-path',
+ targetBranchTreePath: 'foo/bar/tree/path',
+ targetBranch: 'master',
+ isOpen: true,
+ emailPatchesPath: '/mr/email-patches',
+ plainDiffPath: '/mr/plainDiffPath',
+ statusPath: 'abc',
+ },
+ });
});
it('does not render diverged commits info', () => {
@@ -198,22 +225,27 @@ describe('MRWidgetHeader', () => {
describe('with diverged commits', () => {
beforeEach(() => {
- vm = mountComponent(Component, { mr: {
- divergedCommitsCount: 12,
- sourceBranch: 'mr-widget-refactor',
- sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>',
- sourceBranchRemoved: false,
- targetBranchPath: 'foo/bar/commits-path',
- targetBranchTreePath: 'foo/bar/tree/path',
- targetBranch: 'master',
- isOpen: true,
- emailPatchesPath: '/mr/email-patches',
- plainDiffPath: '/mr/plainDiffPath',
- } });
+ vm = mountComponent(Component, {
+ mr: {
+ divergedCommitsCount: 12,
+ sourceBranch: 'mr-widget-refactor',
+ sourceBranchLink: '<a href="/foo/bar/mr-widget-refactor">mr-widget-refactor</a>',
+ sourceBranchRemoved: false,
+ targetBranchPath: 'foo/bar/commits-path',
+ targetBranchTreePath: 'foo/bar/tree/path',
+ targetBranch: 'master',
+ isOpen: true,
+ emailPatchesPath: '/mr/email-patches',
+ plainDiffPath: '/mr/plainDiffPath',
+ statusPath: 'abc',
+ },
+ });
});
it('renders diverged commits info', () => {
- expect(vm.$el.querySelector('.diverged-commits-count').textContent.trim()).toEqual('(12 commits behind)');
+ expect(vm.$el.querySelector('.diverged-commits-count').textContent.trim()).toEqual(
+ '(12 commits behind)',
+ );
});
});
});
diff --git a/spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_spec.js b/spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_spec.js
index 431cb7f3913..ea8007d2029 100644
--- a/spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_spec.js
+++ b/spec/javascripts/vue_mr_widget/components/mr_widget_pipeline_spec.js
@@ -113,6 +113,46 @@ describe('MRWidgetPipeline', () => {
});
});
+ describe('without commit path', () => {
+ beforeEach(() => {
+ const mockCopy = Object.assign({}, mockData);
+ delete mockCopy.pipeline.commit;
+
+ vm = mountComponent(Component, {
+ pipeline: mockCopy.pipeline,
+ hasCi: true,
+ ciStatus: 'success',
+ });
+ });
+
+ it('should render pipeline ID', () => {
+ expect(
+ vm.$el.querySelector('.pipeline-id').textContent.trim(),
+ ).toEqual(`#${mockData.pipeline.id}`);
+ });
+
+ it('should render pipeline status', () => {
+ expect(
+ vm.$el.querySelector('.media-body').textContent.trim(),
+ ).toContain(mockData.pipeline.details.status.label);
+
+ expect(
+ vm.$el.querySelector('.js-commit-link'),
+ ).toBeNull();
+ });
+
+ it('should render pipeline graph', () => {
+ expect(vm.$el.querySelector('.mr-widget-pipeline-graph')).toBeDefined();
+ expect(vm.$el.querySelectorAll('.stage-container').length).toEqual(mockData.pipeline.details.stages.length);
+ });
+
+ it('should render coverage information', () => {
+ expect(
+ vm.$el.querySelector('.media-body').textContent,
+ ).toContain(`Coverage ${mockData.pipeline.coverage}`);
+ });
+ });
+
describe('without coverage', () => {
it('should not render a coverage', () => {
const mockCopy = Object.assign({}, mockData);
diff --git a/spec/javascripts/vue_mr_widget/mock_data.js b/spec/javascripts/vue_mr_widget/mock_data.js
index 3dd75307484..3fc7663b9c2 100644
--- a/spec/javascripts/vue_mr_widget/mock_data.js
+++ b/spec/javascripts/vue_mr_widget/mock_data.js
@@ -1,213 +1,218 @@
-/* eslint-disable */
-
export default {
- "id": 132,
- "iid": 22,
- "assignee_id": null,
- "author_id": 1,
- "description": "",
- "lock_version": null,
- "milestone_id": null,
- "position": 0,
- "state": "merged",
- "title": "Update README.md",
- "updated_by_id": null,
- "created_at": "2017-04-07T12:27:26.718Z",
- "updated_at": "2017-04-07T15:39:25.852Z",
- "time_estimate": 0,
- "total_time_spent": 0,
- "human_time_estimate": null,
- "human_total_time_spent": null,
- "in_progress_merge_commit_sha": null,
- "merge_commit_sha": "53027d060246c8f47e4a9310fb332aa52f221775",
- "merge_error": null,
- "merge_params": {
- "force_remove_source_branch": null
+ id: 132,
+ iid: 22,
+ assignee_id: null,
+ author_id: 1,
+ description: '',
+ lock_version: null,
+ milestone_id: null,
+ position: 0,
+ state: 'merged',
+ title: 'Update README.md',
+ updated_by_id: null,
+ created_at: '2017-04-07T12:27:26.718Z',
+ updated_at: '2017-04-07T15:39:25.852Z',
+ time_estimate: 0,
+ total_time_spent: 0,
+ human_time_estimate: null,
+ human_total_time_spent: null,
+ in_progress_merge_commit_sha: null,
+ merge_commit_sha: '53027d060246c8f47e4a9310fb332aa52f221775',
+ merge_error: null,
+ merge_params: {
+ force_remove_source_branch: null,
},
- "merge_status": "can_be_merged",
- "merge_user_id": null,
- "merge_when_pipeline_succeeds": false,
- "source_branch": "daaaa",
- "source_branch_link": "daaaa",
- "source_project_id": 19,
- "target_branch": "master",
- "target_project_id": 19,
- "metrics": {
- "merged_by": {
- "name": "Administrator",
- "username": "root",
- "id": 1,
- "state": "active",
- "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
- "web_url": "http://localhost:3000/root"
+ merge_status: 'can_be_merged',
+ merge_user_id: null,
+ merge_when_pipeline_succeeds: false,
+ source_branch: 'daaaa',
+ source_branch_link: 'daaaa',
+ source_project_id: 19,
+ target_branch: 'master',
+ target_project_id: 19,
+ metrics: {
+ merged_by: {
+ name: 'Administrator',
+ username: 'root',
+ id: 1,
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ web_url: 'http://localhost:3000/root',
},
- "merged_at": "2017-04-07T15:39:25.696Z",
- "closed_by": null,
- "closed_at": null
+ merged_at: '2017-04-07T15:39:25.696Z',
+ closed_by: null,
+ closed_at: null,
},
- "author": {
- "name": "Administrator",
- "username": "root",
- "id": 1,
- "state": "active",
- "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
- "web_url": "http://localhost:3000/root"
+ author: {
+ name: 'Administrator',
+ username: 'root',
+ id: 1,
+ state: 'active',
+ avatar_url: 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ web_url: 'http://localhost:3000/root',
},
- "merge_user": null,
- "diff_head_sha": "104096c51715e12e7ae41f9333e9fa35b73f385d",
- "diff_head_commit_short_id": "104096c5",
- "merge_commit_message": "Merge branch 'daaaa' into 'master'\n\nUpdate README.md\n\nSee merge request !22",
- "pipeline": {
- "id": 172,
- "user": {
- "name": "Administrator",
- "username": "root",
- "id": 1,
- "state": "active",
- "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
- "web_url": "http://localhost:3000/root"
+ merge_user: null,
+ diff_head_sha: '104096c51715e12e7ae41f9333e9fa35b73f385d',
+ diff_head_commit_short_id: '104096c5',
+ merge_commit_message:
+ "Merge branch 'daaaa' into 'master'\n\nUpdate README.md\n\nSee merge request !22",
+ pipeline: {
+ id: 172,
+ user: {
+ name: 'Administrator',
+ username: 'root',
+ id: 1,
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ web_url: 'http://localhost:3000/root',
},
- "active": false,
- "coverage": "92.16",
- "path": "/root/acets-app/pipelines/172",
- "details": {
- "status": {
- "icon": "icon_status_success",
- "favicon": "favicon_status_success",
- "text": "passed",
- "label": "passed",
- "group": "success",
- "has_details": true,
- "details_path": "/root/acets-app/pipelines/172"
+ active: false,
+ coverage: '92.16',
+ path: '/root/acets-app/pipelines/172',
+ details: {
+ status: {
+ icon: 'icon_status_success',
+ favicon: 'favicon_status_success',
+ text: 'passed',
+ label: 'passed',
+ group: 'success',
+ has_details: true,
+ details_path: '/root/acets-app/pipelines/172',
},
- "duration": null,
- "finished_at": "2017-04-07T14:00:14.256Z",
- "stages": [
+ duration: null,
+ finished_at: '2017-04-07T14:00:14.256Z',
+ stages: [
{
- "name": "build",
- "title": "build: failed",
- "status": {
- "icon": "icon_status_failed",
- "favicon": "favicon_status_failed",
- "text": "failed",
- "label": "failed",
- "group": "failed",
- "has_details": true,
- "details_path": "/root/acets-app/pipelines/172#build"
+ name: 'build',
+ title: 'build: failed',
+ status: {
+ icon: 'icon_status_failed',
+ favicon: 'favicon_status_failed',
+ text: 'failed',
+ label: 'failed',
+ group: 'failed',
+ has_details: true,
+ details_path: '/root/acets-app/pipelines/172#build',
},
- "path": "/root/acets-app/pipelines/172#build",
- "dropdown_path": "/root/acets-app/pipelines/172/stage.json?stage=build"
+ path: '/root/acets-app/pipelines/172#build',
+ dropdown_path: '/root/acets-app/pipelines/172/stage.json?stage=build',
},
{
- "name": "review",
- "title": "review: skipped",
- "status": {
- "icon": "icon_status_skipped",
- "favicon": "favicon_status_skipped",
- "text": "skipped",
- "label": "skipped",
- "group": "skipped",
- "has_details": true,
- "details_path": "/root/acets-app/pipelines/172#review"
+ name: 'review',
+ title: 'review: skipped',
+ status: {
+ icon: 'icon_status_skipped',
+ favicon: 'favicon_status_skipped',
+ text: 'skipped',
+ label: 'skipped',
+ group: 'skipped',
+ has_details: true,
+ details_path: '/root/acets-app/pipelines/172#review',
},
- "path": "/root/acets-app/pipelines/172#review",
- "dropdown_path": "/root/acets-app/pipelines/172/stage.json?stage=review"
- }
- ],
- "artifacts": [
-
+ path: '/root/acets-app/pipelines/172#review',
+ dropdown_path: '/root/acets-app/pipelines/172/stage.json?stage=review',
+ },
],
- "manual_actions": [
+ artifacts: [],
+ manual_actions: [
{
- "name": "stop_review",
- "path": "/root/acets-app/builds/1427/play",
- "playable": false
- }
- ]
+ name: 'stop_review',
+ path: '/root/acets-app/builds/1427/play',
+ playable: false,
+ },
+ ],
},
- "flags": {
- "latest": false,
- "triggered": false,
- "stuck": false,
- "yaml_errors": false,
- "retryable": true,
- "cancelable": false
+ flags: {
+ latest: false,
+ triggered: false,
+ stuck: false,
+ yaml_errors: false,
+ retryable: true,
+ cancelable: false,
},
- "ref": {
- "name": "daaaa",
- "path": "/root/acets-app/tree/daaaa",
- "tag": false,
- "branch": true
+ ref: {
+ name: 'daaaa',
+ path: '/root/acets-app/tree/daaaa',
+ tag: false,
+ branch: true,
},
- "commit": {
- "id": "104096c51715e12e7ae41f9333e9fa35b73f385d",
- "short_id": "104096c5",
- "title": "Update README.md",
- "created_at": "2017-04-07T15:27:18.000+03:00",
- "parent_ids": [
- "2396536178668d8930c29d904e53bd4d06228b32"
- ],
- "message": "Update README.md",
- "author_name": "Administrator",
- "author_email": "admin@example.com",
- "authored_date": "2017-04-07T15:27:18.000+03:00",
- "committer_name": "Administrator",
- "committer_email": "admin@example.com",
- "committed_date": "2017-04-07T15:27:18.000+03:00",
- "author": {
- "name": "Administrator",
- "username": "root",
- "id": 1,
- "state": "active",
- "avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
- "web_url": "http://localhost:3000/root"
+ commit: {
+ id: '104096c51715e12e7ae41f9333e9fa35b73f385d',
+ short_id: '104096c5',
+ title: 'Update README.md',
+ created_at: '2017-04-07T15:27:18.000+03:00',
+ parent_ids: ['2396536178668d8930c29d904e53bd4d06228b32'],
+ message: 'Update README.md',
+ author_name: 'Administrator',
+ author_email: 'admin@example.com',
+ authored_date: '2017-04-07T15:27:18.000+03:00',
+ committer_name: 'Administrator',
+ committer_email: 'admin@example.com',
+ committed_date: '2017-04-07T15:27:18.000+03:00',
+ author: {
+ name: 'Administrator',
+ username: 'root',
+ id: 1,
+ state: 'active',
+ avatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ web_url: 'http://localhost:3000/root',
},
- "author_gravatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
- "commit_url": "http://localhost:3000/root/acets-app/commit/104096c51715e12e7ae41f9333e9fa35b73f385d",
- "commit_path": "/root/acets-app/commit/104096c51715e12e7ae41f9333e9fa35b73f385d"
+ author_gravatar_url:
+ 'https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon',
+ commit_url:
+ 'http://localhost:3000/root/acets-app/commit/104096c51715e12e7ae41f9333e9fa35b73f385d',
+ commit_path: '/root/acets-app/commit/104096c51715e12e7ae41f9333e9fa35b73f385d',
},
- "retry_path": "/root/acets-app/pipelines/172/retry",
- "created_at": "2017-04-07T12:27:19.520Z",
- "updated_at": "2017-04-07T15:28:44.800Z"
+ retry_path: '/root/acets-app/pipelines/172/retry',
+ created_at: '2017-04-07T12:27:19.520Z',
+ updated_at: '2017-04-07T15:28:44.800Z',
},
- "work_in_progress": false,
- "source_branch_exists": false,
- "mergeable_discussions_state": true,
- "conflicts_can_be_resolved_in_ui": false,
- "branch_missing": true,
- "commits_count": 1,
- "has_conflicts": false,
- "can_be_merged": true,
- "has_ci": true,
- "ci_status": "success",
- "pipeline_status_path": "/root/acets-app/merge_requests/22/pipeline_status",
- "issues_links": {
- "closing": "",
- "mentioned_but_not_closing": ""
+ work_in_progress: false,
+ source_branch_exists: false,
+ mergeable_discussions_state: true,
+ conflicts_can_be_resolved_in_ui: false,
+ branch_missing: true,
+ commits_count: 1,
+ has_conflicts: false,
+ can_be_merged: true,
+ has_ci: true,
+ ci_status: 'success',
+ pipeline_status_path: '/root/acets-app/merge_requests/22/pipeline_status',
+ issues_links: {
+ closing: '',
+ mentioned_but_not_closing: '',
},
- "current_user": {
- "can_resolve_conflicts": true,
- "can_remove_source_branch": false,
- "can_revert_on_current_merge_request": true,
- "can_cherry_pick_on_current_merge_request": true
+ current_user: {
+ can_resolve_conflicts: true,
+ can_remove_source_branch: false,
+ can_revert_on_current_merge_request: true,
+ can_cherry_pick_on_current_merge_request: true,
},
- "target_branch_path": "/root/acets-app/branches/master",
- "source_branch_path": "/root/acets-app/branches/daaaa",
- "conflict_resolution_ui_path": "/root/acets-app/merge_requests/22/conflicts",
- "remove_wip_path": "/root/acets-app/merge_requests/22/remove_wip",
- "cancel_merge_when_pipeline_succeeds_path": "/root/acets-app/merge_requests/22/cancel_merge_when_pipeline_succeeds",
- "create_issue_to_resolve_discussions_path": "/root/acets-app/issues/new?merge_request_to_resolve_discussions_of=22",
- "merge_path": "/root/acets-app/merge_requests/22/merge",
- "cherry_pick_in_fork_path": "/root/acets-app/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.+Try+to+revert+this+commit+again.&continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&continue%5Bto%5D=%2Froot%2Facets-app%2Fmerge_requests%2F22&namespace_key=1",
- "revert_in_fork_path": "/root/acets-app/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.+Try+to+cherry-pick+this+commit+again.&continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&continue%5Bto%5D=%2Froot%2Facets-app%2Fmerge_requests%2F22&namespace_key=1",
- "email_patches_path": "/root/acets-app/merge_requests/22.patch",
- "plain_diff_path": "/root/acets-app/merge_requests/22.diff",
- "status_path": "/root/acets-app/merge_requests/22.json",
- "merge_check_path": "/root/acets-app/merge_requests/22/merge_check",
- "ci_environments_status_url": "/root/acets-app/merge_requests/22/ci_environments_status",
- "project_archived": false,
- "merge_commit_message_with_description": "Merge branch 'daaaa' into 'master'\n\nUpdate README.md\n\nSee merge request !22",
- "diverged_commits_count": 0,
- "only_allow_merge_if_pipeline_succeeds": false,
- "commit_change_content_path": "/root/acets-app/merge_requests/22/commit_change_content"
-}
+ target_branch_path: '/root/acets-app/branches/master',
+ source_branch_path: '/root/acets-app/branches/daaaa',
+ conflict_resolution_ui_path: '/root/acets-app/merge_requests/22/conflicts',
+ remove_wip_path: '/root/acets-app/merge_requests/22/remove_wip',
+ cancel_merge_when_pipeline_succeeds_path:
+ '/root/acets-app/merge_requests/22/cancel_merge_when_pipeline_succeeds',
+ create_issue_to_resolve_discussions_path:
+ '/root/acets-app/issues/new?merge_request_to_resolve_discussions_of=22',
+ merge_path: '/root/acets-app/merge_requests/22/merge',
+ cherry_pick_in_fork_path:
+ '/root/acets-app/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.+Try+to+revert+this+commit+again.&continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&continue%5Bto%5D=%2Froot%2Facets-app%2Fmerge_requests%2F22&namespace_key=1',
+ revert_in_fork_path:
+ '/root/acets-app/forks?continue%5Bnotice%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+has+been+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.+Try+to+cherry-pick+this+commit+again.&continue%5Bnotice_now%5D=You%27re+not+allowed+to+make+changes+to+this+project+directly.+A+fork+of+this+project+is+being+created+that+you+can+make+changes+in%2C+so+you+can+submit+a+merge+request.&continue%5Bto%5D=%2Froot%2Facets-app%2Fmerge_requests%2F22&namespace_key=1',
+ email_patches_path: '/root/acets-app/merge_requests/22.patch',
+ plain_diff_path: '/root/acets-app/merge_requests/22.diff',
+ status_path: '/root/acets-app/merge_requests/22.json',
+ merge_check_path: '/root/acets-app/merge_requests/22/merge_check',
+ ci_environments_status_url: '/root/acets-app/merge_requests/22/ci_environments_status',
+ project_archived: false,
+ merge_commit_message_with_description:
+ "Merge branch 'daaaa' into 'master'\n\nUpdate README.md\n\nSee merge request !22",
+ diverged_commits_count: 0,
+ only_allow_merge_if_pipeline_succeeds: false,
+ commit_change_content_path: '/root/acets-app/merge_requests/22/commit_change_content',
+};
diff --git a/spec/javascripts/vue_shared/components/content_viewer/content_viewer_spec.js b/spec/javascripts/vue_shared/components/content_viewer/content_viewer_spec.js
new file mode 100644
index 00000000000..383f0cd29ea
--- /dev/null
+++ b/spec/javascripts/vue_shared/components/content_viewer/content_viewer_spec.js
@@ -0,0 +1,70 @@
+import Vue from 'vue';
+import MockAdapter from 'axios-mock-adapter';
+import axios from '~/lib/utils/axios_utils';
+import contentViewer from '~/vue_shared/components/content_viewer/content_viewer.vue';
+import mountComponent from 'spec/helpers/vue_mount_component_helper';
+
+describe('ContentViewer', () => {
+ let vm;
+ let mock;
+
+ function createComponent(props) {
+ const ContentViewer = Vue.extend(contentViewer);
+ vm = mountComponent(ContentViewer, props);
+ }
+
+ afterEach(() => {
+ vm.$destroy();
+ if (mock) mock.restore();
+ });
+
+ it('markdown preview renders + loads rendered markdown from server', done => {
+ mock = new MockAdapter(axios);
+ mock.onPost(`${gon.relative_url_root}/testproject/preview_markdown`).reply(200, {
+ body: '<b>testing</b>',
+ });
+
+ createComponent({
+ path: 'test.md',
+ content: '* Test',
+ projectPath: 'testproject',
+ });
+
+ const previewContainer = vm.$el.querySelector('.md-previewer');
+
+ setTimeout(() => {
+ expect(previewContainer.textContent).toContain('testing');
+
+ done();
+ });
+ });
+
+ it('renders image preview', done => {
+ createComponent({
+ path: 'test.jpg',
+ fileSize: 1024,
+ });
+
+ setTimeout(() => {
+ expect(vm.$el.querySelector('.image_file img').getAttribute('src')).toBe('test.jpg');
+
+ done();
+ });
+ });
+
+ it('renders fallback download control', done => {
+ createComponent({
+ path: 'test.abc',
+ fileSize: 1024,
+ });
+
+ setTimeout(() => {
+ expect(vm.$el.querySelector('.file-info').textContent.trim()).toContain(
+ 'test.abc (1.00 KiB)',
+ );
+ expect(vm.$el.querySelector('.btn.btn-default').textContent.trim()).toContain('Download');
+
+ done();
+ });
+ });
+});
diff --git a/spec/javascripts/vue_shared/components/mock_data.js b/spec/javascripts/vue_shared/components/mock_data.js
index 0d781bdca74..15b56c58c33 100644
--- a/spec/javascripts/vue_shared/components/mock_data.js
+++ b/spec/javascripts/vue_shared/components/mock_data.js
@@ -1,5 +1,3 @@
-/* eslint-disable */
-
export const mockMetrics = [
[1493716685, '4.30859375'],
[1493716745, '4.30859375'],