Coverage Summary for Class: SyncScopeKt (com.georgeci.moneysurfer.sync.api)

Class Method, % Branch, % Line, % Instruction, %
SyncScopeKt 100% (2/2) 94.4% (17/18) 100% (15/15) 100% (48/48)
SyncScopeKt$WhenMappings
Total 100% (2/2) 94.4% (17/18) 100% (15/15) 100% (48/48)


 package com.georgeci.moneysurfer.sync.api
 
 enum class SyncScope {
     UploadOnly,
     ActiveWorkspace,
     AllUserData,
     ChangedSinceLastSync,
 }
 
 fun SyncReason.toScope(): SyncScope = when (this) {
     SyncReason.APP_START -> SyncScope.ActiveWorkspace
     SyncReason.FOREGROUND -> SyncScope.ActiveWorkspace
     SyncReason.SWIPE_REFRESH -> SyncScope.ActiveWorkspace
     SyncReason.MANUAL -> SyncScope.AllUserData
     SyncReason.LOCAL_CHANGE -> SyncScope.UploadOnly
     SyncReason.BACKGROUND -> SyncScope.ChangedSinceLastSync
 }
 
 fun mergeScope(first: SyncScope, second: SyncScope): SyncScope = when {
     first == SyncScope.AllUserData || second == SyncScope.AllUserData ->
         SyncScope.AllUserData
     first == SyncScope.ActiveWorkspace || second == SyncScope.ActiveWorkspace ->
         SyncScope.ActiveWorkspace
     first == SyncScope.ChangedSinceLastSync || second == SyncScope.ChangedSinceLastSync ->
         SyncScope.ChangedSinceLastSync
     else ->
         SyncScope.UploadOnly
 }