Skip to content

Commit 8f55bcc

Browse files
authored
No query for hidden layer (#909)
* no query when layer is set to be hidden * prettier formatting * Add test for querying hidden layer-, hidden map-extent --------- Co-authored-by: Aliyan Haq <55751566+AliyanH@users.noreply.github.com> Co-authored-by: prushfor <prushfor@L-BSC-A146390.nrn.nrcan.gc.ca>
1 parent 5150ba3 commit 8f55bcc

File tree

2 files changed

+50
-1
lines changed

2 files changed

+50
-1
lines changed

src/mapml/handlers/QueryHandler.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@ export var QueryHandler = L.Handler.extend({
1616
// work backwards in document order (top down)
1717
for (var l = layers.length - 1; l >= 0; l--) {
1818
var mapmlLayer = layers[l]._layer;
19-
if (layers[l].checked && mapmlLayer && mapmlLayer.queryable) {
19+
if (
20+
layers[l].checked &&
21+
mapmlLayer &&
22+
mapmlLayer.queryable &&
23+
!mapmlLayer._layerEl.hidden
24+
) {
2025
return mapmlLayer;
2126
}
2227
}

test/e2e/layers/queryLink.test.js

+44
Original file line numberDiff line numberDiff line change
@@ -328,5 +328,49 @@ test.describe('Playwright Query Link Tests', () => {
328328
expect(endBottomRight.vertical).toBe(-2238133.096266195);
329329
expect(endZoomLevel).toBe(6);
330330
});
331+
test("hidden layer is not queryable, hidden map-extent doesn't matter", async () => {
332+
const viewer = await page.locator('mapml-viewer');
333+
// query the layer when it's not hidden
334+
await page.click('mapml-viewer');
335+
let popupPane = await page.locator('.leaflet-popup-pane');
336+
let popups = await popupPane.evaluate((pane) => pane.childElementCount);
337+
// expect results
338+
expect(popups).toBe(1);
339+
const layer = await page.locator('layer-');
340+
// dismiss the popup
341+
await page.keyboard.press('Escape');
342+
// hide the layer
343+
await layer.evaluate((layer) => {
344+
layer.hidden = true;
345+
});
346+
await page.waitForTimeout(500);
347+
// query the layer when hidden
348+
// expect no results
349+
await page.click('mapml-viewer');
350+
popups = await popupPane.evaluate((pane) => pane.childElementCount);
351+
expect(popups).toBe(0);
352+
353+
// unhide the layer
354+
await layer.evaluate((layer) => {
355+
layer.hidden = false;
356+
});
357+
358+
let ext = await page.locator('map-extent');
359+
// hide the map-extent
360+
await ext.evaluate((ext) => {
361+
ext.hidden = true;
362+
});
363+
// query the layer when map-extent is hidden
364+
// expect no results
365+
await page.click('mapml-viewer');
366+
popups = await popupPane.evaluate((pane) => pane.childElementCount);
367+
// expect results - hidden map-extent has no effect on queryability
368+
expect(popups).toBe(1);
369+
370+
// unhide the map-extent
371+
await ext.evaluate((ext) => {
372+
ext.hidden = false;
373+
});
374+
});
331375
});
332376
});

0 commit comments

Comments
 (0)