Skip to content

Commit 81fc967

Browse files
committed
fix 补充新代码UT覆盖; review by qiw
1 parent b07060f commit 81fc967

17 files changed

+792
-217
lines changed

src/maplibregl/overlay/ThreeLayer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ export class ThreeLayer extends maplibregl.Evented {
192192
* @returns {(Array.<Array.<number>>)} 新的坐标数组。
193193
*/
194194
removeDuplicatedCoordinates(coordinates) {
195-
this.renderer.removeDuplicatedCoordinates(coordinates);
195+
return this.renderer.removeDuplicatedCoordinates(coordinates);
196196
}
197197

198198
/**

test/common/overlay/KnowledgeGraphSpec.js

Lines changed: 35 additions & 161 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ describe('KnowledgeGraph', () => {
8787
graph.setData(data);
8888
expect(graph).not.toBeNull();
8989
expect(graph.data).not.toBeNull();
90+
expect(graph.getGraph()).not.toBeNull();
9091
done();
9192
});
9293

@@ -218,144 +219,8 @@ describe('KnowledgeGraph', () => {
218219
expect(graph.data).not.toBeNull();
219220
done();
220221
});
221-
it('expand collpase hidden Nodes', (done) => {
222-
var graph = new KnowledgeGraph();
223-
graph.setData(data);
224-
graph.handleNodeStatus({});
225-
graph.handleNodeStatus({ expand: [], collpase: [2], hidden: [] });
226-
console.log(graph.graphRender.collpasedData['2']);
227-
graph.handleNodeStatus({ expand: [2], hidden: [] });
228-
graph.handleNodeStatus({ expand: [2], collpase: [2, 5], hidden: [6] });
229-
done();
230-
});
231-
232-
it('collpaseNode', (done) => {
233-
var graph = new KnowledgeGraph();
234-
const data = {
235-
nodes: [{ id: '1' }, { id: '2' }, { id: '3' }],
236-
edges: [{ source: '2', target: '1' }]
237-
};
238-
graph.setData(data);
239-
graph.collapseNode('1');
240-
expect(graph.graphRender.collpasedData['1'].length).toBe(1);
241-
expect(graph.graphRender.collpasedData['1'][0].children).toBeUndefined();
242-
console.log('collpaseNodes4', graph.graphRender.collpasedData);
243-
graph.expandNode('1');
244-
done();
245-
});
246-
it('collpaseNode1', (done) => {
247-
var graph = new KnowledgeGraph();
248-
const data = { nodes: [{ id: '1' }, { id: '2' }], edges: [{ source: '1', target: '2' }] };
249-
graph.setData(data);
250-
graph.collapseNode('1');
251-
expect(graph.graphRender.collpasedData['1'].length).toBe(1);
252-
expect(graph.graphRender.collpasedData['1'][0].children).toBeUndefined();
253-
done();
254-
});
255-
it('collpaseNode2', (done) => {
256-
var graph = new KnowledgeGraph();
257-
const data = {
258-
nodes: [{ id: '1' }, { id: '2' }, { id: '3' }],
259-
edges: [
260-
{ source: '1', target: '2' },
261-
{ source: '3', target: '2' }
262-
]
263-
};
264-
graph.setData(data);
265-
graph.collapseNode('1');
266-
expect(graph.graphRender.collpasedData['1'].length).toBe(0);
267-
done();
268-
});
269-
it('collpaseNode3', (done) => {
270-
var graph = new KnowledgeGraph();
271-
const data = {
272-
nodes: [{ id: '1' }, { id: '2' }, { id: '3' }],
273-
edges: [
274-
{ source: '1', target: '2' },
275-
{ source: '2', target: '3' }
276-
]
277-
};
278-
graph.setData(data);
279-
graph.collapseNode('1');
280-
console.log('collpaseNodes3', graph.graphRender.collpasedData);
281-
expect(graph.graphRender.collpasedData['1'].length).toBe(0);
282-
graph.expandNode('1');
283-
done();
284-
});
285-
xit('collpaseNode5', (done) => {
286-
var graph = new KnowledgeGraph();
287-
const data = {
288-
nodes: [{ id: '1' }, { id: '2' }, { id: '3' }],
289-
edges: [
290-
{ source: '2', target: '1' },
291-
{ source: '2', target: '3' }
292-
]
293-
};
294-
graph.setData(data);
295-
graph.collapseNode('1');
296-
console.log('collpaseNodes5', graph.graphRender.collpasedData);
297-
expect(graph.graphRender.collpasedData['1'].length).toBe(1);
298-
expect(graph.graphRender.collpasedData['1'][0].children.length).toBe(1);
299-
graph.expandNode('1');
300-
done();
301-
});
302-
xit('collpaseNode6', (done) => {
303-
var graph = new KnowledgeGraph();
304-
const data = {
305-
nodes: [{ id: '1' }, { id: '2' }, { id: '3' }],
306-
edges: [
307-
{ source: '2', target: '1' },
308-
{ source: '3', target: '2' }
309-
]
310-
};
311-
graph.setData(data);
312-
graph.collapseNode('1');
313-
console.log('collpaseNodes6', graph.graphRender.collpasedData, graph.graphRender.collpasedData['1'][0].children);
314-
expect(graph.graphRender.collpasedData['1'].length).toBe(1);
315-
expect(graph.graphRender.collpasedData['1'][0].children.length).toBe(1);
316-
expect(graph.graphRender.collpasedData['1'][0].children[0].children).toBeUndefined();
317-
graph.expandNode('1');
318-
done();
319-
});
320-
xit('collpaseNode7', (done) => {
321-
var graph = new KnowledgeGraph();
322-
const data = {
323-
nodes: [{ id: '1' }, { id: '2' }, { id: '3' }, { id: '4' }],
324-
edges: [
325-
{ source: '2', target: '1' },
326-
{ source: '3', target: '2' },
327-
{ source: '3', target: '4' }
328-
]
329-
};
330-
graph.setData(data);
331-
graph.collapseNode('1');
332-
console.log('collpaseNodes7', graph.graphRender.collpasedData);
333-
expect(graph.graphRender.collpasedData['1'].length).toBe(1);
334-
expect(graph.graphRender.collpasedData['1'][0].children).toBeUndefined();
335-
graph.expandNode('1');
336-
done();
337-
});
338-
xit('collpaseNode8', (done) => {
339-
var graph = new KnowledgeGraph();
340-
const data = {
341-
nodes: [{ id: '1' }, { id: '2' }, { id: '3' }, { id: '4' }],
342-
edges: [
343-
{ source: '2', target: '1' },
344-
{ source: '3', target: '2' },
345-
{ source: '4', target: '3' }
346-
]
347-
};
348-
graph.setData(data);
349-
graph.collapseNode('1');
350-
console.log('collpaseNodes8', graph.graphRender.collpasedData);
351-
expect(graph.graphRender.collpasedData['1'].length).toBe(1);
352-
expect(graph.graphRender.collpasedData['1'][0].children.length).toBe(1);
353-
expect(graph.graphRender.collpasedData['1'][0].children).toBeUndefined();
354-
graph.expandNode('1');
355-
done();
356-
});
357222
it('graph_functions', (done) => {
358-
var graph = new KnowledgeGraph({ zoom: 7 });
223+
var graph = new KnowledgeGraph();
359224
graph.setData(data);
360225
expect(graph.getContainer()).not.toBeNull();
361226
expect(graph.getCanvas()).not.toBeNull();
@@ -366,47 +231,56 @@ describe('KnowledgeGraph', () => {
366231
expect(graph.getEdgesByNode(node)).not.toBeNull();
367232
expect(graph.getInEdges(node)).not.toBeNull();
368233
expect(graph.getOutEdges(node)).not.toBeNull();
369-
graph.hide(node);
370-
graph.show(node);
371-
expect(graph.isVisible(node)).toBe(true);
372-
expect(graph.getModel(node)).not.toBeNull();
373234
const edge = graph.find('edge', (res) => res);
374235
expect(graph.getSourceByEdge(edge)).not.toBeNull();
375236
expect(graph.getTargetByEdge(edge)).not.toBeNull();
237+
376238
expect(node).not.toBeNull();
377239
expect(graph.find('node', (res) => res)).not.toBeNull();
378240
expect(graph.findAll('node', (res) => res)).not.toBeNull();
379241
expect(graph.findAll('node', (res) => res)).not.toBeNull();
380242
expect(graph.toDataURL('image')).not.toBeNull();
381-
expect(graph.getZoom()).toBe(7);
382-
graph.zoom(5);
383-
// expect(graph.getZoom()).toBe(5);
384-
graph.zoomTo(6);
385-
// expect(graph.getZoom()).toBe(6);
386-
expect(graph.getGraphCenterPoint()).not.toBeNull();
387-
graph.setMinZoom(2);
388-
expect(graph.getMinZoom()).toBe(2);
389-
graph.setMaxZoom(3);
390-
expect(graph.getMaxZoom()).toBe(3);
391-
expect(graph.getWidth()).toBe(450);
392243
try {
393244
graph.addItem('node', { id: 'test' });
394245
graph.removeItem('node', 'test');
395246
graph.updateItem('1', { id: '1' });
396247
graph.refreshItem('1');
397248
graph.refreshPositions();
398-
graph.on('beforerender', () => {});
399-
graph.off('beforerender', () => {});
400-
graph.fitView();
401-
graph.fitCenter();
402-
graph.expandNode();
403-
graph.collapseNode();
404-
graph.showItem();
405-
graph.hideItem();
406-
graph.getHeight();
407249
graph.clear();
408250
graph.destroy();
251+
graph.on('beforerender', () => {});
252+
graph.off('beforerender', () => {});
409253
} catch {}
410254
done();
411255
});
256+
it('changeSize', (done) => {
257+
var graph = new KnowledgeGraph({ nodeLabelMaxWidth: 100 });
258+
expect(graph.changeSize(20,50)).not.toBeNull();
259+
done();
260+
});
261+
it('changeVisibility', (done) => {
262+
var graph = new KnowledgeGraph({ nodeLabelMaxWidth: 100 });
263+
const item = {
264+
changeVisibility: (params) => {
265+
expect(params).toBeTrue();
266+
done();
267+
}
268+
}
269+
graph.changeVisibility(item, true);
270+
});
271+
it('nodeLabelOpenEllipsis', (done) => {
272+
var graph = new KnowledgeGraph({ nodeLabelMaxWidth: 100 });
273+
var result = graph.nodeLabelOpenEllipsis(2);
274+
expect(result.length).toBe(0);
275+
result = graph.nodeLabelOpenEllipsis(0, ['node']);
276+
expect(result.length).toBe(1);
277+
result = graph.nodeLabelOpenEllipsis(2, [{
278+
labelCfg: {
279+
fontSize: 12
280+
},
281+
label: 'label'
282+
}]);
283+
expect(result.length).toBe(1);
284+
done();
285+
});
412286
});

test/maplibregl/overlay/DeckglLayerSpec.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,4 +259,10 @@ describe('maplibregl_DeckglLayer', () => {
259259
}, 0)
260260

261261
});
262+
263+
it('onRemove', (done) => {
264+
deckglLayer.onRemove();
265+
expect(deckglLayer.data.length).toEqual(0);
266+
done();
267+
});
262268
});

test/maplibregl/overlay/FGBLayerSpec.js

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var fgbUrl = 'base/resources/data/capitals_data20.fgb';
66
describe('maplibregl_FGBLayer', () => {
77
var originalTimeout;
88
var testDiv, map;
9-
beforeAll(() => {
9+
beforeAll((done) => {
1010
testDiv = window.document.createElement('div');
1111
testDiv.setAttribute('id', 'map');
1212
testDiv.style.styleFloat = 'left';
@@ -39,6 +39,9 @@ describe('maplibregl_FGBLayer', () => {
3939
center: [0, 0],
4040
zoom: 3
4141
});
42+
map.on('load', function() {
43+
done();
44+
});
4245
});
4346
beforeEach(() => {
4447
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
@@ -55,24 +58,22 @@ describe('maplibregl_FGBLayer', () => {
5558
});
5659

5760
it('load bbox', (done) => {
58-
map.on('load', () => {
59-
var count = 0;
60-
var fgblayer = new FGBLayer({
61-
url: fgbUrl,
62-
featureLoader: function (feature) {
63-
expect(['圣多美', '蒙罗维亚'].includes(feature.properties['CAPITAL'])).toBeTrue();
64-
count++;
65-
if (count === 2) {
66-
done();
67-
}
68-
return feature;
61+
var count = 0;
62+
var fgblayer = new FGBLayer({
63+
url: fgbUrl,
64+
featureLoader: function (feature) {
65+
expect(['圣多美', '蒙罗维亚'].includes(feature.properties['CAPITAL'])).toBeTrue();
66+
count++;
67+
if (count === 2) {
68+
done();
6969
}
70-
});
71-
fgblayer.onAdd(map);
72-
expect(fgblayer.strategy).toBe('bbox');
73-
expect(fgblayer).not.toBeNull();
74-
expect(fgblayer.url).toBe(fgbUrl);
75-
})
70+
return feature;
71+
}
72+
});
73+
fgblayer.onAdd(map);
74+
expect(fgblayer.strategy).toBe('bbox');
75+
expect(fgblayer).not.toBeNull();
76+
expect(fgblayer.url).toBe(fgbUrl);
7677
});
7778

7879
it('load all', (done) => {
@@ -106,4 +107,25 @@ describe('maplibregl_FGBLayer', () => {
106107
expect(fgblayer).not.toBeNull();
107108
expect(fgblayer.url).toBe(fgbUrl);
108109
});
110+
111+
it('render moveLayer onRemove setVisibility', (done) => {
112+
var fgblayer = new FGBLayer({
113+
id: 'FGBLayer_1',
114+
url: fgbUrl,
115+
extent: [0, 0, 21, 21],
116+
featureLoader: function (feature) {
117+
expect(feature.properties['CAPITAL']).toBe('圣多美');
118+
done();
119+
return feature;
120+
}
121+
});
122+
fgblayer.onAdd(map);
123+
fgblayer.render();
124+
fgblayer.moveLayer('FGBLayer_1', 'simple-tiles');
125+
fgblayer.setVisibility(false);
126+
expect(fgblayer.map.getLayer(fgblayer.id).getLayoutProperty('visibility')).toBe('none');
127+
fgblayer.onRemove();
128+
expect(fgblayer).not.toBeNull();
129+
});
130+
109131
});

test/maplibregl/overlay/GraphicLayerSpec.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,4 +195,35 @@ describe('maplibregl_GraphicLayer', () => {
195195
done();
196196
}, 0);
197197
});
198+
199+
it("addTo moveTo onRemove render", (done) => {
200+
let graphics = [];
201+
for (let i = 0; i < coors.length; i++) {
202+
let lngLat = {
203+
lng: parseFloat(coors[i][0]),
204+
lat: parseFloat(coors[i][1])
205+
};
206+
graphics.push(new Graphic(lngLat));
207+
graphics[i].setId(i);
208+
graphics[i].setAttributes({ name: "graphic_" + i });
209+
}
210+
let graphicLayer1 = new GraphicLayer("graphicLayer1", {
211+
graphics: graphics
212+
});
213+
let map = new maplibregl.Map({
214+
container: 'map',
215+
style: 'mapbox://styles/mapbox/streets-v9',
216+
center: [13.413952, 52.531913],
217+
zoom: 16.000000000000004,
218+
pitch: 33.2
219+
});
220+
map.on('load', () => {
221+
graphicLayer1.addTo(map);
222+
graphicLayer1.render();
223+
graphicLayer1.moveTo('test', true);
224+
graphicLayer1.onRemove();
225+
expect(graphicLayer1.renderer.graphics.length).toEqual(0);
226+
done();
227+
});
228+
});
198229
});

test/maplibregl/overlay/HeatMapLayerSpec.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import { HeatMapLayer } from '../../../src/maplibregl/overlay/HeatMapLayer';
2+
import {Bounds} from '../../../src/common/commontypes/Bounds';
3+
import {LonLat} from '../../../src/common/commontypes/LonLat';
24
import maplibregl from 'maplibre-gl';
35
import { truncate } from '@turf/turf';
46

@@ -270,4 +272,13 @@ describe('maplibregl_HeatMapLayer', () => {
270272
done();
271273
}, 0);
272274
});
275+
it('getPixelXY', () => {
276+
let pixelXY = heatLayer.getPixelXY(new LonLat(109, 32));
277+
expect(pixelXY).not.toBeNull();
278+
});
279+
it('updateHeatPoints', () => {
280+
let bounds = new Bounds([-180, -90, 180, 90]);
281+
heatLayer.updateHeatPoints(bounds);
282+
expect(heatLayer.renderer.useRadius).toBe(45);
283+
});
273284
});

0 commit comments

Comments
 (0)