Merge remote-tracking branch 'origin/dev' into main_laptop_1
This commit is contained in:
@@ -35,6 +35,8 @@ const requestAnimationFrame = (f: () => void) => setTimeout(f, 0);
|
||||
const API_BASE_URL = "";
|
||||
(globalThis as any).fetch = async () => ({ ok: true, json: async () => ({ key: "k" }) });
|
||||
const store: Record<string, string> = {};
|
||||
(globalThis as any).addEventListener = () => undefined;
|
||||
(globalThis as any).removeEventListener = () => undefined;
|
||||
(globalThis as any).localStorage = { getItem: (k: string) => store[k] ?? null };
|
||||
const LOG: any = { levels: [], centers: [], labels: [] };
|
||||
class LatLng { lat: number; lng: number;
|
||||
@@ -62,7 +64,7 @@ const m = editMap({ hint: "h", onMove: () => undefined });
|
||||
m.set([{ key: "0", name: "지점 1", lon: 127.9, lat: 35.68, movable: true, color: "#123456" },
|
||||
{ key: "1", name: "지점 2", lon: 127.8, lat: 35.6, movable: true }], []);
|
||||
await new Promise((r) => setTimeout(r, 20));
|
||||
const ev = (o: any) => ({ preventDefault() {}, stopPropagation() {}, ctrlKey: false, ...o });
|
||||
const ev = (o: any) => ({ preventDefault() {}, stopPropagation() {}, ctrlKey: false, pointerType: "mouse", ...o });
|
||||
const wheel = (deltaY: number, t: number) =>
|
||||
handlers.wheel(ev({ deltaY, clientX: 110, clientY: 70, timeStamp: t }));
|
||||
wheel(-100, 1000); // 기본 = 밂 → 앞으로 = 확대(단 −1)
|
||||
@@ -76,8 +78,21 @@ handlers.pointerdown(ev({ button: 1, pointerId: 2, clientX: 50, clientY: 50 }));
|
||||
handlers.pointermove(ev({ pointerId: 2, buttons: 4, clientX: 60, clientY: 45 }));
|
||||
handlers.pointerup(ev({ pointerId: 2 }));
|
||||
handlers.pointermove(ev({ pointerId: 2, buttons: 4, clientX: 90, clientY: 90 })); // 놓은 뒤 = 안 옮김
|
||||
const before = LOG.centers.length;
|
||||
handlers.pointerdown(ev({ button: 2, pointerId: 3, clientX: 50, clientY: 50 })); // 오른쪽 아직 옮기기 아님
|
||||
handlers.pointermove(ev({ pointerId: 3, buttons: 2, clientX: 60, clientY: 60 }));
|
||||
const rightOff = LOG.centers.length - before;
|
||||
store["aislo:pref:input-prefs"] = JSON.stringify({ wheelZoom: "pull", panButton: "right" });
|
||||
handlers.pointerdown(ev({ button: 2, pointerId: 4, clientX: 50, clientY: 50 })); // 오른쪽 = 옮기기
|
||||
handlers.pointermove(ev({ pointerId: 4, buttons: 2, clientX: 70, clientY: 40 }));
|
||||
handlers.pointerup(ev({ pointerId: 4 }));
|
||||
handlers.pointerdown(ev({ button: 1, pointerId: 5, clientX: 0, clientY: 0 })); // 가운데는 늘
|
||||
handlers.pointermove(ev({ pointerId: 5, buttons: 4, clientX: 3, clientY: 3 }));
|
||||
handlers.pointerup(ev({ pointerId: 5 }));
|
||||
handlers.pointerdown(ev({ button: 0, pointerId: 6, clientX: 0, clientY: 0 })); // 왼쪽 = 카카오 몫
|
||||
handlers.pointermove(ev({ pointerId: 6, buttons: 1, clientX: 9, clientY: 9 }));
|
||||
const [first, second] = LOG.labels;
|
||||
console.log(JSON.stringify({ levels: LOG.levels, centers: LOG.centers,
|
||||
console.log(JSON.stringify({ levels: LOG.levels, centers: LOG.centers, rightOff,
|
||||
colored: [first.style.background, first.classList.list], plain: second.style.background ?? null,
|
||||
colors: Array.from({ length: 8 }, (_, i) => pointColor(i)) }));
|
||||
"""
|
||||
@@ -103,7 +118,9 @@ def test_휠_설정_방향_가운데_끌기_지점_색():
|
||||
# 마우스 자리 = 상자 안 (100, 50) 고정 · 단마다 한 번
|
||||
assert got["levels"] == [[6, 100, 50], [7, 100, 50], [6, 100, 50]]
|
||||
# 가운데 끌기 (+10, −5) = 중심을 반대로 → 상자 가운데 (200, 150) − 민 만큼
|
||||
assert got["centers"] == [[190, 155]]
|
||||
# 설정 가운데(기본) 일 때 오른쪽 누름 = 안 옮김 · 오른쪽 설정 = (+20, −10) · 가운데 늘 (+3, +3) · 왼쪽 = 안 옮김
|
||||
assert got["rightOff"] == 0
|
||||
assert got["centers"] == [[190, 155], [180, 160], [197, 147]]
|
||||
assert got["colored"] == ["#123456", ["is-colored"]] and got["plain"] is None
|
||||
# 여섯 색 차례 돌림 · 일곱째 = 첫째
|
||||
assert len(set(got["colors"][:6])) == 6 and got["colors"][6:] == got["colors"][:2]
|
||||
|
||||
Reference in New Issue
Block a user