From 7472ff9a99c1f73470544f03317eb9a9d5e3788f Mon Sep 17 00:00:00 2001 From: JaeSeoKim <48559454+JaeSeoKim@users.noreply.github.com> Date: Thu, 18 Jan 2024 21:53:54 +0900 Subject: [PATCH] :white_check_mark: Add E2E addMapClickEvent - #61 --- dev/src/pages/samples/addMapClickEvent.tsx | 36 +++++++++++++++++++ dev/src/pages/samples/sampleList.tsx | 5 +++ docs/docs/sample/map/addMapClickEvent.mdx | 33 ++--------------- .../__test__/addMapClickEvent.spec.ts | 30 ++++++++++++++++ 4 files changed, 74 insertions(+), 30 deletions(-) create mode 100644 dev/src/pages/samples/addMapClickEvent.tsx create mode 100644 packages/react-kakao-maps-sdk/__test__/addMapClickEvent.spec.ts diff --git a/dev/src/pages/samples/addMapClickEvent.tsx b/dev/src/pages/samples/addMapClickEvent.tsx new file mode 100644 index 00000000..336ae0c9 --- /dev/null +++ b/dev/src/pages/samples/addMapClickEvent.tsx @@ -0,0 +1,36 @@ +import { Map } from "react-kakao-maps-sdk" +import useKakaoLoader from "./useKakaoLoader" +import { useState } from "react" + +export default function AddMapClickEvent() { + useKakaoLoader() + const [result, setResult] = useState("") + + return ( + <> + { + const latlng = mouseEvent.latLng + setResult( + `클릭한 위치의 위도는 ${latlng.getLat()} 이고, 경도는 ${latlng.getLng()} 입니다`, + ) + }} + /> +

+ 지도를 클릭해주세요! +

+

{result}

+ + ) +} diff --git a/dev/src/pages/samples/sampleList.tsx b/dev/src/pages/samples/sampleList.tsx index 6b8e4edb..0f62286d 100644 --- a/dev/src/pages/samples/sampleList.tsx +++ b/dev/src/pages/samples/sampleList.tsx @@ -14,6 +14,7 @@ import ChangeOverlay1 from "./changeOverlay1" import ChangeOverlay2 from "./changeOverlay2" import SetBounds from "./setBounds" import MapRelayout from "./mapRelayout" +import AddMapClickEvent from "./addMapClickEvent" export const samples: RouteObject[] = [ { @@ -76,4 +77,8 @@ export const samples: RouteObject[] = [ path: "mapRelayout", element: , }, + { + path: "addMapClickEvent", + element: , + }, ] diff --git a/docs/docs/sample/map/addMapClickEvent.mdx b/docs/docs/sample/map/addMapClickEvent.mdx index ef6eb3fa..102d362a 100644 --- a/docs/docs/sample/map/addMapClickEvent.mdx +++ b/docs/docs/sample/map/addMapClickEvent.mdx @@ -7,33 +7,6 @@ sidebar_position: 15 > original docs : https://apis.map.kakao.com/web/sample/addMapClickEvent/ -```jsx live -function(){ - const Main = () => { - const [position, setPosition] = useState() - return ( - <> - setPosition({ - lat: mouseEvent.latLng.getLat(), - lng: mouseEvent.latLng.getLng(), - })} - > - - {position &&

{'클릭한 위치의 위도는 ' + position.lat + ' 이고, 경도는 ' + position.lng + ' 입니다'}

} - - ) - } - return (
) -} -``` +import codesource from "!!raw-loader!~samples/addMapClickEvent.tsx" + +{codesource} diff --git a/packages/react-kakao-maps-sdk/__test__/addMapClickEvent.spec.ts b/packages/react-kakao-maps-sdk/__test__/addMapClickEvent.spec.ts new file mode 100644 index 00000000..9e2f5287 --- /dev/null +++ b/packages/react-kakao-maps-sdk/__test__/addMapClickEvent.spec.ts @@ -0,0 +1,30 @@ +import { test, expect } from "@playwright/test" + +const getUrl = (id: string, isUpdateSanpShots: boolean = false) => + isUpdateSanpShots + ? `http://127.0.0.1:5252/samples/${id}.html` + : `/samples/${id}` + +test("ScreenShot 렌더링 결과 비교", async ({ page }, testInfo) => { + const url = getUrl( + "addMapClickEvent", + testInfo.config.updateSnapshots === "all", + ) + await page.goto(url, { waitUntil: "networkidle" }) + await page.waitForLoadState("networkidle") + await expect(page).toHaveScreenshot() + + const mapBoundingBox = await page.locator("#map").boundingBox() + await page.mouse.click(mapBoundingBox!.x, mapBoundingBox!.y) + await expect(page.locator("#result")).toHaveText( + "클릭한 위치의 위도는 33.452254813152855 이고, 경도는 126.5638559967347 입니다", + ) + + await page.mouse.click( + mapBoundingBox!.x + mapBoundingBox!.width / 2, + mapBoundingBox!.y + mapBoundingBox!.height / 2, + ) + await expect(page.locator("#result")).toHaveText( + "클릭한 위치의 위도는 33.450700761312206 이고, 경도는 126.57066121198349 입니다", + ) +})