]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Add test for scale
authorEvert Timberg <evert.timberg@gmail.com>
Sat, 9 Jan 2016 14:51:04 +0000 (09:51 -0500)
committerEvert Timberg <evert.timberg@gmail.com>
Sat, 9 Jan 2016 14:51:04 +0000 (09:51 -0500)
test/scale.linear.tests.js

index 5cceb21b708a13958f1b0ea1f8bca3d429c4bb8e..7be311cd3e6d3b512604313749a327729ecdd752 100644 (file)
@@ -321,6 +321,47 @@ describe('Linear Scale', function() {
                expect(scale.max).toBe(200);
        });
 
+       it('Should correctly determine the min and max data values when stacked mode is turned on there are multiple types of datasets', function() {
+               var scaleID = 'myScale';
+
+               var mockData = {
+                       datasets: [{
+                               type: 'bar',
+                               yAxisID: scaleID,
+                               data: [10, 5, 0, -5, 78, -100]
+                       }, {
+                               type: 'line',
+                               yAxisID: scaleID,
+                               data: [10, 10, 10, 10, 10, 10],
+                       }, {
+                               type: 'bar',
+                               yAxisID: scaleID,
+                               data: [150, 0, 0, -100, -10, 9]
+                       }]
+               };
+
+               var config = Chart.helpers.clone(Chart.scaleService.getScaleDefaults('linear'));
+               config.stacked = true; // enable scale stacked mode
+
+               var Constructor = Chart.scaleService.getScaleConstructor('linear');
+               var scale = new Constructor({
+                       ctx: {},
+                       options: config,
+                       chart: {
+                               data: mockData
+                       },
+                       id: scaleID
+               });
+
+               // Set arbitrary width and height for now
+               scale.width = 50;
+               scale.height = 400;
+
+               scale.determineDataLimits();
+               expect(scale.min).toBe(-105);
+               expect(scale.max).toBe(160);
+       });
+
        it('Should ensure that the scale has a max and min that are not equal', function() {
                var scaleID = 'myScale';