From bedc3f15757c917f12c44770cc7cf827365884d9 Mon Sep 17 00:00:00 2001 From: Jukka Kurkela Date: Thu, 11 Mar 2021 23:25:16 +0200 Subject: [PATCH] Fix autoSkip (#8619) * Fix autoSkip * Add tests --- src/core/core.scale.js | 4 ++-- .../fixtures/core.scale/autoSkip/no-offset.js | 22 ++++++++++++++++++ .../core.scale/autoSkip/no-offset.png | Bin 0 -> 8892 bytes test/fixtures/core.scale/autoSkip/offset.js | 22 ++++++++++++++++++ test/fixtures/core.scale/autoSkip/offset.png | Bin 0 -> 8201 bytes 5 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/core.scale/autoSkip/no-offset.js create mode 100644 test/fixtures/core.scale/autoSkip/no-offset.png create mode 100644 test/fixtures/core.scale/autoSkip/offset.js create mode 100644 test/fixtures/core.scale/autoSkip/offset.png diff --git a/src/core/core.scale.js b/src/core/core.scale.js index d985f38c3..d7228c306 100644 --- a/src/core/core.scale.js +++ b/src/core/core.scale.js @@ -1162,8 +1162,8 @@ export default class Scale extends Element { */ _autoSkip(ticks) { const me = this; - const tickOpts = me.options.ticks; - const ticksLimit = tickOpts.maxTicksLimit || me._length / me._tickSize(); + const {offset, ticks: tickOpts} = me.options; + const ticksLimit = tickOpts.maxTicksLimit || (me._length / me._tickSize() + (offset ? 0 : 1)); const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : []; const numMajorIndices = majorIndices.length; const first = majorIndices[0]; diff --git a/test/fixtures/core.scale/autoSkip/no-offset.js b/test/fixtures/core.scale/autoSkip/no-offset.js new file mode 100644 index 000000000..a029ee975 --- /dev/null +++ b/test/fixtures/core.scale/autoSkip/no-offset.js @@ -0,0 +1,22 @@ +module.exports = { + description: 'https://github.com/chartjs/Chart.js/issues/8611', + config: { + type: 'line', + data: { + labels: ['Red Red Red', 'Blue Blue Blue', 'Black Black Black', 'Pink Pink Pink'], + datasets: [ + { + label: '# of Votes', + data: [12, 19, 3, 5] + }, + ] + }, + }, + options: { + spriteText: true, + canvas: { + width: 470, + height: 128 + } + } +}; diff --git a/test/fixtures/core.scale/autoSkip/no-offset.png b/test/fixtures/core.scale/autoSkip/no-offset.png new file mode 100644 index 0000000000000000000000000000000000000000..9a24900a7f77cb0e63cb63a7ba1a9250105c41be GIT binary patch literal 8892 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