2018-01-16 10:29:49 +01:00
|
|
|
describe('Chart.controllers.scatter', function() {
|
2021-02-10 14:21:39 +01:00
|
|
|
describe('auto', jasmine.fixture.specs('controller.scatter'));
|
2020-07-13 19:20:05 +02:00
|
|
|
|
2021-02-10 14:21:39 +01:00
|
|
|
it('should be registered as dataset controller', function() {
|
|
|
|
expect(typeof Chart.controllers.scatter).toBe('function');
|
|
|
|
});
|
2018-11-29 21:06:34 +01:00
|
|
|
|
2021-02-10 15:17:08 +01:00
|
|
|
it('should only show a single point in the tooltip on multiple datasets', async function() {
|
2021-02-10 14:21:39 +01:00
|
|
|
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];
|
2021-01-30 22:22:01 +01:00
|
|
|
|
2021-02-10 15:17:08 +01:00
|
|
|
await jasmine.triggerMouseEvent(chart, 'mousemove', point);
|
|
|
|
expect(chart.tooltip.body.length).toEqual(1);
|
2021-02-10 14:21:39 +01:00
|
|
|
});
|
2022-08-01 21:39:09 +02:00
|
|
|
|
|
|
|
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);
|
|
|
|
});
|
2022-08-18 13:34:35 +02:00
|
|
|
|
|
|
|
it('should not override tooltip title and label callbacks', async() => {
|
|
|
|
const chart = window.acquireChart({
|
|
|
|
type: 'scatter',
|
|
|
|
data: {
|
|
|
|
labels: ['Label 1', 'Label 2'],
|
|
|
|
datasets: [{
|
|
|
|
data: [{
|
|
|
|
x: 10,
|
|
|
|
y: 15
|
|
|
|
},
|
|
|
|
{
|
|
|
|
x: 12,
|
|
|
|
y: 10
|
|
|
|
}],
|
|
|
|
label: 'Dataset 1'
|
|
|
|
}, {
|
|
|
|
data: [{
|
|
|
|
x: 20,
|
|
|
|
y: 10
|
|
|
|
},
|
|
|
|
{
|
|
|
|
x: 4,
|
|
|
|
y: 8
|
|
|
|
}],
|
|
|
|
label: 'Dataset 2'
|
|
|
|
}]
|
|
|
|
},
|
|
|
|
options: {
|
|
|
|
responsive: true,
|
|
|
|
maintainAspectRatio: true,
|
|
|
|
}
|
|
|
|
});
|
|
|
|
const {tooltip} = chart;
|
|
|
|
const point = chart.getDatasetMeta(0).data[0];
|
|
|
|
|
|
|
|
await jasmine.triggerMouseEvent(chart, 'mousemove', point);
|
|
|
|
|
|
|
|
expect(tooltip.title).toEqual(['Label 1']);
|
|
|
|
expect(tooltip.body).toEqual([{
|
|
|
|
before: [],
|
|
|
|
lines: ['Dataset 1: (10, 15)'],
|
|
|
|
after: []
|
|
|
|
}]);
|
|
|
|
|
|
|
|
chart.options.plugins.tooltip = {mode: 'dataset'};
|
|
|
|
chart.update();
|
|
|
|
await jasmine.triggerMouseEvent(chart, 'mousemove', point);
|
|
|
|
|
|
|
|
expect(tooltip.title).toEqual(['Dataset 1']);
|
|
|
|
expect(tooltip.body).toEqual([{
|
|
|
|
before: [],
|
|
|
|
lines: ['Label 1: (10, 15)'],
|
|
|
|
after: []
|
|
|
|
}, {
|
|
|
|
before: [],
|
|
|
|
lines: ['Label 2: (12, 10)'],
|
|
|
|
after: []
|
|
|
|
}]);
|
|
|
|
});
|
2018-01-16 10:29:49 +01:00
|
|
|
});
|