mirror of
https://github.com/chartjs/Chart.js.git
synced 2024-10-06 12:19:08 +02:00
Start to clean up the linear scale tests
This commit is contained in:
parent
f1b704a419
commit
2e2bbc9d52
@ -10,16 +10,18 @@ describe('Linear Scale', function() {
|
|||||||
var defaultConfig = Chart.scaleService.getScaleDefaults('linear');
|
var defaultConfig = Chart.scaleService.getScaleDefaults('linear');
|
||||||
expect(defaultConfig).toEqual({
|
expect(defaultConfig).toEqual({
|
||||||
display: true,
|
display: true,
|
||||||
position: "left",
|
|
||||||
gridLines: {
|
gridLines: {
|
||||||
show: true,
|
|
||||||
color: "rgba(0, 0, 0, 0.1)",
|
color: "rgba(0, 0, 0, 0.1)",
|
||||||
lineWidth: 1,
|
|
||||||
drawOnChartArea: true,
|
drawOnChartArea: true,
|
||||||
drawTicks: true, // draw ticks extending towards the label
|
drawTicks: true, // draw ticks extending towards the label
|
||||||
zeroLineWidth: 1,
|
lineWidth: 1,
|
||||||
|
offsetGridLines: false,
|
||||||
|
show: true,
|
||||||
zeroLineColor: "rgba(0,0,0,0.25)",
|
zeroLineColor: "rgba(0,0,0,0.25)",
|
||||||
|
zeroLineWidth: 1,
|
||||||
},
|
},
|
||||||
|
position: "left",
|
||||||
scaleLabel: {
|
scaleLabel: {
|
||||||
fontColor: '#666',
|
fontColor: '#666',
|
||||||
fontFamily: 'Helvetica Neue',
|
fontFamily: 'Helvetica Neue',
|
||||||
@ -28,18 +30,15 @@ describe('Linear Scale', function() {
|
|||||||
labelString: '',
|
labelString: '',
|
||||||
show: false,
|
show: false,
|
||||||
},
|
},
|
||||||
reverse: false,
|
ticks: {
|
||||||
beginAtZero: false,
|
fontColor: "#666",
|
||||||
override: null,
|
fontFamily: "Helvetica Neue",
|
||||||
labels: {
|
|
||||||
show: true,
|
|
||||||
mirror: false,
|
|
||||||
padding: 10,
|
|
||||||
template: "<%=value.toLocaleString()%>",
|
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
fontStyle: "normal",
|
fontStyle: "normal",
|
||||||
fontColor: "#666",
|
maxRotation: 90,
|
||||||
fontFamily: "Helvetica Neue"
|
minRotation: 20,
|
||||||
|
show: true,
|
||||||
|
template: "<%=value%>"
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -72,7 +71,11 @@ describe('Linear Scale', function() {
|
|||||||
expect(scale.min).toBe(undefined); // not yet set
|
expect(scale.min).toBe(undefined); // not yet set
|
||||||
expect(scale.max).toBe(undefined);
|
expect(scale.max).toBe(undefined);
|
||||||
|
|
||||||
scale.calculateRange();
|
// Set arbitrary width and height for now
|
||||||
|
scale.width = 50;
|
||||||
|
scale.height = 400;
|
||||||
|
|
||||||
|
scale.buildTicks();
|
||||||
expect(scale.min).toBe(-100);
|
expect(scale.min).toBe(-100);
|
||||||
expect(scale.max).toBe(150);
|
expect(scale.max).toBe(150);
|
||||||
});
|
});
|
||||||
@ -109,7 +112,11 @@ describe('Linear Scale', function() {
|
|||||||
id: scaleID
|
id: scaleID
|
||||||
});
|
});
|
||||||
|
|
||||||
verticalScale.calculateRange();
|
// Set arbitrary width and height for now
|
||||||
|
verticalScale.width = 50;
|
||||||
|
verticalScale.height = 400;
|
||||||
|
|
||||||
|
verticalScale.buildTicks();
|
||||||
expect(verticalScale.min).toBe(0);
|
expect(verticalScale.min).toBe(0);
|
||||||
expect(verticalScale.max).toBe(100);
|
expect(verticalScale.max).toBe(100);
|
||||||
|
|
||||||
@ -122,9 +129,13 @@ describe('Linear Scale', function() {
|
|||||||
id: scaleID,
|
id: scaleID,
|
||||||
});
|
});
|
||||||
|
|
||||||
horizontalScale.calculateRange();
|
// Set arbitrary width and height for now
|
||||||
expect(horizontalScale.min).toBe(-10);
|
horizontalScale.width = 400;
|
||||||
expect(horizontalScale.max).toBe(99);
|
horizontalScale.height = 50;
|
||||||
|
|
||||||
|
horizontalScale.buildTicks();
|
||||||
|
expect(horizontalScale.min).toBe(-20);
|
||||||
|
expect(horizontalScale.max).toBe(100);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should correctly determine the min and max data values when stacked mode is turned on', function() {
|
it('Should correctly determine the min and max data values when stacked mode is turned on', function() {
|
||||||
@ -154,9 +165,13 @@ describe('Linear Scale', function() {
|
|||||||
id: scaleID
|
id: scaleID
|
||||||
});
|
});
|
||||||
|
|
||||||
scale.calculateRange();
|
// Set arbitrary width and height for now
|
||||||
expect(scale.min).toBe(-105);
|
scale.width = 50;
|
||||||
expect(scale.max).toBe(160);
|
scale.height = 400;
|
||||||
|
|
||||||
|
scale.buildTicks();
|
||||||
|
expect(scale.min).toBe(-150);
|
||||||
|
expect(scale.max).toBe(200);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should ensure that the scale has a max and min that are not equal', function() {
|
it('Should ensure that the scale has a max and min that are not equal', function() {
|
||||||
@ -175,52 +190,15 @@ describe('Linear Scale', function() {
|
|||||||
id: scaleID
|
id: scaleID
|
||||||
});
|
});
|
||||||
|
|
||||||
scale.calculateRange();
|
// Set arbitrary width and height for now
|
||||||
|
scale.width = 50;
|
||||||
|
scale.height = 400;
|
||||||
|
|
||||||
|
scale.buildTicks();
|
||||||
expect(scale.min).toBe(-1);
|
expect(scale.min).toBe(-1);
|
||||||
expect(scale.max).toBe(1);
|
expect(scale.max).toBe(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should forcibly include 0 in the range if the beginAtZero option is used', function() {
|
|
||||||
var scaleID = 'myScale';
|
|
||||||
|
|
||||||
var mockData = {
|
|
||||||
datasets: [{
|
|
||||||
yAxisID: scaleID,
|
|
||||||
data: [20, 30, 40, 50]
|
|
||||||
}]
|
|
||||||
};
|
|
||||||
|
|
||||||
var config = Chart.helpers.clone(Chart.scaleService.getScaleDefaults('linear'));
|
|
||||||
|
|
||||||
|
|
||||||
var Constructor = Chart.scaleService.getScaleConstructor('linear');
|
|
||||||
var scale = new Constructor({
|
|
||||||
ctx: {},
|
|
||||||
options: config,
|
|
||||||
data: mockData,
|
|
||||||
id: scaleID
|
|
||||||
});
|
|
||||||
|
|
||||||
scale.calculateRange();
|
|
||||||
scale.generateTicks(400, 400);
|
|
||||||
expect(scale.ticks).toEqual([50, 45, 40, 35, 30, 25, 20]);
|
|
||||||
|
|
||||||
config.beginAtZero = true;
|
|
||||||
scale.calculateRange();
|
|
||||||
scale.generateTicks(400, 400);
|
|
||||||
expect(scale.ticks).toEqual([50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 0]);
|
|
||||||
|
|
||||||
mockData.datasets[0].data = [-20, -30, -40, -50];
|
|
||||||
scale.calculateRange();
|
|
||||||
scale.generateTicks(400, 400);
|
|
||||||
expect(scale.ticks).toEqual([0, -5, -10, -15, -20, -25, -30, -35, -40, -45, -50]);
|
|
||||||
|
|
||||||
config.beginAtZero = false;
|
|
||||||
scale.calculateRange();
|
|
||||||
scale.generateTicks(400, 400);
|
|
||||||
expect(scale.ticks).toEqual([-20, -25, -30, -35, -40, -45, -50]);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Should generate tick marks', function() {
|
it('Should generate tick marks', function() {
|
||||||
var scaleID = 'myScale';
|
var scaleID = 'myScale';
|
||||||
|
|
||||||
@ -255,78 +233,6 @@ describe('Linear Scale', function() {
|
|||||||
expect(scale.end).toBe(80);
|
expect(scale.end).toBe(80);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('Should generate tick marks in the correct order in reversed mode', function() {
|
|
||||||
var scaleID = 'myScale';
|
|
||||||
|
|
||||||
var mockData = {
|
|
||||||
datasets: [{
|
|
||||||
yAxisID: scaleID,
|
|
||||||
data: [10, 5, 0, 25, 78]
|
|
||||||
}, ]
|
|
||||||
};
|
|
||||||
|
|
||||||
var config = Chart.helpers.clone(Chart.scaleService.getScaleDefaults('linear'));
|
|
||||||
config.reverse = true;
|
|
||||||
var Constructor = Chart.scaleService.getScaleConstructor('linear');
|
|
||||||
var scale = new Constructor({
|
|
||||||
ctx: {},
|
|
||||||
options: config,
|
|
||||||
data: mockData,
|
|
||||||
id: scaleID
|
|
||||||
});
|
|
||||||
|
|
||||||
scale.calculateRange();
|
|
||||||
|
|
||||||
expect(scale.ticks).toBe(undefined); // not set
|
|
||||||
|
|
||||||
// Large enough to be unimportant
|
|
||||||
var maxWidth = 400;
|
|
||||||
var maxHeight = 400;
|
|
||||||
scale.generateTicks(maxWidth, maxHeight);
|
|
||||||
|
|
||||||
// Reverse mode makes this count up
|
|
||||||
expect(scale.ticks).toEqual([0, 10, 20, 30, 40, 50, 60, 70, 80]);
|
|
||||||
expect(scale.start).toBe(80);
|
|
||||||
expect(scale.end).toBe(0);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Should generate tick marks using the user supplied options', function() {
|
|
||||||
var scaleID = 'myScale';
|
|
||||||
|
|
||||||
var mockData = {
|
|
||||||
datasets: [{
|
|
||||||
yAxisID: scaleID,
|
|
||||||
data: [10, 5, 0, 25, 78]
|
|
||||||
}, ]
|
|
||||||
};
|
|
||||||
|
|
||||||
var config = Chart.helpers.clone(Chart.scaleService.getScaleDefaults('linear'));
|
|
||||||
config.override = {
|
|
||||||
steps: 10,
|
|
||||||
start: 0,
|
|
||||||
stepWidth: 10
|
|
||||||
};
|
|
||||||
|
|
||||||
var Constructor = Chart.scaleService.getScaleConstructor('linear');
|
|
||||||
var scale = new Constructor({
|
|
||||||
ctx: {},
|
|
||||||
options: config,
|
|
||||||
data: mockData,
|
|
||||||
id: scaleID
|
|
||||||
});
|
|
||||||
|
|
||||||
scale.calculateRange();
|
|
||||||
|
|
||||||
// Large enough to be unimportant
|
|
||||||
var maxWidth = 400;
|
|
||||||
var maxHeight = 400;
|
|
||||||
scale.generateTicks(maxWidth, maxHeight);
|
|
||||||
|
|
||||||
expect(scale.ticks).toEqual([100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 0]);
|
|
||||||
expect(scale.start).toBe(0);
|
|
||||||
expect(scale.end).toBe(100);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('Should build labels using the default template', function() {
|
it('Should build labels using the default template', function() {
|
||||||
var scaleID = 'myScale';
|
var scaleID = 'myScale';
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user