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:
Jukka Kurkela 2020-11-23 21:06:16 +02:00 committed by GitHub
parent c2beebf12b
commit 2efffb8ae4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 56 additions and 5 deletions

View File

@ -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];
}
}
}

View File

@ -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'];

View File

@ -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() {},

View 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;
});
});
});