2020-01-18 01:13:38 +01:00
|
|
|
import fixture from './fixture';
|
|
|
|
import Context from './context';
|
|
|
|
import matchers from './matchers';
|
|
|
|
import utils from './utils';
|
2017-03-04 16:47:53 +01:00
|
|
|
|
|
|
|
(function() {
|
|
|
|
|
|
|
|
// Keep track of all acquired charts to automatically release them after each specs
|
|
|
|
var charts = {};
|
|
|
|
|
|
|
|
function acquireChart() {
|
|
|
|
var chart = utils.acquireChart.apply(utils, arguments);
|
|
|
|
charts[chart.id] = chart;
|
|
|
|
return chart;
|
|
|
|
}
|
|
|
|
|
|
|
|
function releaseChart(chart) {
|
|
|
|
utils.releaseChart.apply(utils, arguments);
|
|
|
|
delete charts[chart.id];
|
|
|
|
}
|
|
|
|
|
|
|
|
function createMockContext() {
|
|
|
|
return new Context();
|
|
|
|
}
|
|
|
|
|
2017-08-05 16:48:12 +02:00
|
|
|
// force ratio=1 for tests on high-res/retina devices
|
|
|
|
// fixes https://github.com/chartjs/Chart.js/issues/4515
|
|
|
|
window.devicePixelRatio = 1;
|
|
|
|
|
2017-03-04 16:47:53 +01:00
|
|
|
window.acquireChart = acquireChart;
|
2020-01-14 13:34:08 +01:00
|
|
|
window.afterEvent = utils.afterEvent;
|
2017-03-04 16:47:53 +01:00
|
|
|
window.releaseChart = releaseChart;
|
2017-07-26 13:33:45 +02:00
|
|
|
window.waitForResize = utils.waitForResize;
|
2017-03-04 16:47:53 +01:00
|
|
|
window.createMockContext = createMockContext;
|
|
|
|
|
2019-03-11 09:06:50 +01:00
|
|
|
// some style initialization to limit differences between browsers across different platforms.
|
2017-03-04 16:47:53 +01:00
|
|
|
utils.injectCSS(
|
|
|
|
'.chartjs-wrapper, .chartjs-wrapper canvas {' +
|
|
|
|
'border: 0;' +
|
|
|
|
'margin: 0;' +
|
|
|
|
'padding: 0;' +
|
|
|
|
'}' +
|
|
|
|
'.chartjs-wrapper {' +
|
|
|
|
'position: absolute' +
|
|
|
|
'}');
|
|
|
|
|
2018-10-20 11:38:48 +02:00
|
|
|
jasmine.fixture = fixture;
|
2017-08-24 09:34:38 +02:00
|
|
|
jasmine.triggerMouseEvent = utils.triggerMouseEvent;
|
2017-03-05 17:49:12 +01:00
|
|
|
|
2017-03-04 16:47:53 +01:00
|
|
|
beforeEach(function() {
|
|
|
|
jasmine.addMatchers(matchers);
|
|
|
|
});
|
|
|
|
|
|
|
|
afterEach(function() {
|
|
|
|
// Auto releasing acquired charts
|
|
|
|
Object.keys(charts).forEach(function(id) {
|
|
|
|
var chart = charts[id];
|
|
|
|
if (!(chart.$test || {}).persistent) {
|
|
|
|
releaseChart(chart);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}());
|