mirror of
https://github.com/chartjs/Chart.js.git
synced 2024-10-06 20:29:12 +02:00
b6807b2dd9
added helper method to adjust the index pass in chartConfig rather than access within method, make it easier to test added semi-colon at the end of helper method added test for adjustIndex helper method fixed lint issues added integration test for the interaction of trigger an event over the bar . . moved adjustIndex into element helper removed method from helper and adjusted method in core.interaction added test for the element adjustIndex helper added a skipIndexAdjustment method to handle when to skip the adjustment along with test cases fixed lint issues removed the test for the helper method
130 lines
2.8 KiB
JavaScript
130 lines
2.8 KiB
JavaScript
// Test the core element functionality
|
|
describe('Core element tests', function() {
|
|
it ('should transition model properties', function() {
|
|
var element = new Chart.Element({
|
|
_model: {
|
|
numberProp: 0,
|
|
numberProp2: 100,
|
|
_underscoreProp: 0,
|
|
stringProp: 'abc',
|
|
objectProp: {
|
|
myObject: true
|
|
},
|
|
colorProp: 'rgb(0, 0, 0)'
|
|
}
|
|
});
|
|
|
|
// First transition clones model into view
|
|
element.transition(0.25);
|
|
expect(element._view).toEqual(element._model);
|
|
expect(element._start).toEqual(element._model); // also cloned
|
|
|
|
expect(element._view.objectProp).toBe(element._model.objectProp); // not cloned
|
|
expect(element._start.objectProp).toEqual(element._model.objectProp); // not cloned
|
|
|
|
element._model.numberProp = 100;
|
|
element._model.numberProp2 = 250;
|
|
element._model._underscoreProp = 200;
|
|
element._model.stringProp = 'def';
|
|
element._model.newStringProp = 'newString';
|
|
element._model.colorProp = 'rgb(255, 255, 0)';
|
|
|
|
element.transition(0.25);
|
|
expect(element._view).toEqual({
|
|
numberProp: 25,
|
|
numberProp2: 137.5,
|
|
_underscoreProp: 0, // underscore props are not transition to a new value
|
|
stringProp: 'def',
|
|
newStringProp: 'newString',
|
|
objectProp: {
|
|
myObject: true
|
|
},
|
|
colorProp: 'rgb(64, 64, 0)',
|
|
});
|
|
});
|
|
|
|
it ('should adjust the index of the element passed in', function() {
|
|
var chartConfig = {
|
|
options: {
|
|
scales: {
|
|
xAxes: [{
|
|
ticks: {
|
|
min: 'Point 2'
|
|
}
|
|
}]
|
|
}
|
|
},
|
|
data: {
|
|
labels: ['Point 1', 'Point 2', 'Point 3']
|
|
}
|
|
};
|
|
|
|
var element = new Chart.Element({
|
|
_index: 1
|
|
});
|
|
|
|
element.adjustIndex(chartConfig);
|
|
|
|
expect(element._adjustedIndex).toEqual(true);
|
|
expect(element._index).toEqual(0);
|
|
});
|
|
|
|
describe ('skipIndexAdjustment method', function() {
|
|
var element;
|
|
|
|
beforeEach(function() {
|
|
element = new Chart.Element({});
|
|
});
|
|
|
|
it ('should return true when min is undefined', function() {
|
|
var chartConfig = {
|
|
options: {
|
|
scales: {
|
|
xAxes: [{
|
|
ticks: {
|
|
min: undefined
|
|
}
|
|
}]
|
|
}
|
|
}
|
|
};
|
|
expect(element.skipIndexAdjustment(chartConfig)).toEqual(true);
|
|
});
|
|
|
|
it ('should return true when index is already adjusted (_adjustedIndex = true)', function() {
|
|
var chartConfig = {
|
|
options: {
|
|
scales: {
|
|
xAxes: [{
|
|
ticks: {
|
|
min: 'Point 1'
|
|
}
|
|
}]
|
|
}
|
|
}
|
|
};
|
|
element._adjustedIndex = true;
|
|
expect(element.skipIndexAdjustment(chartConfig)).toEqual(true);
|
|
});
|
|
|
|
it ('should return true when more than one xAxes is defined', function() {
|
|
var chartConfig = {
|
|
options: {
|
|
scales: {
|
|
xAxes: [{
|
|
ticks: {
|
|
min: 'Point 1'
|
|
}
|
|
}, {
|
|
ticks: {
|
|
min: 'Point 2'
|
|
}
|
|
}]
|
|
}
|
|
}
|
|
};
|
|
expect(element.skipIndexAdjustment(chartConfig)).toEqual(true);
|
|
});
|
|
});
|
|
});
|