Coverage Summary for Class: LastSyncOutcome (com.georgeci.moneysurfer.sync.api)
| Class |
Method, %
|
Branch, %
|
Line, %
|
Instruction, %
|
| LastSyncOutcome$Cancelled |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(7/7)
|
| LastSyncOutcome$Failed |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(12/12)
|
| LastSyncOutcome$None |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(2/2)
|
| LastSyncOutcome$Success |
100%
(1/1)
|
|
100%
(1/1)
|
100%
(12/12)
|
| Total |
100%
(4/4)
|
|
100%
(4/4)
|
100%
(33/33)
|
package com.georgeci.moneysurfer.sync.api
import kotlin.time.Instant
/**
* Persistent "last sync outcome" — for UI badges like "last synced N min ago".
* Separate from [SyncState] (live activity).
* See SyncCoordinatorFAQ.md №10.
*/
sealed interface LastSyncOutcome {
data object None : LastSyncOutcome
data class Success(val summary: SyncSummary, val at: Instant) : LastSyncOutcome
data class Failed(val error: SyncError, val at: Instant) : LastSyncOutcome
data class Cancelled(val at: Instant) : LastSyncOutcome
}