From: Jukka Kurkela Date: Mon, 23 Nov 2020 19:06:16 +0000 (+0200) Subject: Improve test coverage (#8087) X-Git-Tag: v3.0.0-beta.7~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2efffb8ae4b86045100252186cadaf41a1b1d93e;p=thirdparty%2FChart.js.git Improve test coverage (#8087) * Remove usage of currentStyle (IE only) * Nothing is registered in root scope anymore * Add some more tests for animations * Add some more tests to defaults --- diff --git a/src/core/core.typedRegistry.js b/src/core/core.typedRegistry.js index d7435a263..0f80b2df4 100644 --- a/src/core/core.typedRegistry.js +++ b/src/core/core.typedRegistry.js @@ -70,8 +70,6 @@ export default class TypedRegistry { if (scope && id in defaults[scope]) { delete defaults[scope][id]; - } else if (id in defaults) { - delete defaults[id]; } } } diff --git a/src/helpers/helpers.dom.js b/src/helpers/helpers.dom.js index 50c2654d9..9eacb1061 100644 --- a/src/helpers/helpers.dom.js +++ b/src/helpers/helpers.dom.js @@ -34,9 +34,7 @@ function parseMaxStyle(styleValue, node, parentProperty) { const getComputedStyle = (element) => window.getComputedStyle(element, null); export function getStyle(el, property) { - return el.currentStyle ? - el.currentStyle[property] : - getComputedStyle(el).getPropertyValue(property); + return getComputedStyle(el).getPropertyValue(property); } const positions = ['top', 'right', 'bottom', 'left']; diff --git a/test/specs/core.animations.tests.js b/test/specs/core.animations.tests.js index 92cd0e276..8e76788dc 100644 --- a/test/specs/core.animations.tests.js +++ b/test/specs/core.animations.tests.js @@ -44,6 +44,23 @@ describe('Chart.animations', function() { })).toBeUndefined(); }); + it('should assing options directly, if target does not have previous options', function() { + const chart = {}; + const anims = new Chart.Animations(chart, {option: {duration: 200}}); + const target = {}; + expect(anims.update(target, {options: {option: 1}})).toBeUndefined(); + }); + + it('should clone the target options, if those are shared and new options are not', function() { + const chart = {}; + const anims = new Chart.Animations(chart, {option: {duration: 200}}); + const options = {option: 0, $shared: true}; + const target = {options}; + expect(anims.update(target, {options: {option: 1}})).toBeTrue(); + expect(target.options.$shared).not.toBeTrue(); + expect(target.options !== options).toBeTrue(); + }); + it('should assign shared options to target after animations complete', function(done) { const chart = { draw: function() {}, diff --git a/test/specs/core.defaults.tests.js b/test/specs/core.defaults.tests.js new file mode 100644 index 000000000..9c1a71528 --- /dev/null +++ b/test/specs/core.defaults.tests.js @@ -0,0 +1,38 @@ +describe('Chart.defaults', function() { + describe('.set', function() { + it('Should set defaults directly to root when scope is not provided', function() { + expect(Chart.defaults.test).toBeUndefined(); + Chart.defaults.set({test: true}); + expect(Chart.defaults.test).toEqual(true); + delete Chart.defaults.test; + }); + + it('Should create scope when it does not exist', function() { + expect(Chart.defaults.test).toBeUndefined(); + Chart.defaults.set('test', {value: true}); + expect(Chart.defaults.test.value).toEqual(true); + delete Chart.defaults.test; + }); + }); + + describe('.route', function() { + it('Should read the source, but not change it', function() { + expect(Chart.defaults.testscope).toBeUndefined(); + + Chart.defaults.set('testscope', {test: true}); + Chart.defaults.route('testscope', 'test2', 'testscope', 'test'); + + expect(Chart.defaults.testscope.test).toEqual(true); + expect(Chart.defaults.testscope.test2).toEqual(true); + + Chart.defaults.set('testscope', {test2: false}); + expect(Chart.defaults.testscope.test).toEqual(true); + expect(Chart.defaults.testscope.test2).toEqual(false); + + Chart.defaults.set('testscope', {test2: undefined}); + expect(Chart.defaults.testscope.test2).toEqual(true); + + delete Chart.defaults.testscope; + }); + }); +});