feat(spreadsheet): 알약 줄 끝 연결 모두 해제(81-4)
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MPcuokNm1ZR2kqgGGDfaJA
This commit is contained in:
@@ -6,6 +6,7 @@ import {
|
||||
linkAreaCell,
|
||||
linkCommand,
|
||||
linksAt,
|
||||
unlinkAllCommand,
|
||||
} from "../../../A00_Common/spreadsheet/spreadsheet_link_set";
|
||||
import type { Command, Workbook } from "../../../A00_Common/spreadsheet/spreadsheet_types";
|
||||
|
||||
@@ -152,4 +153,20 @@ eq(
|
||||
linkHues(["철근|ton"]).get("철근|ton"),
|
||||
);
|
||||
|
||||
// unlinkAllCommand(81-4) — 여러 시트에 걸친 키를 한꺼번에 뺌 · 되돌리기 한 번
|
||||
b = book();
|
||||
undo = run(b, unlinkAllCommand(b, ["깔기|㎡", "치기|㎥"]));
|
||||
eq("모두 해제 — 두 시트 다 빠짐(연결 칸 없어짐)", links(b), [null, null]);
|
||||
run(b, undo);
|
||||
eq("모두 해제 되돌림", links(b), links(book()));
|
||||
|
||||
b = book();
|
||||
run(b, unlinkAllCommand(b, ["깔기|㎡"]));
|
||||
eq("모두 해제 — 한 시트만 바뀌면 시트통째 하나", links(b), [
|
||||
null,
|
||||
[{ 키: "치기|㎥", 이름: "치기", 칸: "C3" }],
|
||||
]);
|
||||
|
||||
eq("모두 해제 — 바뀔 것 없음 = null", unlinkAllCommand(book(), ["없음"]), null);
|
||||
|
||||
console.log(JSON.stringify({ pass, fail: failures.length, failures }));
|
||||
|
||||
@@ -55,7 +55,7 @@ def test_setLink_순수_길():
|
||||
assert run.stdout.strip(), run.stderr
|
||||
result = json.loads(run.stdout)
|
||||
assert result["fail"] == 0, result["failures"]
|
||||
assert result["pass"] == 29
|
||||
assert result["pass"] == 33
|
||||
|
||||
|
||||
def test_손잡이_setLink_몸():
|
||||
|
||||
Reference in New Issue
Block a user