Skip to content

Commit b6222b6

Browse files
committed
【fix】UT
1 parent c8413e8 commit b6222b6

File tree

1 file changed

+82
-61
lines changed

1 file changed

+82
-61
lines changed

test/maplibregl/overlay/FGBLayerSpec.js

Lines changed: 82 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -5,40 +5,40 @@ var fgbUrl = 'base/resources/data/capitals_data20.fgb';
55
// var url = 'https://iserver.supermap.io/iserver/services/map-china400/rest/maps/ChinaDark/zxyTileImage.png?z={z}&x={x}&y={y}'
66
describe('maplibregl_FGBLayer', () => {
77
var originalTimeout;
8-
var testDiv, map;
8+
var testDiv, map, fgblayer;
99
beforeAll((done) => {
10-
testDiv = window.document.createElement('div');
11-
testDiv.setAttribute('id', 'map');
12-
testDiv.style.styleFloat = 'left';
13-
testDiv.style.marginLeft = '8px';
14-
testDiv.style.marginTop = '50px';
15-
testDiv.style.width = '500px';
16-
testDiv.style.height = '500px';
17-
window.document.body.appendChild(testDiv);
18-
map = new maplibregl.Map({
19-
container: 'map',
20-
style: {
21-
version: 8,
22-
sources: {
23-
24-
},
25-
layers: [
26-
27-
]
28-
},
29-
center: [0, 0],
30-
zoom: 3
31-
});
32-
map.on('load', function () {
33-
done();
34-
});
35-
},50000);
10+
testDiv = window.document.createElement('div');
11+
testDiv.setAttribute('id', 'map');
12+
testDiv.style.styleFloat = 'left';
13+
testDiv.style.marginLeft = '8px';
14+
testDiv.style.marginTop = '50px';
15+
testDiv.style.width = '500px';
16+
testDiv.style.height = '500px';
17+
window.document.body.appendChild(testDiv);
18+
map = new maplibregl.Map({
19+
container: 'map',
20+
style: {
21+
version: 8,
22+
sources: {},
23+
layers: []
24+
},
25+
center: [0, 0],
26+
zoom: 3
27+
});
28+
map.on('load', function () {
29+
done();
30+
});
31+
}, 50000);
3632
beforeEach(() => {
3733
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
3834
jasmine.DEFAULT_TIMEOUT_INTERVAL = 50000;
3935
});
4036

4137
afterEach(() => {
38+
if (fgblayer) {
39+
map.removeLayer(fgblayer.id);
40+
fgblayer = null;
41+
}
4242
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout;
4343
});
4444

@@ -49,80 +49,101 @@ describe('maplibregl_FGBLayer', () => {
4949

5050
it('load bbox', (done) => {
5151
var count = 0;
52-
var fgblayer = new FGBLayer({
52+
fgblayer = new FGBLayer({
5353
url: fgbUrl,
5454
featureLoader: function (feature) {
5555
expect(['圣多美', '蒙罗维亚'].includes(feature.properties['CAPITAL'])).toBeTrue();
5656
count++;
57-
if (count === 2) {
58-
done();
59-
}
6057
return feature;
6158
}
6259
});
63-
fgblayer.onAdd(map);
64-
expect(fgblayer.strategy).toBe('bbox');
65-
expect(fgblayer).not.toBeNull();
66-
expect(fgblayer.url).toBe(fgbUrl);
60+
// fgblayer.onAdd(map);
61+
map.addLayer(fgblayer);
62+
var cb = () => {
63+
if (fgblayer && map.getLayer(fgblayer.layerId)) {
64+
map.off('sourcedata', cb);
65+
expect(fgblayer.strategy).toBe('bbox');
66+
expect(fgblayer).not.toBeNull();
67+
expect(fgblayer.url).toBe(fgbUrl);
68+
expect(count).toBe(2);
69+
done();
70+
}
71+
};
72+
map.on('sourcedata', cb);
6773
});
6874

6975
it('load all', (done) => {
7076
var count = 0;
71-
var fgblayer = new FGBLayer({
77+
fgblayer = new FGBLayer({
7278
url: fgbUrl,
7379
strategy: 'all',
7480
featureLoader: function (feature) {
7581
count++;
76-
if (count === 19) {
77-
done();
78-
}
7982
return feature;
8083
}
8184
});
82-
fgblayer.onAdd(map);
83-
expect(fgblayer.url).toBe(fgbUrl);
85+
map.addLayer(fgblayer);
86+
87+
var cb = () => {
88+
if (fgblayer && map.getLayer(fgblayer.layerId)) {
89+
map.off('sourcedata', cb);
90+
expect(fgblayer.url).toBe(fgbUrl);
91+
expect(count).toBe(19);
92+
done();
93+
}
94+
};
95+
map.on('sourcedata', cb);
8496
});
8597

86-
xit('set extent', (done) => {
98+
it('set extent', (done) => {
8799
var count = 0;
88-
var fgblayer = new FGBLayer({
100+
fgblayer = new FGBLayer({
89101
url: fgbUrl,
90102
extent: [0, 0, 21, 21],
91103
featureLoader: function (feature) {
92104
count++;
93-
console.log(count, feature.properties);
94105
expect(feature.properties['CAPITAL']).toBe('圣多美');
95-
done();
96106
return feature;
97107
}
98108
});
99-
fgblayer.onAdd(map);
100-
expect(fgblayer).not.toBeNull();
101-
expect(fgblayer.url).toBe(fgbUrl);
109+
map.addLayer(fgblayer);
110+
111+
var cb = () => {
112+
if (fgblayer && map.getLayer(fgblayer.layerId)) {
113+
map.off('sourcedata', cb);
114+
expect(fgblayer).not.toBeNull();
115+
expect(fgblayer.url).toBe(fgbUrl);
116+
expect(count).toBe(1);
117+
done();
118+
}
119+
};
120+
map.on('sourcedata', cb);
102121
});
103122

104-
xit('render moveLayer onRemove setVisibility', (done) => {
123+
it('render moveLayer onRemove setVisibility', (done) => {
105124
var count = 0;
106-
var fgblayer = new FGBLayer({
125+
fgblayer = new FGBLayer({
107126
url: fgbUrl,
108127
extent: [0, 0, 21, 21],
109128
featureLoader: function (feature) {
110129
count++;
111-
console.log(count, feature.properties);
112130
expect(feature.properties['CAPITAL']).toBe('圣多美');
113-
done();
114131
return feature;
115132
}
116133
});
117-
fgblayer.onAdd(map);
134+
map.addLayer(fgblayer);
118135
fgblayer.render();
119-
while(map.getLayer(fgblayer.layerId)){
120-
fgblayer.moveLayer(fgblayer.layerId, 'simple-tiles');
121-
console.log(map.getStyle())
122-
fgblayer.setVisibility(false);
123-
fgblayer.onRemove();
124-
expect(fgblayer).not.toBeNull();
125-
}
126-
});
127136

137+
var cb = () => {
138+
if (fgblayer && map.getLayer(fgblayer.layerId)) {
139+
fgblayer.moveLayer(fgblayer.id);
140+
fgblayer.setVisibility(false);
141+
map.removeLayer(fgblayer.id);
142+
fgblayer = null;
143+
expect(count).toBe(1);
144+
done();
145+
}
146+
};
147+
map.on('sourcedata', cb);
148+
});
128149
});

0 commit comments

Comments
 (0)