From a4da36a1ba05e5e93aa91d26a79733db5d73d376 Mon Sep 17 00:00:00 2001 From: Jan Tagscherer Date: Mon, 12 Nov 2018 17:30:26 +0100 Subject: [PATCH] Add regression test for legend layout issue #5491 --- test/specs/plugin.legend.tests.js | 37 +++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/test/specs/plugin.legend.tests.js b/test/specs/plugin.legend.tests.js index 924276587f0..b6bb1a89426 100644 --- a/test/specs/plugin.legend.tests.js +++ b/test/specs/plugin.legend.tests.js @@ -525,6 +525,43 @@ describe('Legend block tests', function() { }); }); + it('should not draw legend items outside of the chart bounds', function() { + var chart = window.acquireChart( + { + type: 'line', + data: { + datasets: [1, 2, 3].map(function(n) { + return { + label: 'dataset' + n, + data: [] + }; + }), + labels: [] + }, + options: { + legend: { + position: 'right' + } + } + }, + { + canvas: { + width: 512, + height: 105 + } + } + ); + + // Check some basic assertions about the test setup + expect(chart.width).toBe(512); + expect(chart.legend.legendHitBoxes.length).toBe(3); + + // Check whether any legend items reach outside the established bounds + chart.legend.legendHitBoxes.forEach(function(item) { + expect(item.left + item.width).toBeLessThanOrEqual(chart.width); + }); + }); + describe('config update', function() { it ('should update the options', function() { var chart = acquireChart({