mirror of
https://github.com/maputnik/editor.git
synced 2026-04-02 15:40:15 +00:00
## Launch Checklist When clicking the map to create a popup and then clicking on the map again without closing the popup something breaks in react. This PR fixes it. Steps to reproduce: 1. Click on the map 2. Click on the map but not on the popup The following malformed popup appears: Before: <img width="610" height="626" alt="image" src="https://github.com/user-attachments/assets/99cbdf9a-0b3c-436d-ab13-f219ee3c6e75" /> After - popup looks good. <img width="610" height="626" alt="image" src="https://github.com/user-attachments/assets/6b379c0d-cbbf-40ed-916d-3cc10eaf4410" /> I couldn't make cypress reproduce the exact scenario, but I added some basic tests for popups. - [x] Briefly describe the changes in this PR. - [x] Include before/after visuals or gifs if this PR includes visual changes. - [x] Write tests for all new functionality. - [x] Add an entry to `CHANGELOG.md` under the `## main` section. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
52 lines
1.6 KiB
TypeScript
52 lines
1.6 KiB
TypeScript
import { MaputnikDriver } from "./maputnik-driver";
|
|
|
|
describe("map", () => {
|
|
const { beforeAndAfter, get, when, then } = new MaputnikDriver();
|
|
beforeAndAfter();
|
|
describe("zoom level", () => {
|
|
it("via url", () => {
|
|
const zoomLevel = 12.37;
|
|
when.setStyle("geojson", zoomLevel);
|
|
then(get.elementByTestId("maplibre:ctrl-zoom")).shouldBeVisible();
|
|
then(get.elementByTestId("maplibre:ctrl-zoom")).shouldContainText(
|
|
"Zoom: " + zoomLevel
|
|
);
|
|
});
|
|
|
|
it("via map controls", () => {
|
|
const zoomLevel = 12.37;
|
|
when.setStyle("geojson", zoomLevel);
|
|
then(get.elementByTestId("maplibre:ctrl-zoom")).shouldBeVisible();
|
|
when.clickZoomIn();
|
|
then(get.elementByTestId("maplibre:ctrl-zoom")).shouldContainText(
|
|
"Zoom: " + (zoomLevel + 1)
|
|
);
|
|
});
|
|
});
|
|
|
|
describe("search", () => {
|
|
it('should exist', () => {
|
|
then(get.searchControl()).shouldBeVisible();
|
|
});
|
|
});
|
|
|
|
describe("popup", () => {
|
|
beforeEach(() => {
|
|
when.setStyle("rectangles");
|
|
})
|
|
it("should open on feature click", () => {
|
|
when.clickCenter("maplibre:map");
|
|
then(get.elementByTestId("feature-layer-popup")).shouldBeVisible();
|
|
});
|
|
|
|
it("should open a second feature after closing popup", () => {
|
|
when.clickCenter("maplibre:map");
|
|
then(get.elementByTestId("feature-layer-popup")).shouldBeVisible();
|
|
when.closePopup();
|
|
then(get.elementByTestId("feature-layer-popup")).shouldNotExist();
|
|
when.clickCenter("maplibre:map");
|
|
then(get.elementByTestId("feature-layer-popup")).shouldBeVisible();
|
|
});
|
|
});
|
|
});
|