maplibre-gl
Version:
BSD licensed community fork of mapbox-gl, a WebGL interactive maps library
65 lines (50 loc) • 1.75 kB
text/typescript
import Map from '../../ui/map';
import DOM from '../../util/dom';
import simulate from '../../../test/unit/lib/simulate_interaction';
import browser from '../../util/browser';
import {setWebGlContext, setPerformance, setMatchMedia} from '../../util/test/util';
let map;
function createMap() {
return new Map({style: '', container: DOM.create('div', '', window.document.body)});
}
beforeEach(() => {
setWebGlContext();
setPerformance();
setMatchMedia();
map = createMap();
});
afterEach(() => {
map.remove();
});
describe('Map#isRotating', () => {
test('returns false by default', () => {
expect(map.isRotating()).toBe(false);
});
test('returns true during a camera rotate animation', done => {
map.on('rotatestart', () => {
expect(map.isRotating()).toBe(true);
});
map.on('rotateend', () => {
expect(map.isRotating()).toBe(false);
done();
});
map.rotateTo(5, {duration: 0});
});
test('returns true when drag rotating', done => {
// Prevent inertial rotation.
jest.spyOn(browser, 'now').mockImplementation(() => { return 0; });
map.on('rotatestart', () => {
expect(map.isRotating()).toBe(true);
});
map.on('rotateend', () => {
expect(map.isRotating()).toBe(false);
done();
});
simulate.mousedown(map.getCanvas(), {buttons: 2, button: 2});
map._renderTaskQueue.run();
simulate.mousemove(map.getCanvas(), {buttons: 2, clientX: 10, clientY: 10});
map._renderTaskQueue.run();
simulate.mouseup(map.getCanvas(), {buttons: 0, button: 2});
map._renderTaskQueue.run();
});
});