Skip to content

Commit

Permalink
No query for hidden layer (#909)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
yhy0217 authored Nov 15, 2023
1 parent 5150ba3 commit 8f55bcc
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/mapml/handlers/QueryHandler.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,12 @@ export var QueryHandler = L.Handler.extend({
// work backwards in document order (top down)
for (var l = layers.length - 1; l >= 0; l--) {
var mapmlLayer = layers[l]._layer;
if (layers[l].checked && mapmlLayer && mapmlLayer.queryable) {
if (
layers[l].checked &&
mapmlLayer &&
mapmlLayer.queryable &&
!mapmlLayer._layerEl.hidden
) {
return mapmlLayer;
}
}
Expand Down
44 changes: 44 additions & 0 deletions test/e2e/layers/queryLink.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -328,5 +328,49 @@ test.describe('Playwright Query Link Tests', () => {
expect(endBottomRight.vertical).toBe(-2238133.096266195);
expect(endZoomLevel).toBe(6);
});
test("hidden layer is not queryable, hidden map-extent doesn't matter", async () => {
const viewer = await page.locator('mapml-viewer');
// query the layer when it's not hidden
await page.click('mapml-viewer');
let popupPane = await page.locator('.leaflet-popup-pane');
let popups = await popupPane.evaluate((pane) => pane.childElementCount);
// expect results
expect(popups).toBe(1);
const layer = await page.locator('layer-');
// dismiss the popup
await page.keyboard.press('Escape');
// hide the layer
await layer.evaluate((layer) => {
layer.hidden = true;
});
await page.waitForTimeout(500);
// query the layer when hidden
// expect no results
await page.click('mapml-viewer');
popups = await popupPane.evaluate((pane) => pane.childElementCount);
expect(popups).toBe(0);

// unhide the layer
await layer.evaluate((layer) => {
layer.hidden = false;
});

let ext = await page.locator('map-extent');
// hide the map-extent
await ext.evaluate((ext) => {
ext.hidden = true;
});
// query the layer when map-extent is hidden
// expect no results
await page.click('mapml-viewer');
popups = await popupPane.evaluate((pane) => pane.childElementCount);
// expect results - hidden map-extent has no effect on queryability
expect(popups).toBe(1);

// unhide the map-extent
await ext.evaluate((ext) => {
ext.hidden = false;
});
});
});
});

0 comments on commit 8f55bcc

Please sign in to comment.