mirror of
https://github.com/chartjs/Chart.js.git
synced 2024-10-06 12:19:08 +02:00
03e9194be5
* feat: remove line element from scatter controller default config * feat: move common controllers methods to helpers and add types * feat: mark methods for scatter and line conntrollers as private * fix: fix error when showline is true at root options and add tests * feat: remove else inside scatter controller update * fix: update getStartAndCountOFVisiblePoints helper code
168 lines
3.6 KiB
JavaScript
168 lines
3.6 KiB
JavaScript
describe('Chart.controllers.scatter', function() {
|
|
describe('auto', jasmine.fixture.specs('controller.scatter'));
|
|
|
|
it('should be registered as dataset controller', function() {
|
|
expect(typeof Chart.controllers.scatter).toBe('function');
|
|
});
|
|
|
|
it('should test default tooltip callbacks', async function() {
|
|
var chart = window.acquireChart({
|
|
type: 'scatter',
|
|
data: {
|
|
datasets: [{
|
|
data: [{
|
|
x: 10,
|
|
y: 15
|
|
}],
|
|
label: 'dataset1'
|
|
}],
|
|
},
|
|
options: {}
|
|
});
|
|
var point = chart.getDatasetMeta(0).data[0];
|
|
|
|
await jasmine.triggerMouseEvent(chart, 'mousemove', point);
|
|
// Title should be empty
|
|
expect(chart.tooltip.title.length).toBe(0);
|
|
expect(chart.tooltip.body[0].lines).toEqual(['(10, 15)']);
|
|
});
|
|
|
|
it('should only show a single point in the tooltip on multiple datasets', async function() {
|
|
var chart = window.acquireChart({
|
|
type: 'scatter',
|
|
data: {
|
|
datasets: [{
|
|
data: [{
|
|
x: 10,
|
|
y: 15
|
|
},
|
|
{
|
|
x: 12,
|
|
y: 10
|
|
}],
|
|
label: 'dataset1'
|
|
},
|
|
{
|
|
data: [{
|
|
x: 20,
|
|
y: 10
|
|
},
|
|
{
|
|
x: 4,
|
|
y: 8
|
|
}],
|
|
label: 'dataset2'
|
|
}]
|
|
},
|
|
options: {}
|
|
});
|
|
var point = chart.getDatasetMeta(0).data[1];
|
|
|
|
await jasmine.triggerMouseEvent(chart, 'mousemove', point);
|
|
expect(chart.tooltip.body.length).toEqual(1);
|
|
});
|
|
|
|
it('should not create line element by default', function() {
|
|
var chart = window.acquireChart({
|
|
type: 'scatter',
|
|
data: {
|
|
datasets: [{
|
|
data: [{
|
|
x: 10,
|
|
y: 15
|
|
},
|
|
{
|
|
x: 12,
|
|
y: 10
|
|
}],
|
|
label: 'dataset1'
|
|
},
|
|
{
|
|
data: [{
|
|
x: 20,
|
|
y: 10
|
|
},
|
|
{
|
|
x: 4,
|
|
y: 8
|
|
}],
|
|
label: 'dataset2'
|
|
}]
|
|
},
|
|
});
|
|
|
|
var meta = chart.getDatasetMeta(0);
|
|
expect(meta.dataset instanceof Chart.elements.LineElement).toBe(false);
|
|
});
|
|
|
|
it('should create line element if showline is true at datasets options', function() {
|
|
var chart = window.acquireChart({
|
|
type: 'scatter',
|
|
data: {
|
|
datasets: [{
|
|
showLine: true,
|
|
data: [{
|
|
x: 10,
|
|
y: 15
|
|
},
|
|
{
|
|
x: 12,
|
|
y: 10
|
|
}],
|
|
label: 'dataset1'
|
|
},
|
|
{
|
|
data: [{
|
|
x: 20,
|
|
y: 10
|
|
},
|
|
{
|
|
x: 4,
|
|
y: 8
|
|
}],
|
|
label: 'dataset2'
|
|
}]
|
|
},
|
|
});
|
|
|
|
var meta = chart.getDatasetMeta(0);
|
|
expect(meta.dataset instanceof Chart.elements.LineElement).toBe(true);
|
|
});
|
|
|
|
it('should create line element if showline is true at root options', function() {
|
|
var chart = window.acquireChart({
|
|
type: 'scatter',
|
|
data: {
|
|
datasets: [{
|
|
data: [{
|
|
x: 10,
|
|
y: 15
|
|
},
|
|
{
|
|
x: 12,
|
|
y: 10
|
|
}],
|
|
label: 'dataset1'
|
|
},
|
|
{
|
|
data: [{
|
|
x: 20,
|
|
y: 10
|
|
},
|
|
{
|
|
x: 4,
|
|
y: 8
|
|
}],
|
|
label: 'dataset2'
|
|
}]
|
|
},
|
|
options: {
|
|
showLine: true
|
|
}
|
|
});
|
|
|
|
var meta = chart.getDatasetMeta(0);
|
|
expect(meta.dataset instanceof Chart.elements.LineElement).toBe(true);
|
|
});
|
|
});
|