Device Manager: Verify session (#6832)

* Initial implementation
* Add verificationState to UserSessionInfo
* Listen for changes device changes in the service.
This commit is contained in:
Doug
2022-10-11 16:11:52 +01:00
committed by GitHub
parent efaf98fe6a
commit 3279f58ec4
33 changed files with 534 additions and 114 deletions
@@ -21,15 +21,16 @@ import XCTest
class UserSessionOverviewViewModelTests: XCTestCase {
func test_whenVerifyCurrentSessionProcessed_completionWithVerifyCurrentSessionCalled() {
let sut = UserSessionOverviewViewModel(sessionInfo: createUserSessionInfo(), service: MockUserSessionOverviewService())
let sessionInfo = createUserSessionInfo()
let sut = UserSessionOverviewViewModel(sessionInfo: sessionInfo, service: MockUserSessionOverviewService())
XCTAssertEqual(sut.state.isPusherEnabled, nil)
var modelResult: UserSessionOverviewViewModelResult?
sut.completion = { result in
modelResult = result
}
sut.process(viewAction: .verifyCurrentSession)
XCTAssertEqual(modelResult, .verifyCurrentSession)
sut.process(viewAction: .verifySession)
XCTAssertEqual(modelResult, .verifySession(sessionInfo))
}
func test_whenViewSessionDetailsProcessed_completionWithShowSessionDetailsCalled() {
@@ -88,7 +89,7 @@ class UserSessionOverviewViewModelTests: XCTestCase {
UserSessionInfo(id: "session",
name: "iOS",
deviceType: .mobile,
isVerified: false,
verificationState: .unverified,
lastSeenIP: "10.0.0.10",
lastSeenTimestamp: Date().timeIntervalSince1970 - 100,
applicationName: "Element iOS",