mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-14 14:19:57 +02:00
fix(core): recover unrecoverable device identity
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import XCTest
|
||||
import VnidropCore
|
||||
@testable import VniDrop
|
||||
|
||||
/// Ports app-level assertions: core initialization on launch, destination
|
||||
@@ -50,4 +51,21 @@ final class AppModelTests: XCTestCase {
|
||||
await waitUntil { model.themeMode == .dark }
|
||||
XCTAssertEqual(model.themeMode, .dark)
|
||||
}
|
||||
|
||||
func testMissingEndpointIdentityOffersExplicitResetAndRecoversStartup() async {
|
||||
let core = FakeCoreGateway()
|
||||
core.initializeResult = .failure(
|
||||
VnidropError.SecureStorageMissing(reason: "credential is missing")
|
||||
)
|
||||
let model = makeModel(core, preferences: Fixtures.preferences())
|
||||
|
||||
await waitUntil { model.startupRecovery == .identityUnrecoverable }
|
||||
XCTAssertFalse(core.state.isInitialized)
|
||||
|
||||
await model.resetUnrecoverableIdentity()
|
||||
|
||||
XCTAssertEqual(core.resetUnrecoverableIdentityCount, 1)
|
||||
XCTAssertNil(model.startupRecovery)
|
||||
XCTAssertTrue(core.state.isInitialized)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user