Skip to content

Commit

Permalink
fix: tests
Browse files Browse the repository at this point in the history
  • Loading branch information
alvr committed Mar 12, 2024
1 parent ef194f4 commit 9b0229e
Show file tree
Hide file tree
Showing 23 changed files with 258 additions and 53 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import dev.alvr.katana.common.session.data.di.deleteDataStoreFiles
import dev.alvr.katana.common.session.data.di.testDataStoreModule
import dev.alvr.katana.common.session.data.models.Session
import dev.alvr.katana.common.session.domain.models.AnilistToken
import dev.alvr.katana.core.tests.KoinExtension
import dev.alvr.katana.core.tests.koinExtension
import io.kotest.core.spec.style.FreeSpec
import io.kotest.core.test.TestCase
import io.kotest.matchers.equals.shouldBeEqual
Expand Down Expand Up @@ -55,9 +55,9 @@ internal class SessionDataStoreTest : FreeSpec(), KoinTest {
}
}

override fun extensions() = listOf(KoinExtension(testDataStoreModule()))

override suspend fun beforeEach(testCase: TestCase) {
deleteDataStoreFiles()
}

override fun extensions() = listOf(koinExtension(testDataStoreModule()))
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,27 @@ import arrow.core.left
import arrow.core.right
import dev.alvr.katana.common.session.domain.failures.SessionFailure
import dev.alvr.katana.common.session.domain.repositories.SessionRepository
import dev.alvr.katana.core.common.coroutines.KatanaDispatcher
import dev.alvr.katana.core.domain.failures.Failure
import dev.alvr.katana.core.domain.usecases.invoke
import dev.alvr.katana.core.tests.koinExtension
import dev.alvr.katana.core.tests.di.coreTestsModule
import dev.alvr.katana.core.tests.shouldBeLeft
import dev.alvr.katana.core.tests.shouldBeRight
import dev.mokkery.answering.returns
import dev.mokkery.everySuspend
import dev.mokkery.mock
import dev.mokkery.verifySuspend
import io.kotest.core.spec.style.FreeSpec
import io.kotest.core.test.TestCase
import org.koin.test.KoinTest
import org.koin.test.inject

