Skip to content

Commit b6b788f

Browse files
committed
【fix】优化不稳定UT
1 parent 413287e commit b6b788f

File tree

1 file changed

+59
-43
lines changed

1 file changed

+59
-43
lines changed

test/leaflet/overlay/GraphicLayerSpec.js

Lines changed: 59 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ const imgData =
1111
var url = 'http://supermapiserver:8090/iserver/services/map-world/rest/maps/World';
1212
describe('leaflet_GraphicLayer', () => {
1313
var originalTimeout;
14+
var testDiv, map;
1415
function createMap() {
15-
var testDiv, map;
1616
testDiv = window.document.createElement('div');
1717
testDiv.setAttribute('id', 'map');
1818
testDiv.style.styleFloat = 'left';
@@ -40,6 +40,14 @@ describe('leaflet_GraphicLayer', () => {
4040
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
4141
});
4242
afterEach(() => {
43+
if(map){
44+
map.remove();
45+
map = null;
46+
}
47+
if(testDiv){
48+
window.document.body.removeChild(testDiv);
49+
testDiv = null;
50+
}
4351
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
4452
});
4553
it('initialize', (done) => {
@@ -80,8 +88,6 @@ describe('leaflet_GraphicLayer', () => {
8088
layer.on('remove', () => {
8189
var requestAnimId = map.getRenderer(layer)._redrawRequest;
8290
requestAnimId != null && L.Util.cancelAnimFrame(requestAnimId);
83-
map.remove();
84-
window.document.body.removeChild(testDiv);
8591
done();
8692
});
8793
layer.remove();
@@ -109,8 +115,6 @@ describe('leaflet_GraphicLayer', () => {
109115
layer.on('remove', () => {
110116
var requestAnimId = map.getRenderer(layer)._redrawRequest;
111117
requestAnimId != null && L.Util.cancelAnimFrame(requestAnimId);
112-
map.remove();
113-
window.document.body.removeChild(testDiv);
114118
done();
115119
});
116120
layer.remove();
@@ -163,8 +167,6 @@ describe('leaflet_GraphicLayer', () => {
163167
layer.on('remove', () => {
164168
var requestAnimId = map.getRenderer(layer)._redrawRequest;
165169
requestAnimId != null && L.Util.cancelAnimFrame(requestAnimId);
166-
map.remove();
167-
window.document.body.removeChild(testDiv);
168170
done();
169171
});
170172
layer.remove();
@@ -205,9 +207,10 @@ describe('leaflet_GraphicLayer', () => {
205207

206208
const graphic1 = layer.getGraphicById(1);
207209
expect(graphic1.getId()).toEqual(1);
208-
map.remove();
209-
window.document.body.removeChild(testDiv);
210-
done();
210+
layer.on('remove', () => {
211+
done();
212+
})
213+
layer.remove()
211214
}, 0);
212215
});
213216

@@ -218,9 +221,10 @@ describe('leaflet_GraphicLayer', () => {
218221
const graphic = layer.getGraphicsByAttribute('name', 'graphic_1');
219222
expect(graphic).not.toBeNull();
220223
expect(graphic[0].getAttributes().name).toBe('graphic_1');
221-
map.remove();
222-
window.document.body.removeChild(testDiv);
223-
done();
224+
layer.on('remove', () => {
225+
done();
226+
})
227+
layer.remove()
224228
}, 0);
225229
});
226230

@@ -242,9 +246,10 @@ describe('leaflet_GraphicLayer', () => {
242246
//默认
243247
layer.removeGraphics();
244248
expect(layer.graphics.length).toEqual(0);
245-
map.remove();
246-
window.document.body.removeChild(testDiv);
247-
done();
249+
layer.on('remove', () => {
250+
done();
251+
})
252+
layer.remove()
248253
}, 0);
249254
});
250255

@@ -257,9 +262,10 @@ describe('leaflet_GraphicLayer', () => {
257262
expect(state).not.toBeNull();
258263
expect(layer.getRenderer()).not.toBeNull();
259264
expect(state.color).toBe('#3388ff');
260-
map.remove();
261-
window.document.body.removeChild(testDiv);
262-
done();
265+
layer.on('remove', () => {
266+
done();
267+
})
268+
layer.remove()
263269
}, 0);
264270
});
265271

@@ -273,9 +279,10 @@ describe('leaflet_GraphicLayer', () => {
273279
expect(layer.options.color).toEqual([0, 0, 0, 255]);
274280
layer.setStyle({ color: 'blue' });
275281
expect(layer.options.color).toEqual('blue');
276-
map.remove();
277-
window.document.body.removeChild(testDiv);
278-
done();
282+
layer.on('remove', () => {
283+
done();
284+
})
285+
layer.remove()
279286
}, 0);
280287
});
281288

@@ -286,9 +293,10 @@ describe('leaflet_GraphicLayer', () => {
286293
setTimeout(() => {
287294
layer.addGraphics(graphics);
288295
expect(layer.graphics.length).toEqual(10);
289-
map.remove();
290-
window.document.body.removeChild(testDiv);
291-
done();
296+
layer.on('remove', () => {
297+
done();
298+
})
299+
layer.remove()
292300
}, 0);
293301
});
294302

@@ -309,25 +317,30 @@ describe('leaflet_GraphicLayer', () => {
309317
}
310318
layer.setGraphics(graphics);
311319
expect(layer.graphics.length).toEqual(5);
312-
map.remove();
313-
window.document.body.removeChild(testDiv);
314-
done();
320+
layer.on('remove', () => {
321+
done();
322+
})
323+
layer.remove()
315324
}, 0);
316325
});
317326

