UNPKG

maplibre-gl

Version:

BSD licensed community fork of mapbox-gl, a WebGL interactive maps library

52 lines (44 loc) 1.62 kB
import {createMap, beforeMapTest} from '../../util/test/util'; beforeEach(() => { beforeMapTest(); }); describe('requestRenderFrame', () => { test('Map#_requestRenderFrame schedules a new render frame if necessary', (done) => { const map = createMap(); const spy = jest.spyOn(map, 'triggerRepaint'); map._requestRenderFrame(() => {}); expect(spy).toHaveBeenCalledTimes(0); // wait for style to be loaded map.once('data', () => { spy.mockReset(); map._requestRenderFrame(() => {}); expect(spy).toHaveBeenCalledTimes(1); map.remove(); done(); }); }); test('Map#_requestRenderFrame should not schedule a render frame before style load', () => { const map = createMap(); const spy = jest.spyOn(map, 'triggerRepaint'); map._requestRenderFrame(() => {}); expect(spy).toHaveBeenCalledTimes(0); map.remove(); }); test('Map#_requestRenderFrame queues a task for the next render frame', async () => { const map = createMap(); const cb = jest.fn(); map._requestRenderFrame(cb); await map.once('render'); expect(cb).toHaveBeenCalledTimes(1); map.remove(); }); test('Map#_cancelRenderFrame cancels a queued task', async () => { const map = createMap(); const cb = jest.fn(); const id = map._requestRenderFrame(cb); map._cancelRenderFrame(id); await map.once('render'); expect(cb).toHaveBeenCalledTimes(0); map.remove(); }); });