options.scales = mergeScaleConfig(config, options);
}
-function initConfig(config) {
- config = config || {};
-
- const data = config.data = config.data || {datasets: [], labels: []};
+function initData(data) {
+ data = data || {};
data.datasets = data.datasets || [];
data.labels = data.labels || [];
+ return data;
+}
+
+function initConfig(config) {
+ config = config || {};
+ config.data = initData(config.data);
initOptions(config);
}
set data(data) {
- this._config.data = data;
+ this._config.data = initData(data);
}
get options() {
expect(createChart).toThrow(new Error('"area" is not a registered controller.'));
});
+ it('should initialize the data object', function() {
+ const chart = acquireChart({type: 'bar'});
+ expect(chart.data).toEqual(jasmine.objectContaining({labels: [], datasets: []}));
+ chart.data = {};
+ expect(chart.data).toEqual(jasmine.objectContaining({labels: [], datasets: []}));
+ chart.data = null;
+ expect(chart.data).toEqual(jasmine.objectContaining({labels: [], datasets: []}));
+ chart.data = undefined;
+ expect(chart.data).toEqual(jasmine.objectContaining({labels: [], datasets: []}));
+ });
+
describe('should disable hover', function() {
it('when options.hover=false', function() {
var chart = acquireChart({