318327
//特定条件下,期望的函数被调用、
319-
it('_moveEnd_expect_ICL_1042', () => {
328+
it('_moveEnd_expect_ICL_1042', (done) => {
320329
let { map, testDiv } = createMap();
321330

322331
spyOn(Detector, 'supportWebGL2').and.callFake(() => {
323332
return true;
324333
});
325334
let layer = graphicLayer(graphics, { render: 'webgl' }).addTo(map);
326-
spyOn(layer, '_update');
327-
layer._moveEnd();
328-
expect(layer._update).toHaveBeenCalled();
329-
map.remove();
330-
window.document.body.removeChild(testDiv);
335+
setTimeout(() => {
336+
spyOn(layer, '_update');
337+
layer._moveEnd();
338+
expect(layer._update).toHaveBeenCalled();
339+
layer.on('remove', () => {
340+
done();
341+
})
342+
layer.remove()
343+
}, 0)
331344
});
332345
it('CRS_4326_ICL_1134', (done) => {
333346
let { map, testDiv } = createMap();
@@ -341,9 +354,10 @@ describe('leaflet_GraphicLayer', () => {
341354
expect(webglRenderLayer).not.toBeNull();
342355
expect(webglRenderLayer.props.coordinateSystem).toEqual(window.DeckGL.COORDINATE_SYSTEM.LNGLAT_OFFSETS);
343356
expect(webglRenderLayer.props.isGeographicCoordinateSystem).toBeTrue();
344-
map.remove();
345-
window.document.body.removeChild(testDiv);
346-
done();
357+
layer.on('remove', () => {
358+
done();
359+
})
360+
layer.remove()
347361
}, 0);
348362
});
349363
it('CRS_4326_ICL_1349', (done) => {
@@ -359,9 +373,10 @@ describe('leaflet_GraphicLayer', () => {
359373
expect(webglRenderLayer).not.toBeNull();
360374
expect(webglRenderLayer.props.coordinateSystem).toEqual(window.DeckGL.COORDINATE_SYSTEM.LNGLAT);
361375
expect(webglRenderLayer.props.isGeographicCoordinateSystem).toBeFalse();
362-
map.remove();
363-
window.document.body.removeChild(testDiv);
364-
done();
376+
layer.on('remove', () => {
377+
done();
378+
})
379+
layer.remove()
365380
}, 0);
366381
});
367382
it('CRS_4326_ICL_1349', (done) => {
@@ -377,9 +392,10 @@ describe('leaflet_GraphicLayer', () => {
377392
expect(webglRenderLayer).not.toBeNull();
378393
expect(webglRenderLayer.props.coordinateSystem).toEqual(window.DeckGL.COORDINATE_SYSTEM.LNGLAT_OFFSETS);
379394
expect(webglRenderLayer.props.isGeographicCoordinateSystem).toBeTrue();
380-
map.remove();
381-
window.document.body.removeChild(testDiv);
382-
done();
395+
layer.on('remove', () => {
396+
done();
397+
})
398+
layer.remove()
383399
}, 0);
384400
});
385401
});

0 commit comments

Comments
 (0)