diff --git a/src/main/kotlin/com/github/yeoli/devlog/domain/memo/service/MemoService.kt b/src/main/kotlin/com/github/yeoli/devlog/domain/memo/service/MemoService.kt index 3778eb5..391b8c1 100644 --- a/src/main/kotlin/com/github/yeoli/devlog/domain/memo/service/MemoService.kt +++ b/src/main/kotlin/com/github/yeoli/devlog/domain/memo/service/MemoService.kt @@ -95,9 +95,9 @@ class MemoService(private val project: Project) { } } - fun getAllMemos(): List { + fun getAllMemosOrderByCreatedAt(): List { try { - return memoRepository.getAll() + return memoRepository.getAll().sortedBy { it.createdAt } } catch (e: Exception) { logger.warn("[getAllMemos] 메모 조회 중 알 수 없는 에러가 발생했습니다. ${e.message}", e) } diff --git a/src/main/kotlin/com/github/yeoli/devlog/ui/DevLogPanel.kt b/src/main/kotlin/com/github/yeoli/devlog/ui/DevLogPanel.kt index e439fd1..c0a421f 100644 --- a/src/main/kotlin/com/github/yeoli/devlog/ui/DevLogPanel.kt +++ b/src/main/kotlin/com/github/yeoli/devlog/ui/DevLogPanel.kt @@ -185,7 +185,7 @@ internal class DevLogPanel( // ---------- 데이터 동기화 ---------- private fun refreshMemos() { - val memos = memoService.getAllMemos() + val memos = memoService.getAllMemosOrderByCreatedAt() totalRecordCount = memos.size timeline.render(memos) refreshToolbarActions() @@ -280,7 +280,7 @@ internal class DevLogPanel( if (records.isEmpty()) return val ids = records.map { it.id }.toSet() if (ids.isEmpty()) return - val memos = memoService.getAllMemos().filter { ids.contains(it.id) } + val memos = memoService.getAllMemosOrderByCreatedAt().filter { ids.contains(it.id) } memoService.removeMemos(memos) notifyChange() selectedRecordIds.removeAll(ids) @@ -290,8 +290,8 @@ internal class DevLogPanel( private fun getSelectedRecords(): List { if (selectedRecordIds.isEmpty()) return emptyList() val selected = selectedRecordIds.toSet() - return memoService.getAllMemos() - .sortedBy { it.createdAt }.filter { it.id in selected } + return memoService.getAllMemosOrderByCreatedAt() + .filter { it.id in selected } } // ---------- 선택/툴바 상태 ---------- diff --git a/src/main/kotlin/com/github/yeoli/devlog/ui/MemoExportPipeline.kt b/src/main/kotlin/com/github/yeoli/devlog/ui/MemoExportPipeline.kt index 746fd96..0d5bd14 100644 --- a/src/main/kotlin/com/github/yeoli/devlog/ui/MemoExportPipeline.kt +++ b/src/main/kotlin/com/github/yeoli/devlog/ui/MemoExportPipeline.kt @@ -19,7 +19,7 @@ class MemoExportPipeline( fun buildPayload(recordsOverride: List? = null): Payload { val memoService = project.getService(MemoService::class.java) val memos: List = recordsOverride - ?: memoService.getAllMemos() + ?: memoService.getAllMemosOrderByCreatedAt() val header = memoService.buildHeader() val body = if (memos.isEmpty()) { diff --git a/src/test/kotlin/com/github/yeoli/devlog/domain/memo/service/MemoServiceTest.kt b/src/test/kotlin/com/github/yeoli/devlog/domain/memo/service/MemoServiceTest.kt index e317074..c1c7b07 100644 --- a/src/test/kotlin/com/github/yeoli/devlog/domain/memo/service/MemoServiceTest.kt +++ b/src/test/kotlin/com/github/yeoli/devlog/domain/memo/service/MemoServiceTest.kt @@ -267,7 +267,7 @@ class MemoServiceTest : BasePlatformTestCase() { whenever(memoRepository.getAll()).thenReturn(listOf(memo1, memo2)) // when - val result = MemoService(project).getAllMemos() + val result = MemoService(project).getAllMemosOrderByCreatedAt() // then assertEquals(2, result.size) @@ -282,7 +282,7 @@ class MemoServiceTest : BasePlatformTestCase() { whenever(memoRepository.getAll()).thenThrow(RuntimeException("DB error")) // when - val result = MemoService(project).getAllMemos() + val result = MemoService(project).getAllMemosOrderByCreatedAt() // then assertTrue(result.isEmpty(), "예외 발생 시 빈 리스트를 반환해야 합니다.")