Coverage Summary for Class: RemoteDataModule (com.georgeci.moneysurfer.data.di)

Class Class, % Method, % Branch, % Line, % Instruction, %
RemoteDataModule 100% (1/1) 20% (1/5) 0% (0/4) 9.1% (1/11) 4.3% (2/46)


 package com.georgeci.moneysurfer.data.di
 
 import com.georgeci.moneysurfer.data.remote.ExchangeRateApiConfig
 import com.georgeci.moneysurfer.domain.repositories.FirebaseConfig
 import dev.gitlive.firebase.Firebase
 import dev.gitlive.firebase.analytics.FirebaseAnalytics
 import dev.gitlive.firebase.analytics.analytics
 import dev.gitlive.firebase.auth.FirebaseAuth
 import dev.gitlive.firebase.auth.auth
 import dev.gitlive.firebase.firestore.FirebaseFirestore
 import dev.gitlive.firebase.firestore.firestore
 import org.koin.core.annotation.ComponentScan
 import org.koin.core.annotation.Module
 import org.koin.core.annotation.Single
 
 @Module
 @ComponentScan("com.georgeci.moneysurfer.data.remote", "com.georgeci.moneysurfer.data.repository")
 class RemoteDataModule {
 
     @Single
     fun firebaseAnalytics(): FirebaseAnalytics = Firebase.analytics
 
     @Single
     fun firebaseAuth(config: FirebaseConfig): FirebaseAuth = Firebase.auth.also {
         if (config.useEmulator) {
             it.useEmulator(config.emulatorHost, config.authPort)
         }
     }
 
     /** FX provider endpoint. Bound here rather than defaulted in the source so it stays swappable. */
     @Single
     fun exchangeRateApiConfig(): ExchangeRateApiConfig = ExchangeRateApiConfig()
 
     @Single
     fun firebaseFirestore(config: FirebaseConfig): FirebaseFirestore = Firebase.firestore.also {
         if (config.useEmulator) {
             it.useEmulator(config.emulatorHost, config.firestorePort)
         }
     }
 }