describe('disableClusteringAtZoom option', function () {

	/////////////////////////////

	// SETUP FOR EACH TEST

	/////////////////////////////

	var div, map, group, clock;



	beforeEach(function () {

		clock = sinon.useFakeTimers();



		div = document.createElement('div');

		div.style.width = '200px';

		div.style.height = '200px';

		document.body.appendChild(div);

	

		map = L.map(div, { maxZoom: 18, trackResize: false });

	

		// Corresponds to zoom level 8 for the above div dimensions.

		map.fitBounds(new L.LatLngBounds([

			[1, 1],

			[2, 2]

		]));

	});



	afterEach(function () {

		group.clearLayers();

		map.removeLayer(group);

		map.remove();

		div.remove();

		clock.restore();

		

		div, map, group, clock = null;

	});



	/////////////////////////////

	// TESTS

	/////////////////////////////

	it('unclusters at zoom level equal or higher', function () {



		var maxZoom = 15;



		group = new L.MarkerClusterGroup({

			disableClusteringAtZoom: maxZoom

		});



		group.addLayers([

			new L.Marker([1.5, 1.5]),

			new L.Marker([1.5, 1.5])

		]);

		map.addLayer(group);



		expect(group._maxZoom).to.equal(maxZoom - 1);



		expect(map._panes.markerPane.childNodes.length).to.equal(1); // 1 cluster.



		map.setZoom(14);

		clock.tick(1000);

		expect(map._panes.markerPane.childNodes.length).to.equal(1); // 1 cluster.



		map.setZoom(15);

		clock.tick(1000);

		expect(map._panes.markerPane.childNodes.length).to.equal(2); // 2 markers.

	});

});

