Skip to content

Commit

Permalink
[Infra UI] Tests for waffle map nodes endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
simianhacker committed Oct 18, 2018
1 parent 5aa709f commit 79c1533
Show file tree
Hide file tree
Showing 2 changed files with 107 additions and 0 deletions.
1 change: 1 addition & 0 deletions x-pack/test/api_integration/apis/infraops/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
export default function ({ loadTestFile }) {
describe('InfraOps GraphQL Endpoints', () => {
loadTestFile(require.resolve('./metrics'));
loadTestFile(require.resolve('./waffle'));
});
}
106 changes: 106 additions & 0 deletions x-pack/test/api_integration/apis/infraops/waffle.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/

import expect from 'expect.js';
import { get, first, last } from 'lodash';
import { waffleNodesQuery } from '../../../../plugins/infra/public/containers/waffle/waffle_nodes.gql_query';

export default function ({ getService }) {
const esArchiver = getService('esArchiver');
const client = getService('infraOpsGraphQLClient');

describe('waffle nodes', () => {
before(() => esArchiver.load('infraops'));
after(() => esArchiver.unload('infraops'));

it('should basically work', () => {
return client.query({
query: waffleNodesQuery,
variables: {
sourceId: 'default',
timerange: {
to: 1539806283952,
from: 1539805341208,
interval: '1m'
},
metric: { type: 'cpu' },
path: [{ type: 'hosts' }]
}
}).then(resp => {
const nodes = get(resp, 'data.source.map.nodes');
expect(nodes.length).to.equal(6);
const firstNode = first(nodes);
expect(firstNode).to.have.property('path');
expect(firstNode.path.length).to.equal(1);
expect(first(firstNode.path)).to.have.property('value', 'demo-stack-apache-01');
expect(firstNode).to.have.property('metric');
expect(firstNode.metric).to.eql({
name: 'cpu',
value: 0.005833333333333334,
__typename: 'InfraNodeMetric'
});
});
});

it('should basically work with 1 grouping', () => {
return client.query({
query: waffleNodesQuery,
variables: {
sourceId: 'default',
timerange: {
to: 1539806283952,
from: 1539805341208,
interval: '1m'
},
metric: { type: 'cpu' },
path: [
{ type: 'terms', field: 'meta.cloud.availability_zone' },
{ type: 'hosts' }
]
}
}).then(resp => {
const nodes = get(resp, 'data.source.map.nodes');
expect(nodes.length).to.equal(6);
const firstNode = first(nodes);
expect(firstNode).to.have.property('path');
expect(firstNode.path.length).to.equal(2);
expect(first(firstNode.path)).to.have.property('value', 'projects/189716325846/zones/us-central1-f');
expect(last(firstNode.path)).to.have.property('value', 'demo-stack-apache-01');
});
});

it('should basically work with 2 grouping', () => {
return client.query({
query: waffleNodesQuery,
variables: {
sourceId: 'default',
timerange: {
to: 1539806283952,
from: 1539805341208,
interval: '1m'
},
metric: { type: 'cpu' },
path: [
{ type: 'terms', field: 'meta.cloud.provider' },
{ type: 'terms', field: 'meta.cloud.availability_zone' },
{ type: 'hosts' }
]
}
}).then(resp => {
const nodes = get(resp, 'data.source.map.nodes');
expect(nodes.length).to.equal(6);
const firstNode = first(nodes);
expect(firstNode).to.have.property('path');
expect(firstNode.path.length).to.equal(3);
expect(first(firstNode.path)).to.have.property('value', 'gce');
expect(last(firstNode.path)).to.have.property('value', 'demo-stack-apache-01');
});
});

});
}


0 comments on commit 79c1533

Please sign in to comment.