mirror of
https://github.com/chartjs/Chart.js.git
synced 2025-12-08 20:36:08 +00:00
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
This commit is contained in:
parent
c2beebf12b
commit
2efffb8ae4
@ -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];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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'];
|
||||
|
||||
@ -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() {},
|
||||
|
||||
38
test/specs/core.defaults.tests.js
Normal file
38
test/specs/core.defaults.tests.js
Normal file
@ -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;
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user