mirror of
https://github.com/visgl/react-map-gl.git
synced 2025-12-08 20:16:02 +00:00
123 lines
3.1 KiB
JavaScript
123 lines
3.1 KiB
JavaScript
import test from 'tape-promise/tape';
|
|
import {
|
|
transformToViewState,
|
|
compareViewStateWithTransform,
|
|
applyViewStateToTransform
|
|
} from '@vis.gl/react-mapbox/utils/transform';
|
|
|
|
import Transform from './mapbox-gl-mock/transform';
|
|
|
|
test('applyViewStateToTransform', t => {
|
|
const tr = new Transform();
|
|
let viewState = {};
|
|
let changed = compareViewStateWithTransform(tr, viewState);
|
|
applyViewStateToTransform(tr, viewState);
|
|
t.notOk(changed, 'empty view state');
|
|
|
|
viewState = {longitude: -10, latitude: 5};
|
|
changed = compareViewStateWithTransform(tr, viewState);
|
|
applyViewStateToTransform(tr, viewState);
|
|
t.ok(changed, 'center changed');
|
|
t.deepEqual(
|
|
transformToViewState(tr),
|
|
{
|
|
longitude: -10,
|
|
latitude: 5,
|
|
zoom: 0,
|
|
pitch: 0,
|
|
bearing: 0,
|
|
padding: {left: 0, right: 0, top: 0, bottom: 0},
|
|
elevation: 0
|
|
},
|
|
'view state is correct'
|
|
);
|
|
|
|
viewState = {zoom: 10};
|
|
changed = compareViewStateWithTransform(tr, viewState);
|
|
applyViewStateToTransform(tr, viewState);
|
|
t.ok(changed, 'zoom changed');
|
|
t.deepEqual(
|
|
transformToViewState(tr),
|
|
{
|
|
longitude: -10,
|
|
latitude: 5,
|
|
zoom: 10,
|
|
pitch: 0,
|
|
bearing: 0,
|
|
padding: {left: 0, right: 0, top: 0, bottom: 0},
|
|
elevation: 0
|
|
},
|
|
'view state is correct'
|
|
);
|
|
|
|
viewState = {pitch: 30};
|
|
changed = compareViewStateWithTransform(tr, viewState);
|
|
applyViewStateToTransform(tr, viewState);
|
|
t.ok(changed, 'pitch changed');
|
|
t.deepEqual(
|
|
transformToViewState(tr),
|
|
{
|
|
longitude: -10,
|
|
latitude: 5,
|
|
zoom: 10,
|
|
pitch: 30,
|
|
bearing: 0,
|
|
padding: {left: 0, right: 0, top: 0, bottom: 0},
|
|
elevation: 0
|
|
},
|
|
'view state is correct'
|
|
);
|
|
|
|
viewState = {bearing: 270};
|
|
changed = compareViewStateWithTransform(tr, viewState);
|
|
applyViewStateToTransform(tr, viewState);
|
|
t.ok(changed, 'bearing changed');
|
|
t.deepEqual(
|
|
transformToViewState(tr),
|
|
{
|
|
longitude: -10,
|
|
latitude: 5,
|
|
zoom: 10,
|
|
pitch: 30,
|
|
bearing: -90,
|
|
padding: {left: 0, right: 0, top: 0, bottom: 0},
|
|
elevation: 0
|
|
},
|
|
'view state is correct'
|
|
);
|
|
|
|
viewState = {padding: {left: 10, right: 10, top: 10, bottom: 10}};
|
|
changed = compareViewStateWithTransform(tr, viewState);
|
|
applyViewStateToTransform(tr, viewState);
|
|
t.ok(changed, 'padding changed');
|
|
t.deepEqual(
|
|
transformToViewState(tr),
|
|
{
|
|
longitude: -10,
|
|
latitude: 5,
|
|
zoom: 10,
|
|
pitch: 30,
|
|
bearing: -90,
|
|
padding: {left: 10, right: 10, top: 10, bottom: 10},
|
|
elevation: 0
|
|
},
|
|
'view state is correct'
|
|
);
|
|
|
|
viewState = {pitch: 30};
|
|
changed = compareViewStateWithTransform(tr, viewState);
|
|
applyViewStateToTransform(tr, viewState);
|
|
t.notOk(changed, 'nothing changed');
|
|
|
|
applyViewStateToTransform(tr, {longitude: 0, latitude: 0, zoom: 0});
|
|
|
|
viewState = {longitude: 12, latitude: 34, zoom: 15};
|
|
changed = compareViewStateWithTransform(tr, viewState);
|
|
applyViewStateToTransform(tr, viewState);
|
|
t.ok(changed, 'center and zoom changed');
|
|
t.equal(tr.zoom, 15, 'zoom is correct');
|
|
t.equal(tr.center.lat, 34, 'center latitude is correct');
|
|
|
|
t.end();
|
|
});
|