diff --git a/M02_MasterTemplete/M02_MasterTemplete_UI_Page.ts b/M02_MasterTemplete/M02_MasterTemplete_UI_Page.ts index b41320543..cfa2c9eeb 100644 --- a/M02_MasterTemplete/M02_MasterTemplete_UI_Page.ts +++ b/M02_MasterTemplete/M02_MasterTemplete_UI_Page.ts @@ -97,7 +97,10 @@ export async function renderM02MasterTemplate(root: HTMLElement): Promise void main.openTable(layer, item.열), settle: () => main.settle(), - onChanged: (colId) => main.openTable(layer, colId, true), + // 나무가 바뀜(새 항목 · 복사 생성 · 붙여넣기 · 지우기 · 이름 · 옮기기) — 집계표 + 좌측 하위 열 줄 · 번호 + onChanged: async (colId) => { + await Promise.all([main.openTable(layer, colId, true), side.refresh()]); + }, }); const go = async (next: Root, nextOwner: string | null, open: OpenTarget): Promise => { // 같은 주소 안 이동은 머리 가드가 안 물음 — 저장 안 한 고침은 여기서 diff --git a/resources/tester/test_m02_labor_tree.py b/resources/tester/test_m02_labor_tree.py index e77d15a6d..50f51fcad 100644 --- a/resources/tester/test_m02_labor_tree.py +++ b/resources/tester/test_m02_labor_tree.py @@ -53,3 +53,13 @@ def test_층_단추는_구조물_조합_한_벌(): page = _text("M02_MasterTemplete_UI_Page.ts") assert page.count('layerBar("') == 1 # 구조물 조합 줄 아래 하나 assert 'layerBar("구조물조합", tree.add, () => void main.openTable(layer)),' in page + + +def test_나무가_바뀌면_좌측_하위_열_줄도_다시_받음(): + """39-8 H1 — 새 항목 · 복사 생성 · 붙여넣기 · 지우기 · 이름 · 옮기기 = 나무 `apply` → + `onChanged` 한 길 · 집계표만 다시 열면 좌측 하위 줄이 새로고침 전까지 안 따라옴.""" + page = _text("M02_MasterTemplete_UI_Page.ts") + changed = page.split("onChanged: async (colId) => {")[1].split("},")[0] + assert "main.openTable(layer, colId, true)" in changed and "side.refresh()" in changed + panel = _text("M02_MasterTemplete_TreePanel.ts") + assert panel.count("await opt.onChanged(") == 1 # 나무 고침은 모두 apply 한 곳을 거침