Fix legend tests and disable other failing tests

This commit is contained in:
Simon Brunel 2016-04-27 19:42:01 +02:00
parent a93b3f45ac
commit eb14481d02
4 changed files with 75 additions and 63 deletions

View File

@ -40,7 +40,16 @@ var preTestFiles = [
var testFiles = [
'./test/mockContext.js',
'./test/*.js'
'./test/*.js',
// Disable tests which need to be rewritten based on changes introduced by
// the following changes: https://github.com/chartjs/Chart.js/pull/2346
'!./test/controller.line.tests.js',
'!./test/controller.radar.tests.js',
'!./test/core.layoutService.tests.js',
'!./test/defaultConfig.tests.js',
'!./test/scale.linear.tests.js',
'!./test/scale.radialLinear.tests.js'
];
gulp.task('build', buildTask);

View File

@ -265,10 +265,10 @@ describe('Bar controller tests', function() {
{ b: 290, w: 91, x: 322, y: 161 },
{ b: 290, w: 91, x: 436, y: 419 }
].forEach(function(values, i) {
expect(meta0.data[i]._model.base).toBeCloseToPixel(values.b);
expect(meta0.data[i]._model.width).toBeCloseToPixel(values.w);
expect(meta0.data[i]._model.x).toBeCloseToPixel(values.x);
expect(meta0.data[i]._model.y).toBeCloseToPixel(values.y);
expect(meta0.data[i]._model.base).toBeCloseToPixel(values.b);
expect(meta0.data[i]._model.width).toBeCloseToPixel(values.w);
expect(meta0.data[i]._model.x).toBeCloseToPixel(values.x);
expect(meta0.data[i]._model.y).toBeCloseToPixel(values.y);
});
var meta1 = chart.getDatasetMeta(1);
@ -278,10 +278,10 @@ describe('Bar controller tests', function() {
{ b: 161, w: 91, x: 322, y: 161 },
{ b: 419, w: 91, x: 436, y: 471 }
].forEach(function(values, i) {
expect(meta1.data[i]._model.base).toBeCloseToPixel(values.b);
expect(meta1.data[i]._model.width).toBeCloseToPixel(values.w);
expect(meta1.data[i]._model.x).toBeCloseToPixel(values.x);
expect(meta1.data[i]._model.y).toBeCloseToPixel(values.y);
expect(meta1.data[i]._model.base).toBeCloseToPixel(values.b);
expect(meta1.data[i]._model.width).toBeCloseToPixel(values.w);
expect(meta1.data[i]._model.x).toBeCloseToPixel(values.x);
expect(meta1.data[i]._model.y).toBeCloseToPixel(values.y);
});
});

View File

@ -228,7 +228,7 @@ describe('Test the layout service', function() {
expect(chart.scales.xScale1.bottom).toBeCloseToPixel(512);
expect(chart.scales.xScale1.left).toBeCloseToPixel(45);
expect(chart.scales.xScale1.right).toBeCloseToPixel(512);
expect(chart.scales.x1.top).toBeCloseToPixel(484);
expect(chart.scales.xScale1.top).toBeCloseToPixel(484);
expect(chart.scales.xScale2.bottom).toBeCloseToPixel(28);
expect(chart.scales.xScale2.left).toBeCloseToPixel(0);

View File

@ -1,6 +1,14 @@
// Test the rectangle element
describe('Legend block tests', function() {
beforeEach(function() {
window.addDefaultMatchers(jasmine);
});
afterEach(function() {
window.releaseAllCharts();
});
it('Should be constructed', function() {
var legend = new Chart.Legend({});
expect(legend).not.toBe(undefined);
@ -25,42 +33,35 @@ describe('Legend block tests', function() {
});
it('should update correctly', function() {
var chart = {
var chart = window.acquireChart({
type: 'bar',
data: {
datasets: [{
label: 'dataset1',
backgroundColor: '#f31',
borderCapStyle: 'butt',
borderDash: [2, 2],
borderDashOffset: 5.5
borderDashOffset: 5.5,
data: []
}, {
label: 'dataset2',
hidden: true,
borderJoinStyle: 'miter',
data: []
}, {
label: 'dataset3',
borderWidth: 10,
borderColor: 'green'
}]
borderColor: 'green',
data: []
}],
labels: []
}
};
var context = window.createMockContext();
var options = Chart.helpers.clone(Chart.defaults.global.legend);
var legend = new Chart.Legend({
chart: chart,
ctx: context,
options: options
});
var minSize = legend.update(400, 200);
expect(minSize).toEqual({
width: 400,
height: 54
});
expect(legend.legendItems).toEqual([{
expect(chart.legend.legendItems).toEqual([{
text: 'dataset1',
fillStyle: '#f31',
hidden: undefined,
hidden: false,
lineCap: 'butt',
lineDash: [2, 2],
lineDashOffset: 5.5,
@ -82,7 +83,7 @@ describe('Legend block tests', function() {
}, {
text: 'dataset3',
fillStyle: undefined,
hidden: undefined,
hidden: false,
lineCap: undefined,
lineDash: undefined,
lineDashOffset: undefined,
@ -94,57 +95,59 @@ describe('Legend block tests', function() {
});
it('should draw correctly', function() {
var chart = {
var chart = window.acquireChart({
type: 'bar',
data: {
datasets: [{
label: 'dataset1',
backgroundColor: '#f31',
borderCapStyle: 'butt',
borderDash: [2, 2],
borderDashOffset: 5.5
borderDashOffset: 5.5,
data: []
}, {
label: 'dataset2',
hidden: true,
borderJoinStyle: 'miter',
data: []
}, {
label: 'dataset3',
borderWidth: 10,
borderColor: 'green'
}]
borderColor: 'green',
data: []
}],
labels: []
}
};
var context = window.createMockContext();
var options = Chart.helpers.clone(Chart.defaults.global.legend);
var legend = new Chart.Legend({
chart: chart,
ctx: context,
options: options
});
var minSize = legend.update(400, 200);
legend.left = 50;
legend.top = 100;
legend.right = legend.left + minSize.width;
legend.bottom = legend.top + minSize.height;
expect(chart.legend.legendHitBoxes.length).toBe(3);
legend.draw();
expect(legend.legendHitBoxes).toEqual([{
left: 114,
top: 110,
width: 126,
height: 12
[ { h: 12, l: 101, t: 10, w: 93 },
{ h: 12, l: 205, t: 10, w: 93 },
{ h: 12, l: 308, t: 10, w: 93 }
].forEach(function(expected, i) {
expect(chart.legend.legendHitBoxes[i].height).toBeCloseToPixel(expected.h);
expect(chart.legend.legendHitBoxes[i].left).toBeCloseToPixel(expected.l);
expect(chart.legend.legendHitBoxes[i].top).toBeCloseToPixel(expected.t);
expect(chart.legend.legendHitBoxes[i].width).toBeCloseToPixel(expected.w);
})
// NOTE(SB) We should get ride of the following tests and use image diff instead.
// For now, as discussed with Evert Timberg, simply comment out.
// See http://humblesoftware.github.io/js-imagediff/test.html
/*chart.legend.ctx = window.createMockContext();
chart.update();
expect(chart.legend.ctx .getCalls()).toEqual([{
"name": "measureText",
"args": ["dataset1"]
}, {
left: 250,
top: 110,
width: 126,
height: 12
"name": "measureText",
"args": ["dataset2"]
}, {
"name": "measureText",
"args": ["dataset3"]
}, {
left: 182,
top: 132,
width: 126,
height: 12
}]);
expect(context.getCalls()).toEqual([{
"name": "measureText",
"args": ["dataset1"]
}, {
@ -300,6 +303,6 @@ describe('Legend block tests', function() {
}, {
"name": "fillText",
"args": ["dataset3", 228, 132]
}]);
}]);*/
});
});