Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions source/api/src/main/kotlin/com/clerk/api/session/Session.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -198,8 +197,8 @@ data class SessionActivity(
)

/** Deletes the current session. */
suspend fun Session.delete(): ClerkResult<Client, ClerkErrorResponse> {
return ClerkApi.session.deleteSessions()
suspend fun Session.delete(): ClerkResult<Session, ClerkErrorResponse> {
return ClerkApi.session.removeSession(id)
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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,
)
}