From bf3111723b0d769bf52e147e2d7925c463a2fa94 Mon Sep 17 00:00:00 2001 From: pricelees Date: Tue, 15 Jul 2025 11:51:58 +0900 Subject: [PATCH] =?UTF-8?q?test:=20CookieUtils=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/web/support/CookieUtilsTest.kt | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/test/java/roomescape/auth/web/support/CookieUtilsTest.kt diff --git a/src/test/java/roomescape/auth/web/support/CookieUtilsTest.kt b/src/test/java/roomescape/auth/web/support/CookieUtilsTest.kt new file mode 100644 index 00000000..11bf1952 --- /dev/null +++ b/src/test/java/roomescape/auth/web/support/CookieUtilsTest.kt @@ -0,0 +1,63 @@ +package roomescape.auth.web.support + +import io.kotest.assertions.assertSoftly +import io.kotest.core.spec.style.FunSpec +import io.kotest.matchers.collections.shouldContainAll +import io.kotest.matchers.shouldBe +import io.mockk.every +import io.mockk.mockk +import jakarta.servlet.http.Cookie +import jakarta.servlet.http.HttpServletRequest +import roomescape.auth.web.TokenResponse + +class CookieUtilsTest : FunSpec({ + context("HttpServletRequest에서 accessToken 쿠키를 가져온다.") { + val httpServletRequest: HttpServletRequest = mockk() + + test("accessToken이 있으면 해당 쿠키를 반환한다.") { + val token = "test-token" + val cookie = Cookie(ACCESS_TOKEN_COOKIE_NAME, token) + every { httpServletRequest.cookies } returns arrayOf(cookie) + + assertSoftly(httpServletRequest.accessTokenCookie()) { + this.name shouldBe ACCESS_TOKEN_COOKIE_NAME + this.value shouldBe token + } + } + + test("accessToken이 없으면 accessToken에 빈 값을 담은 쿠키를 반환한다.") { + every { httpServletRequest.cookies } returns arrayOf() + + assertSoftly(httpServletRequest.accessTokenCookie()) { + this.name shouldBe ACCESS_TOKEN_COOKIE_NAME + this.value shouldBe "" + } + } + } + + context("TokenResponse를 쿠키로 반환한다.") { + val tokenResponse = TokenResponse("test-token") + + val result: String = tokenResponse.toResponseCookie() + + result.split("; ") shouldContainAll listOf( + "accessToken=test-token", + "HttpOnly", + "Secure", + "Path=/", + "Max-Age=1800" + ) + } + + context("만료된 accessToken 쿠키를 반환한다.") { + val result: String = expiredAccessTokenCookie() + + result.split("; ") shouldContainAll listOf( + "accessToken=", + "HttpOnly", + "Secure", + "Path=/", + "Max-Age=0" + ) + } +})