From 603bb623187ec03ae3e981148bb7fde16b75827b Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Mon, 24 Aug 2026 02:05:02 +0000 Subject: [PATCH 1/4] =?UTF-8?q?GroupModal=20=EB=B0=8F=20EditEdgeModal?= =?UTF-8?q?=EC=9D=98=20=EC=A4=91=EB=B3=B5=20=ED=99=95=EC=9D=B8=EC=B0=BD=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .jules/palette.md | 3 +++ frontend/src/App.coverage.test.tsx | 1 + frontend/src/components/modals/EditEdgeModal.tsx | 1 - frontend/src/components/modals/GroupModal.tsx | 1 - frontend/src/components/modals/ModalCoverage.test.tsx | 4 ---- 5 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.jules/palette.md b/.jules/palette.md index bd0f73248..80cfcfe2d 100644 --- a/.jules/palette.md +++ b/.jules/palette.md @@ -57,3 +57,6 @@ ## 2026-07-30 - Add window.confirm for destructive actions **Learning:** Destructive actions like deleting groups and edge relationships previously occurred immediately without user confirmation. **Action:** Always wrap delete operations with window.confirm() dialogs and ensure corresponding tests successfully mock window.confirm. +## 2025-02-23 - 그룹 및 관계 삭제 시 중복 확인창 제거 +**Learning:** 모달창 내부의 `window.confirm`과 부모 컴포넌트의 핸들러에 있는 `window.confirm`이 중복으로 발생하여 사용자에게 두 번의 확인을 요구하는 불편한 UX 문제가 있었습니다. +**Action:** 부모 컴포넌트에 있는 상세한 설명의 확인창만 남기고 `GroupModal.tsx`와 `EditEdgeModal.tsx` 내의 불필요한 `window.confirm` 코드를 제거하여 프로세스를 간소화했습니다. diff --git a/frontend/src/App.coverage.test.tsx b/frontend/src/App.coverage.test.tsx index 0b9a20aa8..8291608cc 100644 --- a/frontend/src/App.coverage.test.tsx +++ b/frontend/src/App.coverage.test.tsx @@ -325,6 +325,7 @@ describe('App orchestration coverage', () => { expect(screen.getByRole('heading', { name: '프로젝트' })).toBeInTheDocument() fireEvent.click(screen.getAllByRole('button', { name: '열기' })[1]!) expect(screen.getByRole('heading', { name: '다이어그램' })).toBeInTheDocument() + await waitFor(() => expect(screen.queryByText('아직 다이어그램 스냅샷이 없습니다. 편집기에서 데이터베이스를 역공학해 시작하세요.')).not.toBeInTheDocument()) fireEvent.change(screen.getByLabelText('다이어그램 검색'), { target: { value: 'no-match' } }) expect(screen.getByText('검색 결과가 없습니다.')).toBeInTheDocument() fireEvent.change(screen.getByLabelText('다이어그램 검색'), { target: { value: 'failed' } }) diff --git a/frontend/src/components/modals/EditEdgeModal.tsx b/frontend/src/components/modals/EditEdgeModal.tsx index ccd06f195..2d4bbfd20 100644 --- a/frontend/src/components/modals/EditEdgeModal.tsx +++ b/frontend/src/components/modals/EditEdgeModal.tsx @@ -82,7 +82,6 @@ export function EditEdgeModal({