]> git.ipfire.org Git - thirdparty/Chart.js.git/commitdiff
Fix initial dataset stacks (#11882)
authorJacco van den Berg <jaccoberg2281@gmail.com>
Mon, 26 Aug 2024 15:13:12 +0000 (17:13 +0200)
committerGitHub <noreply@github.com>
Mon, 26 Aug 2024 15:13:12 +0000 (17:13 +0200)
* Update cahced _stacked value after updating stacks

* Add test

---------

Co-authored-by: Jacco van den Berg <jacco@jem-id.nl>
src/core/core.datasetController.js
test/fixtures/core.datasetController/stacked-initial-render.js [new file with mode: 0644]
test/fixtures/core.datasetController/stacked-initial-render.png [new file with mode: 0644]
test/specs/core.datasetController.tests.js

index 976a3a5f6f4f450b855ea762d8c94e791917191e..8753cab650db79615a4d4a95f0fbd459de84b673 100644 (file)
@@ -420,6 +420,7 @@ export default class DatasetController {
     // if stack changed, update stack values for the whole dataset
     if (stackChanged || oldStacked !== meta._stacked) {
       updateStacks(this, meta._parsed);
+      meta._stacked = isStacked(meta.vScale, meta);
     }
   }
 
diff --git a/test/fixtures/core.datasetController/stacked-initial-render.js b/test/fixtures/core.datasetController/stacked-initial-render.js
new file mode 100644 (file)
index 0000000..96c7fb9
--- /dev/null
@@ -0,0 +1,49 @@
+module.exports = {
+  config: {
+    type: 'line',
+    data: {
+      labels: [0, 1, 2, 3, 4, 5, 6],
+      datasets: [
+        {
+          // option in dataset
+          data: [9, 13, 15, 25, 22, 15, 21],
+          stack: 'construction_stack',
+          borderWidth: 10,
+          borderColor: 'rgb(54, 162, 235)'
+        },
+        {
+          data: [9, 13, 15, 25, 22, 15, 21],
+          stack: 'construction_stack',
+          borderWidth: 10,
+          borderColor: 'rgb(255, 99, 132)'
+        }
+      ]
+    },
+    options: {
+      scales: {
+        x: {
+          ticks: {
+            display: false
+          }
+        },
+        y: {
+          ticks: {
+            display: false
+          }
+        }
+      },
+      plugins: {
+        legend: false,
+        title: false,
+        tooltip: false,
+        filler: false
+      }
+    }
+  },
+  options: {
+    canvas: {
+      height: 512,
+      width: 512
+    }
+  }
+};
diff --git a/test/fixtures/core.datasetController/stacked-initial-render.png b/test/fixtures/core.datasetController/stacked-initial-render.png
new file mode 100644 (file)
index 0000000..8f55664
Binary files /dev/null and b/test/fixtures/core.datasetController/stacked-initial-render.png differ
index e10c33d118c3e80404bb477e4a8351f34b4f092c..18011efcb95692102968fc1b442c29608b40863d 100644 (file)
@@ -1,4 +1,6 @@
 describe('Chart.DatasetController', function() {
+  describe('auto', jasmine.fixture.specs('core.datasetController'));
+
   it('should listen for dataset data insertions or removals', function() {
     var data = [0, 1, 2, 3, 4, 5];
     var chart = acquireChart({