diff --git a/source/api/src/main/kotlin/com/clerk/api/session/Session.kt b/source/api/src/main/kotlin/com/clerk/api/session/Session.kt index 9aa56a75d..6b9c558b6 100644 --- a/source/api/src/main/kotlin/com/clerk/api/session/Session.kt +++ b/source/api/src/main/kotlin/com/clerk/api/session/Session.kt @@ -4,7 +4,6 @@ import com.clerk.api.Clerk import com.clerk.api.Constants.Strategy.PASSKEY import com.clerk.api.Constants.Strategy.PASSWORD import com.clerk.api.network.ClerkApi -import com.clerk.api.network.model.client.Client import com.clerk.api.network.model.error.ClerkErrorResponse import com.clerk.api.network.model.token.TokenResource import com.clerk.api.network.model.userdata.PublicUserData @@ -198,8 +197,8 @@ data class SessionActivity( ) /** Deletes the current session. */ -suspend fun Session.delete(): ClerkResult { - return ClerkApi.session.deleteSessions() +suspend fun Session.delete(): ClerkResult { + return ClerkApi.session.removeSession(id) } /** diff --git a/source/api/src/test/java/com/clerk/api/session/SessionDeleteTest.kt b/source/api/src/test/java/com/clerk/api/session/SessionDeleteTest.kt new file mode 100644 index 000000000..7bce08904 --- /dev/null +++ b/source/api/src/test/java/com/clerk/api/session/SessionDeleteTest.kt @@ -0,0 +1,52 @@ +package com.clerk.api.session + +import com.clerk.api.network.ClerkApi +import com.clerk.api.network.api.SessionApi +import com.clerk.api.network.serialization.ClerkResult +import io.mockk.coEvery +import io.mockk.coVerify +import io.mockk.every +import io.mockk.mockk +import io.mockk.mockkObject +import io.mockk.unmockkAll +import kotlinx.coroutines.test.runTest +import org.junit.After +import org.junit.Assert.assertSame +import org.junit.Before +import org.junit.Test + +class SessionDeleteTest { + private lateinit var sessionApi: SessionApi + + @Before + fun setup() { + sessionApi = mockk() + mockkObject(ClerkApi) + every { ClerkApi.session } returns sessionApi + } + + @After + fun tearDown() { + unmockkAll() + } + + @Test + fun `delete removes only the target session`() = runTest { + val session = session("sess_target") + val result = ClerkResult.success(session) + coEvery { sessionApi.removeSession("sess_target") } returns result + + assertSame(result, session.delete()) + coVerify(exactly = 1) { sessionApi.removeSession("sess_target") } + coVerify(exactly = 0) { sessionApi.deleteSessions() } + } + + private fun session(id: String): Session = + Session( + id = id, + expireAt = 0L, + lastActiveAt = 0L, + createdAt = 0L, + updatedAt = 0L, + ) +}