feat(spreadsheet): 2단계 — 엑셀 단축키 전수 표(데이터 파일)
키 53 개(이동·고르기·편집·복사붙이기·찾기·메모·서식·시트·범위밖) — 뜻·동작 이름·지금 상태(됨·안됨·범위밖)·자리를 적음. `spreadsheet_keys.ts`(D) 를 오늘 기준으로 읽고 매김. 안 된 것 19 개(Ctrl+B/I/U·Ctrl+1 은 오늘 대화상자로 됨 처리·F4 절대참조 돌리기·Alt+= 자동합계· Ctrl+-/Ctrl+Shift++ 칸 넣기지우기·Ctrl+9/0 숨김·Ctrl+;/Shift+; 날짜시간·Ctrl+PageUp/Down 시트 이동·Ctrl+클릭 여러범위·테두리 두 개·Shift+F11 새 시트) — 잇는 법은 파일 머리에. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K7JS47SacjPxZ718QsZKyr
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
/* =============================================================================
|
||||
* test_stage2_shortcuts.ts — spreadsheet_shortcuts 시험. 돌리기: node --experimental-strip-types <이 파일>
|
||||
* ========================================================================== */
|
||||
|
||||
import {
|
||||
findShortcut,
|
||||
SHORTCUTS,
|
||||
unimplemented,
|
||||
} from "../../../A00_Common/spreadsheet/spreadsheet_shortcuts.ts";
|
||||
import { assertEqual } from "./test_stage2_helpers.ts";
|
||||
|
||||
assertEqual(SHORTCUTS.length > 40, true, "충분히 전수(40 개 넘음)");
|
||||
|
||||
// 브레인이 콕 집은 키가 다 있는지
|
||||
const 요청키 = [
|
||||
"Ctrl+B",
|
||||
"Ctrl+I",
|
||||
"Ctrl+U",
|
||||
"Ctrl+1",
|
||||
"Ctrl+D",
|
||||
"Ctrl+R",
|
||||
"Ctrl+;",
|
||||
"Shift+;", // 표기는 Ctrl+Shift+; — 부분 문자열로도 찾아짐 확인
|
||||
"Alt+Enter",
|
||||
"Ctrl+-",
|
||||
"Ctrl+Shift++",
|
||||
"Ctrl+Space",
|
||||
"Shift+Space",
|
||||
"F4",
|
||||
"Ctrl+Z",
|
||||
"Ctrl+Y",
|
||||
"Ctrl+F",
|
||||
"Ctrl+H",
|
||||
"Home",
|
||||
"Ctrl+Home",
|
||||
"Ctrl+End",
|
||||
"Alt+=",
|
||||
];
|
||||
for (const k of 요청키) {
|
||||
if (k === "Shift+;") continue; // 실제 표기는 Ctrl+Shift+; 하나로 묶임 — 아래서 따로 확인
|
||||
assertEqual(findShortcut(k) !== null, true, `요청 키 있음: ${k}`);
|
||||
}
|
||||
assertEqual(findShortcut("Ctrl+Shift+;") !== null, true, "Ctrl+Shift+; 있음");
|
||||
|
||||
assertEqual(findShortcut("Ctrl+B")?.동작, "toggleBold", "Ctrl+B 동작 이름");
|
||||
assertEqual(findShortcut("ctrl+b")?.동작, "toggleBold", "findShortcut 대소문자 안 가림");
|
||||
assertEqual(findShortcut("Ctrl+없는키"), null, "없는 키는 null");
|
||||
|
||||
const missing = unimplemented();
|
||||
assertEqual(missing.length > 0, true, "안 된 것 목록이 있음");
|
||||
assertEqual(
|
||||
missing.every((s) => s.동작 !== "—" && s.자리.length > 0),
|
||||
true,
|
||||
"안 된 것도 동작 이름 · 만들 자리가 다 있음",
|
||||
);
|
||||
assertEqual(
|
||||
SHORTCUTS.filter((s) => s.상태 === "범위밖").every((s) => s.자리.length > 0),
|
||||
true,
|
||||
"범위밖도 왜 안 하는지 적혀 있음",
|
||||
);
|
||||
|
||||
console.log(`안 된 것 ${missing.length} 개: ${missing.map((s) => s.키).join(" · ")}`);
|
||||
|
||||
if (process.exitCode) process.exit(process.exitCode);
|
||||
console.log("spreadsheet_shortcuts 시험 끝");
|
||||
Reference in New Issue
Block a user