Make sure the Recovery Key option is shown on the IdentityConfirmationScreen when available. (#3699)

There was a race condition where 2 different states could be processed at the same time.

* Fix unit test
The view model wasn't stored, so relying the current value publisher didn't have time to fire before deinit.
This commit is contained in:
Doug
2025-01-23 12:39:53 +00:00
committed by GitHub
parent 88e63b297e
commit a70189d318
2 changed files with 8 additions and 11 deletions
@@ -104,6 +104,8 @@ struct IdentityConfirmationScreen: View {
// MARK: - Previews
struct IdentityConfirmationScreen_Previews: PreviewProvider, TestablePreview {
static var viewModel = makeViewModel()
static var previews: some View {
NavigationStack {
IdentityConfirmationScreen(context: viewModel.context)
@@ -113,7 +115,7 @@ struct IdentityConfirmationScreen_Previews: PreviewProvider, TestablePreview {
})
}
private static var viewModel: IdentityConfirmationScreenViewModel {
static func makeViewModel() -> IdentityConfirmationScreenViewModel {
let clientProxy = ClientProxyMock(.init())
let userSession = UserSessionMock(.init(clientProxy: clientProxy))
userSession.sessionSecurityStatePublisher = CurrentValuePublisher<SessionSecurityState, Never>(.init(verificationState: .unverified, recoveryState: .enabled))