feat: Plus und Minus Icons

This commit is contained in:
ISA
2025-09-16 13:47:11 +02:00
parent 2e5acf9327
commit e520207526
14 changed files with 81 additions and 172 deletions

View File

@@ -23,4 +23,4 @@ NEXT_PUBLIC_USE_MOCKS=true
# z.B. http://10.10.0.13/xyz/index.aspx -> basePath in config.json auf /xyz setzen # z.B. http://10.10.0.13/xyz/index.aspx -> basePath in config.json auf /xyz setzen
# basePath wird jetzt in public/config.json gepflegt # basePath wird jetzt in public/config.json gepflegt
# App-Versionsnummer # App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.1.376 NEXT_PUBLIC_APP_VERSION=1.1.377

View File

@@ -24,4 +24,4 @@ NEXT_PUBLIC_USE_MOCKS=false
# basePath wird jetzt in public/config.json gepflegt # basePath wird jetzt in public/config.json gepflegt
# App-Versionsnummer # App-Versionsnummer
NEXT_PUBLIC_APP_VERSION=1.1.376 NEXT_PUBLIC_APP_VERSION=1.1.377

13
.gitignore vendored
View File

@@ -36,17 +36,22 @@ docs.zip
/__mocks__/ /__mocks__/
/__tests__/ /__tests__/
# --- Playwright artifacts & selective test tracking --- # --- Playwright artifacts & test selection ---
# Ignore Playwright output folders and run metadata # Ignore Playwright output folders and run metadata
/test-results/ /test-results/
/playwright-report/ /playwright-report/
/.last-run.json /.last-run.json
# Optional: ignore JUnit report artifacts if not needed in VCS # Ignore any Playwright traces/screenshots/videos if configured elsewhere
/traces/
/screenshots/
/videos/
# Ignore JUnit report artifacts (not used currently)
/reports/junit/ /reports/junit/
# Ignore all Playwright tests by default, keep only the main spec # Track only spec files under playwright/tests; ignore everything else
/playwright/tests/** /playwright/tests/**
!/playwright/tests/mapcomponent.spec.js !/playwright/tests/**/*.spec.js
!/playwright/tests/**/*.spec.ts
# Ignore Playwright cache if present # Ignore Playwright cache if present
/playwright/.cache/ /playwright/.cache/

