mirror of
https://github.com/chartjs/Chart.js.git
synced 2025-12-08 20:36:08 +00:00
Unit tests for Chart constructor and deprecations
This commit is contained in:
parent
28ea6c4967
commit
ba6e041713
@ -373,6 +373,7 @@ module.exports = function(Chart) {
|
||||
* @method IPlugin#afterScaleUpdate
|
||||
* @deprecated since version 2.5.0
|
||||
* @todo remove at version 3
|
||||
* @private
|
||||
*/
|
||||
plugins.notify(me, 'afterScaleUpdate');
|
||||
plugins.notify(me, 'afterLayout');
|
||||
|
||||
@ -158,6 +158,8 @@ module.exports = function(Chart) {
|
||||
/**
|
||||
* @function Chart.Interaction.modes.label
|
||||
* @deprecated since version 2.4.0
|
||||
* @todo remove at version 3
|
||||
* @private
|
||||
*/
|
||||
label: indexMode,
|
||||
|
||||
@ -196,6 +198,8 @@ module.exports = function(Chart) {
|
||||
/**
|
||||
* @function Chart.Interaction.modes.x-axis
|
||||
* @deprecated since version 2.4.0. Use index mode and intersect == true
|
||||
* @todo remove at version 3
|
||||
* @private
|
||||
*/
|
||||
'x-axis': function(chart, e) {
|
||||
return indexMode(chart, e, true);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
describe('Chart.Controller', function() {
|
||||
describe('Chart', function() {
|
||||
|
||||
function waitForResize(chart, callback) {
|
||||
var resizer = chart.canvas.parentNode._chartjs.resizer;
|
||||
@ -13,6 +13,17 @@ describe('Chart.Controller', function() {
|
||||
Chart.helpers.addEvent(content, state !== 'complete'? 'load' : 'resize', handler);
|
||||
}
|
||||
|
||||
// https://github.com/chartjs/Chart.js/issues/2481
|
||||
// See global.deprecations.tests.js for backward compatibility
|
||||
it('should be defined and prototype of chart instances', function() {
|
||||
var chart = acquireChart({});
|
||||
expect(Chart).toBeDefined();
|
||||
expect(Chart instanceof Object).toBeTruthy();
|
||||
expect(chart.constructor).toBe(Chart);
|
||||
expect(chart instanceof Chart).toBeTruthy();
|
||||
expect(Chart.prototype.isPrototypeOf(chart)).toBeTruthy();
|
||||
});
|
||||
|
||||
describe('config initialization', function() {
|
||||
it('should create missing config.data properties', function() {
|
||||
var chart = acquireChart({});
|
||||
|
||||
94
test/global.deprecations.tests.js
Normal file
94
test/global.deprecations.tests.js
Normal file
@ -0,0 +1,94 @@
|
||||
describe('Deprecations', function() {
|
||||
describe('Version 2.6.0', function() {
|
||||
// https://github.com/chartjs/Chart.js/issues/2481
|
||||
describe('Chart.Controller', function() {
|
||||
it('should be defined and an alias of Chart', function() {
|
||||
expect(Chart.Controller).toBeDefined();
|
||||
expect(Chart.Controller).toBe(Chart);
|
||||
});
|
||||
it('should be prototype of chart instances', function() {
|
||||
var chart = acquireChart({});
|
||||
expect(chart.constructor).toBe(Chart.Controller);
|
||||
expect(chart instanceof Chart.Controller).toBeTruthy();
|
||||
expect(Chart.Controller.prototype.isPrototypeOf(chart)).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
describe('chart.chart', function() {
|
||||
it('should be defined and an alias of chart', function() {
|
||||
var chart = acquireChart({});
|
||||
var proxy = chart.chart;
|
||||
expect(proxy).toBeDefined();
|
||||
expect(proxy).toBe(chart);
|
||||
});
|
||||
it('should defined previously existing properties', function() {
|
||||
var chart = acquireChart({}, {
|
||||
canvas: {
|
||||
style: 'width: 140px; height: 320px'
|
||||
}
|
||||
});
|
||||
|
||||
var proxy = chart.chart;
|
||||
expect(proxy.config instanceof Object).toBeTruthy();
|
||||
expect(proxy.controller instanceof Chart.Controller).toBeTruthy();
|
||||
expect(proxy.canvas instanceof HTMLCanvasElement).toBeTruthy();
|
||||
expect(proxy.ctx instanceof CanvasRenderingContext2D).toBeTruthy();
|
||||
expect(proxy.currentDevicePixelRatio).toBe(window.devicePixelRatio || 1);
|
||||
expect(proxy.aspectRatio).toBe(140/320);
|
||||
expect(proxy.height).toBe(320);
|
||||
expect(proxy.width).toBe(140);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('Version 2.5.0', function() {
|
||||
describe('Chart.PluginBase', function() {
|
||||
it('should exist and extendable', function() {
|
||||
expect(Chart.PluginBase).toBeDefined();
|
||||
expect(Chart.PluginBase.extend).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('IPlugin.afterScaleUpdate', function() {
|
||||
it('should be called after the chart as been layed out', function() {
|
||||
var sequence = [];
|
||||
var plugin = {};
|
||||
var hooks = [
|
||||
'beforeLayout',
|
||||
'afterScaleUpdate',
|
||||
'afterLayout'
|
||||
];
|
||||
|
||||
var override = Chart.layoutService.update;
|
||||
Chart.layoutService.update = function() {
|
||||
sequence.push('layoutUpdate');
|
||||
override.apply(this, arguments);
|
||||
};
|
||||
|
||||
hooks.forEach(function(name) {
|
||||
plugin[name] = function() {
|
||||
sequence.push(name);
|
||||
};
|
||||
});
|
||||
|
||||
window.acquireChart({plugins: [plugin]});
|
||||
expect(sequence).toEqual([].concat(
|
||||
'beforeLayout',
|
||||
'layoutUpdate',
|
||||
'afterScaleUpdate',
|
||||
'afterLayout'
|
||||
));
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('Version 2.1.5', function() {
|
||||
// https://github.com/chartjs/Chart.js/pull/2752
|
||||
describe('Chart.pluginService', function() {
|
||||
it('should be defined and an alias of Chart.plugins', function() {
|
||||
expect(Chart.pluginService).toBeDefined();
|
||||
expect(Chart.pluginService).toBe(Chart.plugins);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user