}
const padding = toPadding(chart.options.layout.padding);
- const availableWidth = width - padding.width;
- const availableHeight = height - padding.height;
+ const availableWidth = Math.max(width - padding.width, 0);
+ const availableHeight = Math.max(height - padding.height, 0);
const boxes = buildLayoutBoxes(chart.boxes);
const verticalBoxes = boxes.vertical;
const horizontalBoxes = boxes.horizontal;
expect(scale.getValueForPixel(end)).toBeCloseTo(min, 4);
expect(scale.getValueForPixel(start)).toBeCloseTo(max, 4);
});
+
+ it('should not throw errors when chart size is negative', function() {
+ function createChart() {
+ return window.acquireChart({
+ type: 'bar',
+ data: {
+ labels: [0, 1, 2, 3, 4, 5, 6, 7, '7+'],
+ datasets: [{
+ data: [29.05, 4, 15.69, 11.69, 2.84, 4, 0, 3.84, 4],
+ }],
+ },
+ options: {
+ plugins: false,
+ layout: {
+ padding: {top: 30, left: 1, right: 1, bottom: 1}
+ }
+ }
+ }, {
+ canvas: {
+ height: 0,
+ width: 0
+ }
+ });
+ }
+
+ expect(createChart).not.toThrow();
+ });
});