internal class ClearActiveSessionUseCaseTest : FreeSpec() {
internal class ClearActiveSessionUseCaseTest : FreeSpec(), KoinTest {
private val dispatcher by inject<KatanaDispatcher>()
private val repo = mock<SessionRepository>()

private val useCase = ClearActiveSessionUseCase(repo)
private lateinit var useCase: ClearActiveSessionUseCase

init {
"successfully clearing the session" {
Expand All @@ -37,4 +44,10 @@ internal class ClearActiveSessionUseCaseTest : FreeSpec() {
}
}
}

override suspend fun beforeEach(testCase: TestCase) {
useCase = ClearActiveSessionUseCase(dispatcher, repo)
}

override fun extensions() = listOf(koinExtension(coreTestsModule))
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,27 @@ import arrow.core.left
import arrow.core.right
import dev.alvr.katana.common.session.domain.failures.SessionFailure
import dev.alvr.katana.common.session.domain.repositories.SessionRepository
import dev.alvr.katana.core.common.coroutines.KatanaDispatcher
import dev.alvr.katana.core.domain.failures.Failure
import dev.alvr.katana.core.domain.usecases.invoke
import dev.alvr.katana.core.tests.koinExtension
import dev.alvr.katana.core.tests.di.coreTestsModule
import dev.alvr.katana.core.tests.shouldBeLeft
import dev.alvr.katana.core.tests.shouldBeRight
import dev.mokkery.answering.returns
import dev.mokkery.everySuspend
import dev.mokkery.mock
import dev.mokkery.verifySuspend
import io.kotest.core.spec.style.FreeSpec
import io.kotest.core.test.TestCase
import org.koin.test.KoinTest
import org.koin.test.inject

internal class DeleteAnilistTokenUseCaseTest : FreeSpec() {
internal class DeleteAnilistTokenUseCaseTest : FreeSpec(), KoinTest {
private val dispatcher by inject<KatanaDispatcher>()
private val repo = mock<SessionRepository>()

private val useCase = DeleteAnilistTokenUseCase(repo)
private lateinit var useCase: DeleteAnilistTokenUseCase

init {
"successfully deleting the token" {
Expand All @@ -37,4 +44,10 @@ internal class DeleteAnilistTokenUseCaseTest : FreeSpec() {
}
}
}

override suspend fun beforeEach(testCase: TestCase) {
useCase = DeleteAnilistTokenUseCase(dispatcher, repo)
}

override fun extensions() = listOf(koinExtension(coreTestsModule))
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,26 @@ import arrow.core.none
import arrow.core.some
import dev.alvr.katana.common.session.domain.anilistTokenMock
import dev.alvr.katana.common.session.domain.repositories.SessionRepository
import dev.alvr.katana.core.common.coroutines.KatanaDispatcher
import dev.alvr.katana.core.domain.usecases.invoke
import dev.alvr.katana.core.tests.koinExtension
import dev.alvr.katana.core.tests.di.coreTestsModule
import dev.alvr.katana.core.tests.shouldBeNone
import dev.alvr.katana.core.tests.shouldBeSome
import dev.mokkery.answering.returns
import dev.mokkery.everySuspend
import dev.mokkery.mock
import dev.mokkery.verifySuspend
import io.kotest.core.spec.style.FreeSpec
import io.kotest.core.test.TestCase
import org.koin.test.KoinTest
import org.koin.test.inject

internal class GetAnilistTokenUseCaseTest : FreeSpec() {
internal class GetAnilistTokenUseCaseTest : FreeSpec(), KoinTest {
private val dispatcher by inject<KatanaDispatcher>()
private val repo = mock<SessionRepository>()

private val useCase = GetAnilistTokenUseCase(repo)
private lateinit var useCase: GetAnilistTokenUseCase

init {
"successfully getting the token" {
Expand All @@ -31,4 +38,10 @@ internal class GetAnilistTokenUseCaseTest : FreeSpec() {
verifySuspend { repo.getAnilistToken() }
}
}

override suspend fun beforeEach(testCase: TestCase) {
useCase = GetAnilistTokenUseCase(dispatcher, repo)
}

override fun extensions() = listOf(koinExtension(coreTestsModule))
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,27 @@ import arrow.core.left
import arrow.core.right
import dev.alvr.katana.common.session.domain.failures.SessionFailure
import dev.alvr.katana.common.session.domain.repositories.SessionRepository
import dev.alvr.katana.core.common.coroutines.KatanaDispatcher
import dev.alvr.katana.core.domain.failures.Failure
import dev.alvr.katana.core.domain.usecases.invoke
import dev.alvr.katana.core.tests.koinExtension
import dev.alvr.katana.core.tests.di.coreTestsModule
import dev.alvr.katana.core.tests.shouldBeLeft
import dev.alvr.katana.core.tests.shouldBeRight
import dev.mokkery.answering.returns
import dev.mokkery.everySuspend
import dev.mokkery.mock
import dev.mokkery.verifySuspend
import io.kotest.core.spec.style.FreeSpec
import io.kotest.core.test.TestCase
import org.koin.test.KoinTest
import org.koin.test.inject

internal class LogOutUseCaseTest : FreeSpec() {
internal class LogOutUseCaseTest : FreeSpec(), KoinTest {
private val dispatcher by inject<KatanaDispatcher>()
private val repo = mock<SessionRepository>()

private val useCase = LogOutUseCase(repo)
private lateinit var useCase: LogOutUseCase

init {
"successfully saving the session" {
Expand All @@ -37,4 +44,10 @@ internal class LogOutUseCaseTest : FreeSpec() {
}
}
}

override suspend fun beforeEach(testCase: TestCase) {
useCase = LogOutUseCase(dispatcher, repo)
}

override fun extensions() = listOf(koinExtension(coreTestsModule))
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,28 @@ import arrow.core.left
import arrow.core.right
import dev.alvr.katana.common.session.domain.failures.SessionFailure
import dev.alvr.katana.common.session.domain.repositories.SessionRepository
import dev.alvr.katana.core.common.coroutines.KatanaDispatcher
import dev.alvr.katana.core.domain.usecases.invoke
import dev.alvr.katana.core.tests.koinExtension
import dev.alvr.katana.core.tests.di.coreTestsModule
import dev.alvr.katana.core.tests.shouldBeLeft
import dev.alvr.katana.core.tests.shouldBeRight
import dev.mokkery.answering.returns
import dev.mokkery.every
import dev.mokkery.mock
import dev.mokkery.verify
import io.kotest.core.spec.style.FreeSpec
import io.kotest.core.test.TestCase
import kotlin.time.Duration.Companion.seconds
import kotlinx.coroutines.flow.flowOf
import org.koin.test.KoinTest
import org.koin.test.inject

internal class ObserveActiveSessionUseCaseTest : FreeSpec() {
internal class ObserveActiveSessionUseCaseTest : FreeSpec(), KoinTest {
private val dispatcher by inject<KatanaDispatcher>()
private val repo = mock<SessionRepository>()

private val useCase = ObserveActiveSessionUseCase(repo)
private lateinit var useCase: ObserveActiveSessionUseCase

init {
"successfully observing the session" {
Expand Down Expand Up @@ -59,4 +66,10 @@ internal class ObserveActiveSessionUseCaseTest : FreeSpec() {
verify { repo.sessionActive }
}
}

override suspend fun beforeEach(testCase: TestCase) {
useCase = ObserveActiveSessionUseCase(dispatcher, repo)
}

override fun extensions() = listOf(koinExtension(coreTestsModule))
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,26 @@ import arrow.core.right
import dev.alvr.katana.common.session.domain.anilistTokenMock
import dev.alvr.katana.common.session.domain.failures.SessionFailure
import dev.alvr.katana.common.session.domain.repositories.SessionRepository
import dev.alvr.katana.core.common.coroutines.KatanaDispatcher
import dev.alvr.katana.core.domain.failures.Failure
import dev.alvr.katana.core.tests.koinExtension
import dev.alvr.katana.core.tests.di.coreTestsModule
import dev.alvr.katana.core.tests.shouldBeLeft
import dev.alvr.katana.core.tests.shouldBeRight
import dev.mokkery.answering.returns
import dev.mokkery.everySuspend
import dev.mokkery.mock
import dev.mokkery.verifySuspend
import io.kotest.core.spec.style.FreeSpec
import io.kotest.core.test.TestCase
import org.koin.test.KoinTest
import org.koin.test.inject

internal class SaveAnilistTokenUseCaseTest : FreeSpec() {
internal class SaveAnilistTokenUseCaseTest : FreeSpec(), KoinTest {
private val dispatcher by inject<KatanaDispatcher>()
private val repo = mock<SessionRepository>()

private val useCase = SaveSessionUseCase(repo)
private lateinit var useCase: SaveSessionUseCase

init {
"successfully saving the session" {
Expand All @@ -37,4 +44,10 @@ internal class SaveAnilistTokenUseCaseTest : FreeSpec() {
}
}
}

override suspend fun beforeEach(testCase: TestCase) {
useCase = SaveSessionUseCase(dispatcher, repo)
}

override fun extensions() = listOf(koinExtension(coreTestsModule))
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,25 @@ import dev.alvr.katana.common.user.domain.managers.UserIdManager
import dev.alvr.katana.common.user.domain.models.UserId
import dev.alvr.katana.common.user.domain.repositories.UserRepository
import dev.alvr.katana.common.user.domain.usecases.GetUserIdUseCase
import dev.alvr.katana.core.common.coroutines.KatanaDispatcher
import dev.alvr.katana.core.domain.usecases.invoke
import dev.alvr.katana.core.tests.koinExtension
import dev.alvr.katana.core.tests.di.coreTestsModule
import dev.alvr.katana.core.tests.shouldBeLeft
import dev.alvr.katana.core.tests.shouldBeRight
import dev.mokkery.answering.returns
import dev.mokkery.everySuspend
import dev.mokkery.mock
import dev.mokkery.verifySuspend
import io.kotest.core.spec.style.FreeSpec
import org.koin.test.KoinTest
import org.koin.test.inject

internal class UserIdManagerTest : FreeSpec() {
internal class UserIdManagerTest : FreeSpec(), KoinTest {
private val dispatcher by inject<KatanaDispatcher>()
private val repo = mock<UserRepository>()

private val useCase = GetUserIdUseCase(repo)
private val useCase = GetUserIdUseCase(dispatcher, repo)
private val manager: UserIdManager = UserIdManagerImpl(useCase)

init {
Expand All @@ -35,4 +41,6 @@ internal class UserIdManagerTest : FreeSpec() {
verifySuspend { useCase() }
}
}

override fun extensions() = listOf(koinExtension(coreTestsModule))
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import dev.alvr.katana.common.user.domain.repositories.UserRepository
import dev.alvr.katana.core.common.coroutines.KatanaDispatcher
import dev.alvr.katana.core.domain.usecases.EitherUseCase

class GetUserIdUseCase(
open class GetUserIdUseCase(
dispatcher: KatanaDispatcher,
private val repository: UserRepository,
) : EitherUseCase<Unit, UserId>(dispatcher) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,27 @@ import arrow.core.right
import dev.alvr.katana.common.user.domain.failures.UserFailure
import dev.alvr.katana.common.user.domain.repositories.UserRepository
import dev.alvr.katana.common.user.domain.userIdMock
import dev.alvr.katana.core.common.coroutines.KatanaDispatcher
import dev.alvr.katana.core.domain.failures.Failure
import dev.alvr.katana.core.domain.usecases.invoke
import dev.alvr.katana.core.tests.koinExtension
import dev.alvr.katana.core.tests.di.coreTestsModule
import dev.alvr.katana.core.tests.shouldBeLeft
import dev.alvr.katana.core.tests.shouldBeRight
import dev.mokkery.answering.returns
import dev.mokkery.everySuspend
import dev.mokkery.mock
import dev.mokkery.verifySuspend
import io.kotest.core.spec.style.FreeSpec
import io.kotest.core.test.TestCase
import org.koin.test.KoinTest
import org.koin.test.inject

internal class GetUserIdUseCaseTest : FreeSpec() {
internal class GetUserIdUseCaseTest : FreeSpec(), KoinTest {
private val dispatcher by inject<KatanaDispatcher>()
private val repo = mock<UserRepository>()

private val useCase = GetUserIdUseCase(repo)
private lateinit var useCase: GetUserIdUseCase

init {
"successfully getting user id" {
Expand All @@ -38,4 +45,10 @@ internal class GetUserIdUseCaseTest : FreeSpec() {
}
}
}

override suspend fun beforeEach(testCase: TestCase) {
useCase = GetUserIdUseCase(dispatcher, repo)
}

override fun extensions() = listOf(koinExtension(coreTestsModule))
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,28 @@ import arrow.core.right
import dev.alvr.katana.common.user.domain.failures.UserFailure
import dev.alvr.katana.common.user.domain.repositories.UserRepository
import dev.alvr.katana.common.user.domain.userInfoMock
import dev.alvr.katana.core.common.coroutines.KatanaDispatcher
import dev.alvr.katana.core.domain.usecases.invoke
import dev.alvr.katana.core.tests.koinExtension
import dev.alvr.katana.core.tests.di.coreTestsModule
import dev.alvr.katana.core.tests.shouldBeLeft
import dev.alvr.katana.core.tests.shouldBeRight
import dev.mokkery.answering.returns
import dev.mokkery.every
import dev.mokkery.mock
import dev.mokkery.verify
import io.kotest.core.spec.style.FreeSpec
import io.kotest.core.test.TestCase
import kotlin.time.Duration.Companion.seconds
import kotlinx.coroutines.flow.flowOf
import org.koin.test.KoinTest
import org.koin.test.inject

internal class ObserveUserInfoUseCaseTest : FreeSpec() {
internal class ObserveUserInfoUseCaseTest : FreeSpec(), KoinTest {
private val dispatcher by inject<KatanaDispatcher>()
private val repo = mock<UserRepository>()

private val useCase = ObserveUserInfoUseCase(repo)
private lateinit var useCase: ObserveUserInfoUseCase

init {
"successfully observing user info" {
Expand Down Expand Up @@ -49,4 +56,10 @@ internal class ObserveUserInfoUseCaseTest : FreeSpec() {
verify { repo.userInfo }
}
}

override suspend fun beforeEach(testCase: TestCase) {
useCase = ObserveUserInfoUseCase(dispatcher, repo)
}

override fun extensions() = listOf(koinExtension(coreTestsModule))
}
Loading

0 comments on commit 9b0229e

Please sign in to comment.