Coverage Summary for Class: GetAccountsUseCase (com.georgeci.moneysurfer.domain.usecase)

Class Method, % Branch, % Line, % Instruction, %
GetAccountsUseCase 100% (3/3) 50% (3/6) 100% (5/5) 100% (14/14)
GetAccountsUseCase$invoke$$inlined$flatMapLatest$1 0% (0/1)
Total 75% (3/4) 50% (3/6) 100% (5/5) 100% (14/14)


 package com.georgeci.moneysurfer.domain.usecase
 
 import com.georgeci.moneysurfer.domain.auth.SessionPointers
 import com.georgeci.moneysurfer.domain.model.Account
 import com.georgeci.moneysurfer.domain.repositories.AccountRepository
 import kotlinx.coroutines.ExperimentalCoroutinesApi
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.flatMapLatest
 import kotlinx.coroutines.flow.flowOf
 import org.koin.core.annotation.Single
 
 @Single
 @OptIn(ExperimentalCoroutinesApi::class)
 class GetAccountsUseCase(
     private val accountRepository: AccountRepository,
     private val session: SessionPointers,
 ) {
 
     operator fun invoke(): Flow<List<Account>> =
         session.currentWorkspaceId.flatMapLatest { workspaceId ->
             workspaceId?.let(accountRepository::getByWorkspaceId) ?: flowOf(emptyList())
         }
 }