mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
define VisLib Line Chart suite, wrap all other suites
makes it a little easier to grep and isolate line chart tests
This commit is contained in:
parent
012e114330
commit
7f33034f83
1 changed files with 135 additions and 133 deletions
|
@ -22,168 +22,170 @@ define(function (require) {
|
|||
|
||||
angular.module('LineChartFactory', ['kibana']);
|
||||
|
||||
dataTypes.forEach(function (type, i) {
|
||||
var name = type[0];
|
||||
var data = type[1];
|
||||
describe('VisLib Line Chart', function () {
|
||||
dataTypes.forEach(function (type, i) {
|
||||
var name = type[0];
|
||||
var data = type[1];
|
||||
|
||||
describe('VisLib Line Chart Test Suite for ' + name + ' Data', function () {
|
||||
var vis;
|
||||
|
||||
beforeEach(function () {
|
||||
module('LineChartFactory');
|
||||
});
|
||||
|
||||
beforeEach(function () {
|
||||
var visLibParams = {
|
||||
type: 'line',
|
||||
addLegend: true,
|
||||
addTooltip: true,
|
||||
drawLinesBetweenPoints: true
|
||||
};
|
||||
|
||||
inject(function (Private) {
|
||||
vis = Private(require('vislib_fixtures/_vis_fixture'))(visLibParams);
|
||||
require('css!components/vislib/styles/main');
|
||||
|
||||
vis.on('brush', _.noop);
|
||||
|
||||
vis.render(data);
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
$(vis.el).remove();
|
||||
vis = null;
|
||||
});
|
||||
|
||||
describe('addCircleEvents method', function () {
|
||||
var circle;
|
||||
var brush;
|
||||
var d3selectedCircle;
|
||||
var onBrush;
|
||||
var onClick;
|
||||
var onMouseOver;
|
||||
describe(name + ' Data', function () {
|
||||
var vis;
|
||||
|
||||
beforeEach(function () {
|
||||
inject(function (d3) {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
circle = $(chart.chartEl).find('.circle')[0];
|
||||
brush = $(chart.chartEl).find('.brush');
|
||||
d3selectedCircle = d3.select(circle)[0][0];
|
||||
module('LineChartFactory');
|
||||
});
|
||||
|
||||
// d3 instance of click and hover
|
||||
onBrush = (!!brush);
|
||||
onClick = (!!d3selectedCircle.__onclick);
|
||||
onMouseOver = (!!d3selectedCircle.__onmouseover);
|
||||
beforeEach(function () {
|
||||
var visLibParams = {
|
||||
type: 'line',
|
||||
addLegend: true,
|
||||
addTooltip: true,
|
||||
drawLinesBetweenPoints: true
|
||||
};
|
||||
|
||||
inject(function (Private) {
|
||||
vis = Private(require('vislib_fixtures/_vis_fixture'))(visLibParams);
|
||||
require('css!components/vislib/styles/main');
|
||||
|
||||
vis.on('brush', _.noop);
|
||||
|
||||
vis.render(data);
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
$(vis.el).remove();
|
||||
vis = null;
|
||||
});
|
||||
|
||||
describe('addCircleEvents method', function () {
|
||||
var circle;
|
||||
var brush;
|
||||
var d3selectedCircle;
|
||||
var onBrush;
|
||||
var onClick;
|
||||
var onMouseOver;
|
||||
|
||||
beforeEach(function () {
|
||||
inject(function (d3) {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
circle = $(chart.chartEl).find('.circle')[0];
|
||||
brush = $(chart.chartEl).find('.brush');
|
||||
d3selectedCircle = d3.select(circle)[0][0];
|
||||
|
||||
// d3 instance of click and hover
|
||||
onBrush = (!!brush);
|
||||
onClick = (!!d3selectedCircle.__onclick);
|
||||
onMouseOver = (!!d3selectedCircle.__onmouseover);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// D3 brushing requires that a g element is appended that
|
||||
// listens for mousedown events. This g element includes
|
||||
// listeners, however, I was not able to test for the listener
|
||||
// function being present. I will need to update this test
|
||||
// in the future.
|
||||
it('should attach a brush g element', function () {
|
||||
vis.handler.charts.forEach(function () {
|
||||
expect(onBrush).to.be(true);
|
||||
});
|
||||
});
|
||||
|
||||
it('should attach a click event', function () {
|
||||
vis.handler.charts.forEach(function () {
|
||||
expect(onClick).to.be(true);
|
||||
});
|
||||
});
|
||||
|
||||
it('should attach a hover event', function () {
|
||||
vis.handler.charts.forEach(function () {
|
||||
expect(onMouseOver).to.be(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// D3 brushing requires that a g element is appended that
|
||||
// listens for mousedown events. This g element includes
|
||||
// listeners, however, I was not able to test for the listener
|
||||
// function being present. I will need to update this test
|
||||
// in the future.
|
||||
it('should attach a brush g element', function () {
|
||||
vis.handler.charts.forEach(function () {
|
||||
expect(onBrush).to.be(true);
|
||||
describe('addCircles method', function () {
|
||||
it('should append circles', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
expect($(chart.chartEl).find('circle').length).to.be.greaterThan(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should attach a click event', function () {
|
||||
vis.handler.charts.forEach(function () {
|
||||
expect(onClick).to.be(true);
|
||||
describe('addLines method', function () {
|
||||
it('should append a paths', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
expect($(chart.chartEl).find('path').length).to.be.greaterThan(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should attach a hover event', function () {
|
||||
vis.handler.charts.forEach(function () {
|
||||
expect(onMouseOver).to.be(true);
|
||||
// Cannot seem to get these tests to work on the box
|
||||
// They however pass in the browsers
|
||||
//describe('addClipPath method', function () {
|
||||
// it('should append a clipPath', function () {
|
||||
// vis.handler.charts.forEach(function (chart) {
|
||||
// expect($(chart.chartEl).find('clipPath').length).to.be(1);
|
||||
// });
|
||||
// });
|
||||
//});
|
||||
|
||||
describe('draw method', function () {
|
||||
it('should return a function', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
expect(chart.draw()).to.be.a(Function);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('addCircles method', function () {
|
||||
it('should append circles', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
expect($(chart.chartEl).find('circle').length).to.be.greaterThan(0);
|
||||
it('should return a yMin and yMax', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
var yAxis = chart.handler.yAxis;
|
||||
|
||||
expect(yAxis.domain[0]).to.not.be(undefined);
|
||||
expect(yAxis.domain[1]).to.not.be(undefined);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('addLines method', function () {
|
||||
it('should append a paths', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
expect($(chart.chartEl).find('path').length).to.be.greaterThan(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
it('should render a zero axis line', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
var yAxis = chart.handler.yAxis;
|
||||
|
||||
// Cannot seem to get these tests to work on the box
|
||||
// They however pass in the browsers
|
||||
//describe('addClipPath method', function () {
|
||||
// it('should append a clipPath', function () {
|
||||
// vis.handler.charts.forEach(function (chart) {
|
||||
// expect($(chart.chartEl).find('clipPath').length).to.be(1);
|
||||
// });
|
||||
// });
|
||||
//});
|
||||
|
||||
describe('draw method', function () {
|
||||
it('should return a function', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
expect(chart.draw()).to.be.a(Function);
|
||||
if (yAxis.yMin < 0 && yAxis.yMax > 0) {
|
||||
expect($(chart.chartEl).find('line.zero-line').length).to.be(1);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should return a yMin and yMax', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
var yAxis = chart.handler.yAxis;
|
||||
describe('containerTooSmall error', function () {
|
||||
beforeEach(function () {
|
||||
$(vis.el).height(0);
|
||||
$(vis.el).width(0);
|
||||
});
|
||||
|
||||
expect(yAxis.domain[0]).to.not.be(undefined);
|
||||
expect(yAxis.domain[1]).to.not.be(undefined);
|
||||
it('should throw an error', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
expect(function () {
|
||||
chart.render();
|
||||
}).to.throwError();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should render a zero axis line', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
var yAxis = chart.handler.yAxis;
|
||||
|
||||
if (yAxis.yMin < 0 && yAxis.yMax > 0) {
|
||||
expect($(chart.chartEl).find('line.zero-line').length).to.be(1);
|
||||
}
|
||||
describe('defaultYExtents is true', function () {
|
||||
beforeEach(function () {
|
||||
vis._attr.defaultYExtents = true;
|
||||
vis.render(data);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('containerTooSmall error', function () {
|
||||
beforeEach(function () {
|
||||
$(vis.el).height(0);
|
||||
$(vis.el).width(0);
|
||||
});
|
||||
it('should return yAxis extents equal to data extents', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
var yAxis = chart.handler.yAxis;
|
||||
var yVals = [vis.handler.data.getYMin(), vis.handler.data.getYMax()];
|
||||
|
||||
it('should throw an error', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
expect(function () {
|
||||
chart.render();
|
||||
}).to.throwError();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('defaultYExtents is true', function () {
|
||||
beforeEach(function () {
|
||||
vis._attr.defaultYExtents = true;
|
||||
vis.render(data);
|
||||
});
|
||||
|
||||
it('should return yAxis extents equal to data extents', function () {
|
||||
vis.handler.charts.forEach(function (chart) {
|
||||
var yAxis = chart.handler.yAxis;
|
||||
var yVals = [vis.handler.data.getYMin(), vis.handler.data.getYMax()];
|
||||
|
||||
expect(yAxis.domain[0]).to.equal(yVals[0]);
|
||||
expect(yAxis.domain[1]).to.equal(yVals[1]);
|
||||
expect(yAxis.domain[0]).to.equal(yVals[0]);
|
||||
expect(yAxis.domain[1]).to.equal(yVals[1]);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue