Chart.js/test/core.plugin.tests.js

54 lines
1.2 KiB
JavaScript
Raw Normal View History

2016-04-17 18:02:33 +02:00
// Plugin tests
describe('Test the plugin system', function() {
2016-05-27 01:22:11 +02:00
var oldPlugins;
beforeAll(function() {
oldPlugins = Chart.plugins._plugins;
2016-05-27 01:22:11 +02:00
});
2016-05-27 01:22:11 +02:00
afterAll(function() {
Chart.plugins._plugins = oldPlugins;
2016-05-27 01:22:11 +02:00
});
2016-04-17 18:02:33 +02:00
beforeEach(function() {
Chart.plugins._plugins = [];
2016-04-17 18:02:33 +02:00
});
it ('Should register plugins', function() {
var myplugin = {};
Chart.plugins.register(myplugin);
expect(Chart.plugins._plugins.length).toBe(1);
2016-04-17 18:02:33 +02:00
// Should only add plugin once
Chart.plugins.register(myplugin);
expect(Chart.plugins._plugins.length).toBe(1);
2016-04-17 18:02:33 +02:00
});
it ('Should allow unregistering plugins', function() {
var myplugin = {};
Chart.plugins.register(myplugin);
expect(Chart.plugins._plugins.length).toBe(1);
2016-04-17 18:02:33 +02:00
// Should only add plugin once
Chart.plugins.remove(myplugin);
expect(Chart.plugins._plugins.length).toBe(0);
2016-04-17 18:02:33 +02:00
// Removing a plugin that doesn't exist should not error
Chart.plugins.remove(myplugin);
2016-04-17 18:02:33 +02:00
});
it ('Should allow notifying plugins', function() {
var myplugin = {
count: 0,
trigger: function(chart) {
myplugin.count = chart.count;
}
};
Chart.plugins.register(myplugin);
Chart.plugins.notify('trigger', [{ count: 10 }]);
2016-04-17 18:02:33 +02:00
expect(myplugin.count).toBe(10);
});
});