From 327fe1df25bde45c35136420f2df6f72a9194d39 Mon Sep 17 00:00:00 2001 From: art Date: Tue, 30 Jun 2026 11:31:23 +0900 Subject: [PATCH] =?UTF-8?q?test(posts):=20null=20cursor=20=ED=9A=8C?= =?UTF-8?q?=EA=B7=80=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?(168671b)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit listPublishedKeyset 에 cursor=null·categoryId=null 전달 시 posts-list 뷰 정상 반환 검증. isNull() matcher 로 null 파라미터가 매퍼에 실제 전달됨을 명시. Co-Authored-By: Claude Sonnet 4.6 Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD --- .../bibimbap/controller/PostControllerTest.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/test/java/com/pandoli365/bibimbap/controller/PostControllerTest.java b/src/test/java/com/pandoli365/bibimbap/controller/PostControllerTest.java index 04a689f..1a5d787 100644 --- a/src/test/java/com/pandoli365/bibimbap/controller/PostControllerTest.java +++ b/src/test/java/com/pandoli365/bibimbap/controller/PostControllerTest.java @@ -29,6 +29,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; @@ -232,6 +233,21 @@ class PostControllerTest { assertThat(model.getAttribute("nextCursorId")).isNull(); } + /** 회귀(168671b): cursor=null·categoryId=null → PSQLException 없이 "posts-list" 반환. */ + @Test + void list_nullCursorAndCategory_returnsPostsView() { + PostController controller = controller(); + when(postsMapper.listPublishedKeyset(isNull(), isNull(), isNull(), eq(PAGE_SIZE + 1))) + .thenReturn(List.of()); + lenient().when(postCategoriesMapper.listActive()).thenReturn(List.of()); + Model model = new ExtendedModelMap(); + + String view = controller.list(null, null, null, model); + + assertThat(view).isEqualTo("posts-list"); + assertThat(model.getAttribute("hasNext")).isEqualTo(false); + } + // ==== helpers ==== private PostController controller() {