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'];
})).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() {},
--- /dev/null
+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;
+ });
+ });
+});