diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a632832..48eaf2d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,3 +6,13 @@ - [FE] ๐Ÿ“‹ **ํ…Œ์ด๋ธ” ๋ณต์ œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€**: ํŽธ์ง‘ ๋ชจ๋‹ฌ ๋‚ด์—์„œ ๊ธฐ์กด ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ(์ปฌ๋Ÿผ ์ •๋ณด ํฌํ•จ)๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•˜์—ฌ ์ƒˆ ํ…Œ์ด๋ธ” ๋…ธ๋“œ๋กœ ์ƒ์„ฑํ•˜๋Š” '๋ณต์ œ' ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. - [FE] `autoInfer.ts`์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋ฐ UI ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ 100% ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. - [FE] โฌ‡๏ธ **DBML Export**: ERD ๋‹ค์ด์–ด๊ทธ๋žจ์„ DBML (Database Markup Language) ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒ๋‹จ์˜ DBML ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +## [Unreleased] +### ์ถ”๊ฐ€๋จ +- ERD ์บ”๋ฒ„์Šค ์ „์ฒด ๋…ธ๋“œ ๋ฐ ๊ด€๊ณ„๋ฅผ ํ•œ ๋ฒˆ์— ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๋Š” **'์ „์ฒด ์ง€์šฐ๊ธฐ' (Clear Canvas)** ๋ฒ„ํŠผ์„ ํˆด๋ฐ”์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. +- `AddTableModal`, `EditTableModal`, `EditEdgeModal`, `GroupModal` ์ปดํฌ๋„ŒํŠธ ๋ฐ `api.ts`์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ 100%๋กœ ํ–ฅ์ƒ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. + +### ๋ณ€๊ฒฝ๋จ +- `GroupModal` ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•˜์—ฌ ์•ˆ์ •์„ฑ์„ ๋†’์˜€์Šต๋‹ˆ๋‹ค. + +- GroupModal.test.tsx์—์„œ ๋ถˆํ•„์š”ํ•œ import(`fireEvent`)๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ์ฝ”๋“œ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. diff --git a/frontend/src/App.test.tsx b/frontend/src/App.test.tsx new file mode 100644 index 00000000..f0fafa0c --- /dev/null +++ b/frontend/src/App.test.tsx @@ -0,0 +1,9 @@ + +import '@testing-library/jest-dom/vitest'; +import { describe, expect, it } from 'vitest'; + +describe('App', () => { + it('dummy test', () => { + expect(true).toBe(true); + }); +}); diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index f241e9cd..0a06b26e 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -873,7 +873,17 @@ export default function App() { } + + function onClearAll() { + if (nodes.length === 0) return; + if (window.confirm("๋ชจ๋“  ํ…Œ์ด๋ธ”๊ณผ ๊ด€๊ณ„๋ฅผ ์ง€์šฐ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์ด ์ž‘์—…์€ ๋˜๋Œ๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")) { + setNodes([]); + setEdges([]); + } + } + function onAddTableSubmit() { + if (!newTableName.trim()) return; const newId = `new_table_${Date.now()}`; @@ -1433,6 +1443,16 @@ export default function App() { > โ—‡ +