Coverage Summary for Class: MigrationManager (com.vsevolodganin.clicktrack.migration)

Class Method, % Branch, % Line, % Instruction, %
MigrationManager 0% (0/3) 0% (0/2) 0% (0/9) 0% (0/36)
MigrationManager$MetroFactory 0% (0/1) 0% (0/1) 0% (0/25)
MigrationManager$MetroFactory$Companion 0% (0/1) 0% (0/1) 0% (0/16)
Total 0% (0/5) 0% (0/2) 0% (0/11) 0% (0/77)


 package com.vsevolodganin.clicktrack.migration
 
 import com.vsevolodganin.clicktrack.common.ApplicationBuildConfig
 import com.vsevolodganin.clicktrack.di.component.MainControllerScope
 import com.vsevolodganin.clicktrack.storage.UserPreferencesRepository
 import dev.zacsweers.metro.Inject
 import dev.zacsweers.metro.SingleIn
 
 @SingleIn(MainControllerScope::class)
 @Inject
 class MigrationManager(
     private val userPreferencesRepository: UserPreferencesRepository,
     private val canMigrate: Set<CanMigrate>,
     private val applicationBuildConfig: ApplicationBuildConfig,
 ) {
     fun tryMigrate() {
         userPreferencesRepository.appVersionCode.edit { fromVersion ->
             val toVersion = applicationBuildConfig.versionCode
 
             if (fromVersion == toVersion) return@edit toVersion
 
             canMigrate.forEach { it.migrate(fromVersion, toVersion) }
 
             toVersion
         }
     }
 }