describe('Unit testing jQuery version of easy pie chart', function() {
	var $el;

	var options = {
		size: 200
	};

	beforeEach(function(){
		$el = $('<span class="chart"></span>');
		$('body').append($el);

		$el.easyPieChart(options);
	});

	it('inserts a canvas element', function() {
		expect($el.html()).toContain('canvas');
	});

	describe('takes size option and', function() {
		var $canvas;

		beforeEach(function() {
			$canvas = $el.find('canvas');
		});

		it('set correct width', function() {
			expect($canvas.width()).toBe(options.size);
		});

		it('set correct height', function() {
			expect($canvas.height()).toBe(options.size);
		});
	});

});

describe('Unit testing jQuery version of easy pie chart', function() {
	var $el;

	var createInstance = function(options, el) {
		options = options || {};
		el = el || '<span class="chart"></span>';
		return function() {
			$el = $(el);
			$('body').append($el);
			$el.easyPieChart(options);
		};
	}

	describe('initialize plugin', function() {
		beforeEach(createInstance());

		it('should insert a canvas element', function() {
			expect($el.html()).toContain('canvas');
		});
	});


	describe('takes size option and', function() {
		var $canvas;
		beforeEach(createInstance({
			size: 200
		}));

		beforeEach(function() {
			$canvas = $el.find('canvas');
		});

		it('set correct width', function() {
			expect($canvas.width()).toBe(200);
		});

		it('set correct height', function() {
			expect($canvas.height()).toBe(200);
		});
	});

	describe('options should be overwritable by data attributes', function() {
		var $canvas;
		beforeEach(createInstance({
			size: 200
		}, '<span class="chart" data-size="400"></span>'));

		beforeEach(function() {
			$canvas = $el.find('canvas');
		});

		it('overwrite width', function() {
			expect($canvas.width()).toBe(400);
		});

		it('overwrite height', function() {
			expect($canvas.height()).toBe(400);
		});
	});

});

add test for overwritable options