@test
fun test() {
val observer = mockk<Observer<AuthState>>(relaxed = true)
systemUnderTest.getAuthState().observeForever(observer) <- returns a LiveData and is immediately observed by a mock
verify { observer.onChanged(AuthState.INITIAL_STATE) }
(...)
systemUnderTest.authenticateAndPersistNewState("some data") <- finishes with SharedPreferences::apply() on observed value
verify { observer.onChanged(AuthState.AUTHENTICATED) }
}