4
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{ {
"name": "nodemap", "name": "nodemap",
"version": "1.1.376", "version": "1.1.377",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "nodemap", "name": "nodemap",
"version": "1.1.376", "version": "1.1.377",
"dependencies": { "dependencies": {
"@emotion/react": "^11.13.3", "@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0", "@emotion/styled": "^11.13.0",

View File

@@ -1,6 +1,6 @@
{ {
"name": "nodemap", "name": "nodemap",
"version": "1.1.376", "version": "1.1.377",
"dependencies": { "dependencies": {
"@emotion/react": "^11.13.3", "@emotion/react": "^11.13.3",
"@emotion/styled": "^11.13.0", "@emotion/styled": "^11.13.0",

View File

@@ -10,12 +10,14 @@ module.exports = defineConfig({
expect: { timeout: 10_000 }, expect: { timeout: 10_000 },
fullyParallel: true, fullyParallel: true,
retries: process.env.CI ? 2 : 0, retries: process.env.CI ? 2 : 0,
reporter: [["list"], ["junit", { outputFile: "reports/junit/playwright.xml" }]], // Keep console-friendly reporter only; no JUnit output since it's not used currently
reporter: [["list"]],
use: { use: {
baseURL: "http://localhost:3000", baseURL: "http://localhost:3000",
trace: "on-first-retry", // Disable artifact generation locally to avoid creating files
video: "retain-on-failure", trace: "off",
screenshot: "only-on-failure", video: "off",
screenshot: "off",
headless: true, headless: true,
}, },
projects: [ projects: [

View File

@@ -1,6 +1,6 @@
<testsuites id="" name="" tests="3" failures="3" skipped="0" errors="0" time="14.492743999999998"> <testsuites id="" name="" tests="3" failures="1" skipped="0" errors="0" time="14.158237000000002">
<testsuite name="mapcomponent.spec.js" timestamp="2025-09-16T10:34:03.733Z" hostname="chromium" tests="3" failures="3" skipped="0" time="38.186" errors="0"> <testsuite name="mapcomponent.spec.js" timestamp="2025-09-16T11:33:24.223Z" hostname="chromium" tests="3" failures="1" skipped="0" time="18.567" errors="0">
<testcase name="MapComponent" classname="mapcomponent.spec.js" time="13.365"> <testcase name="MapComponent" classname="mapcomponent.spec.js" time="13.041">
<failure message="mapcomponent.spec.js:162:5 MapComponent" type="FAILURE"> <failure message="mapcomponent.spec.js:162:5 MapComponent" type="FAILURE">
<![CDATA[ [chromium] mapcomponent.spec.js:162:5 MapComponent ─────────────────────────────────────────── <![CDATA[ [chromium] mapcomponent.spec.js:162:5 MapComponent ───────────────────────────────────────────
@@ -56,99 +56,9 @@
]]> ]]>
</system-out> </system-out>
</testcase> </testcase>
<testcase name="mouse wheel zoom updates mapZoom" classname="mapcomponent.spec.js" time="12.426"> <testcase name="mouse wheel zoom updates mapZoom" classname="mapcomponent.spec.js" time="2.873">
<failure message="mapcomponent.spec.js:239:5 mouse wheel zoom updates mapZoom" type="FAILURE">
<![CDATA[ [chromium] mapcomponent.spec.js:239:5 mouse wheel zoom updates mapZoom ───────────────────────
TimeoutError: page.waitForFunction: Timeout 10000ms exceeded.
82 | */
83 | async function waitForZoomChange(page, previousZoom, compareFn) {
> 84 | await page.waitForFunction(
| ^
85 | (prev, cmp) => {
86 | const v = localStorage.getItem("mapZoom");
87 | if (!v) return false;
at waitForZoomChange (C:\Users\isa.LTW\Desktop\15.09.2025\NodeMap\15.09.2025 NodeMap V1.1.350\playwright\tests\mapcomponent.spec.js:84:14)
at C:\Users\isa.LTW\Desktop\15.09.2025\NodeMap\15.09.2025 NodeMap V1.1.350\playwright\tests\mapcomponent.spec.js:261:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
..\..\test-results\mapcomponent-mouse-wheel-zoom-updates-mapZoom-chromium\test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: video (video/webm) ──────────────────────────────────────────────────────────────
..\..\test-results\mapcomponent-mouse-wheel-zoom-updates-mapZoom-chromium\video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: ..\..\test-results\mapcomponent-mouse-wheel-zoom-updates-mapZoom-chromium\error-context.md
]]>
</failure>
<system-out>
<![CDATA[[localStorage snapshot] {
mapZoom: [32m'10'[39m,
mapCenter: [32m'[53.23938294961826,8.21434020996094]'[39m,
showAppInfoCard: [32m'false'[39m,
showCoordinateInput: [32m'false'[39m,
showLayersPanel: [32m'false'[39m,
showAreaDropdown: [32m'false'[39m,
currentMapId: [32m'12'[39m,
currentUserId: [32m'484'[39m
}
[[ATTACHMENT|..\..\test-results\mapcomponent-mouse-wheel-zoom-updates-mapZoom-chromium\test-failed-1.png]]
[[ATTACHMENT|..\..\test-results\mapcomponent-mouse-wheel-zoom-updates-mapZoom-chromium\video.webm]]
[[ATTACHMENT|..\..\test-results\mapcomponent-mouse-wheel-zoom-updates-mapZoom-chromium\error-context.md]]
]]>
</system-out>
</testcase> </testcase>
<testcase name="zoom control buttons update mapZoom" classname="mapcomponent.spec.js" time="12.395"> <testcase name="zoom control buttons update mapZoom" classname="mapcomponent.spec.js" time="2.653">
<failure message="mapcomponent.spec.js:272:5 zoom control buttons update mapZoom" type="FAILURE">
<![CDATA[ [chromium] mapcomponent.spec.js:272:5 zoom control buttons update mapZoom ────────────────────
TimeoutError: page.waitForFunction: Timeout 10000ms exceeded.
82 | */
83 | async function waitForZoomChange(page, previousZoom, compareFn) {
> 84 | await page.waitForFunction(
| ^
85 | (prev, cmp) => {
86 | const v = localStorage.getItem("mapZoom");
87 | if (!v) return false;
at waitForZoomChange (C:\Users\isa.LTW\Desktop\15.09.2025\NodeMap\15.09.2025 NodeMap V1.1.350\playwright\tests\mapcomponent.spec.js:84:14)
at C:\Users\isa.LTW\Desktop\15.09.2025\NodeMap\15.09.2025 NodeMap V1.1.350\playwright\tests\mapcomponent.spec.js:294:9
attachment #1: screenshot (image/png) ──────────────────────────────────────────────────────────
..\..\test-results\mapcomponent-zoom-control-buttons-update-mapZoom-chromium\test-failed-1.png
────────────────────────────────────────────────────────────────────────────────────────────────
attachment #3: video (video/webm) ──────────────────────────────────────────────────────────────
..\..\test-results\mapcomponent-zoom-control-buttons-update-mapZoom-chromium\video.webm
────────────────────────────────────────────────────────────────────────────────────────────────
Error Context: ..\..\test-results\mapcomponent-zoom-control-buttons-update-mapZoom-chromium\error-context.md
]]>
</failure>
<system-out>
<![CDATA[[localStorage snapshot] {
mapZoom: [32m'10'[39m,
mapCenter: [32m'[53.23938294961826,8.21434020996094]'[39m,
showAppInfoCard: [32m'false'[39m,
showCoordinateInput: [32m'false'[39m,
showLayersPanel: [32m'false'[39m,
showAreaDropdown: [32m'false'[39m,
currentMapId: [32m'12'[39m,
currentUserId: [32m'484'[39m
}
[[ATTACHMENT|..\..\test-results\mapcomponent-zoom-control-buttons-update-mapZoom-chromium\test-failed-1.png]]
[[ATTACHMENT|..\..\test-results\mapcomponent-zoom-control-buttons-update-mapZoom-chromium\video.webm]]
[[ATTACHMENT|..\..\test-results\mapcomponent-zoom-control-buttons-update-mapZoom-chromium\error-context.md]]
]]>
</system-out>
</testcase> </testcase>
</testsuite> </testsuite>
</testsuites> </testsuites>

View File

@@ -1,8 +1,6 @@
{ {
"status": "failed", "status": "failed",
"failedTests": [ "failedTests": [
"6232baea8c2400610a3b-ecc9849a86ce59ad8482", "6232baea8c2400610a3b-ecc9849a86ce59ad8482"
"6232baea8c2400610a3b-3d4c054f3ad171ada4e9",
"6232baea8c2400610a3b-691f069061d2866a0187"
] ]
} }

View File

@@ -6,30 +6,59 @@
- generic [ref=e4]: - generic [ref=e4]:
- generic: - generic:
- generic: - generic:
- generic [ref=e5]: - button "Marker" [ref=e5] [cursor=pointer]
- button "Zoom in" [ref=e6] [cursor=pointer]: - button "Marker" [ref=e6] [cursor=pointer]
- generic [ref=e7] [cursor=pointer]: + - button "Marker" [ref=e7] [cursor=pointer]
- button "Zoom out" [ref=e8] [cursor=pointer]: - button "Marker" [ref=e8] [cursor=pointer]
- generic [ref=e9] [cursor=pointer]: - button "Marker" [ref=e9] [cursor=pointer]
- generic [ref=e10]: - button "Marker" [ref=e10] [cursor=pointer]
- link "Leaflet" [ref=e11] [cursor=pointer]: - button "Marker" [ref=e11] [cursor=pointer]
- button "Marker" [ref=e12] [cursor=pointer]
- button "Marker" [ref=e13] [cursor=pointer]
- button "Marker" [ref=e14] [cursor=pointer]
- button "Marker" [ref=e15] [cursor=pointer]
- button "Marker" [ref=e16] [cursor=pointer]
- button "Marker" [ref=e17] [cursor=pointer]
- button "Marker" [ref=e18] [cursor=pointer]
- button "Marker" [ref=e19] [cursor=pointer]
- button "Marker" [ref=e20] [cursor=pointer]
- button "Marker" [ref=e21] [cursor=pointer]
- button "Marker" [ref=e22] [cursor=pointer]
- button "Marker" [ref=e23] [cursor=pointer]
- button "Marker" [ref=e24] [cursor=pointer]
- button "Marker" [ref=e25] [cursor=pointer]
- button "Marker" [ref=e26] [cursor=pointer]
- button "Marker" [ref=e27] [cursor=pointer]
- button "Marker" [ref=e28] [cursor=pointer]
- button "Marker" [ref=e29] [cursor=pointer]
- button "Marker" [ref=e30] [cursor=pointer]
- button "Marker" [ref=e31] [cursor=pointer]
- button "Marker" [ref=e32] [cursor=pointer]
- button "Marker" [ref=e33] [cursor=pointer]
- generic [ref=e34]:
- link "Leaflet" [ref=e35] [cursor=pointer]:
- /url: https://leafletjs.com - /url: https://leafletjs.com
- img [ref=e12] [cursor=pointer] - img [ref=e36] [cursor=pointer]
- text: Leaflet - text: Leaflet
- generic [ref=e16]: "|" - generic [ref=e40]: "|"
- text: © OpenStreetMap contributors - text: © OpenStreetMap contributors
- generic [ref=e17]: - generic [ref=e41]:
- button "Marker" [ref=e18] [cursor=pointer]: - button "Marker" [ref=e42] [cursor=pointer]:
- img [ref=e19] [cursor=pointer] - img [ref=e43] [cursor=pointer]
- button "Koordinatensuche einblenden" [ref=e22] [cursor=pointer]: - button "Koordinatensuche einblenden" [ref=e46] [cursor=pointer]:
- img [ref=e23] [cursor=pointer] - img [ref=e47] [cursor=pointer]
- button "Bearbeitungsmodus aktivieren" [ref=e25] [cursor=pointer]: - button "Bearbeitungsmodus aktivieren" [ref=e49] [cursor=pointer]:
- img [ref=e26] [cursor=pointer] - img [ref=e50] [cursor=pointer]
- button "Karte auf Standardansicht" [ref=e28] [cursor=pointer]: - button "Karte auf Standardansicht" [ref=e52] [cursor=pointer]:
- img [ref=e29] [cursor=pointer] - img [ref=e53] [cursor=pointer]
- button "Layer-Panel einblenden" [active] [ref=e31] [cursor=pointer]: - button "Layer-Panel einblenden" [active] [ref=e55] [cursor=pointer]:
- img [ref=e32] [cursor=pointer] - img [ref=e56] [cursor=pointer]
- button "Info einblenden" [ref=e34] [cursor=pointer]: - button "Info einblenden" [ref=e58] [cursor=pointer]:
- img [ref=e35] [cursor=pointer] - img [ref=e59] [cursor=pointer]
- alert [ref=e37] - generic [ref=e61]:
- button "Zoom in" [ref=e62] [cursor=pointer]:
- img [ref=e63] [cursor=pointer]
- button "Zoom out" [ref=e65] [cursor=pointer]:
- img [ref=e66] [cursor=pointer]
- alert [ref=e67]
``` ```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

@@ -1,35 +0,0 @@
# Page snapshot
```yaml
- generic [active] [ref=e1]:
- generic [ref=e3]:
- generic [ref=e4]:
- generic:
- generic:
- generic [ref=e5]:
- button "Zoom in" [ref=e6] [cursor=pointer]:
- generic [ref=e7] [cursor=pointer]: +
- button "Zoom out" [ref=e8] [cursor=pointer]:
- generic [ref=e9] [cursor=pointer]:
- generic [ref=e10]:
- link "Leaflet" [ref=e11] [cursor=pointer]:
- /url: https://leafletjs.com
- img [ref=e12] [cursor=pointer]
- text: Leaflet
- generic [ref=e16]: "|"
- text: © OpenStreetMap contributors
- generic [ref=e17]:
- button "Marker" [ref=e18] [cursor=pointer]:
- img [ref=e19] [cursor=pointer]
- button "Koordinatensuche einblenden" [ref=e22] [cursor=pointer]:
- img [ref=e23] [cursor=pointer]
- button "Bearbeitungsmodus aktivieren" [ref=e25] [cursor=pointer]:
- img [ref=e26] [cursor=pointer]
- button "Karte auf Standardansicht" [ref=e28] [cursor=pointer]:
- img [ref=e29] [cursor=pointer]
- button "Layer-Panel einblenden" [ref=e31] [cursor=pointer]:
- img [ref=e32] [cursor=pointer]
- button "Info einblenden" [ref=e34] [cursor=pointer]:
- img [ref=e35] [cursor=pointer]
- alert [ref=e37]
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 MiB