Moved isCurrentSession into UserSessionInfo

This commit is contained in:
Aleksandrs Proskurins
2022-09-27 15:36:44 +03:00
parent 2ba14b6d14
commit ed8d2f1083
15 changed files with 75 additions and 64 deletions
@@ -19,7 +19,6 @@ import SwiftUI
struct UserSessionOverviewCoordinatorParameters {
let session: UserSessionInfo
let isCurrentSession: Bool
}
final class UserSessionOverviewCoordinator: Coordinator, Presentable {
@@ -41,8 +40,7 @@ final class UserSessionOverviewCoordinator: Coordinator, Presentable {
init(parameters: UserSessionOverviewCoordinatorParameters) {
self.parameters = parameters
viewModel = UserSessionOverviewViewModel(session: parameters.session,
isCurrentSession: parameters.isCurrentSession)
viewModel = UserSessionOverviewViewModel(session: parameters.session)
hostingController = VectorHostingController(rootView: UserSessionOverview(viewModel: viewModel.context))
@@ -30,34 +30,36 @@ enum MockUserSessionOverviewScreenState: MockScreenState, CaseIterable {
var screenType: Any.Type {
UserSessionOverview.self
}
/// A list of screen state definitions
static var allCases: [MockUserSessionOverviewScreenState] {
[.currentSession, .otherSession]
}
/// Generate the view struct for the screen state.
var screenView: ([Any], AnyView) {
let viewModel: UserSessionOverviewViewModel
switch self {
case .currentSession:
let session = UserSessionInfo(sessionId: "session",
sessionName: "iOS",
deviceType: .mobile,
isVerified: false,
lastSeenIP: "10.0.0.10",
lastSeenTimestamp: Date().timeIntervalSince1970 - 100)
viewModel = UserSessionOverviewViewModel(session: session, isCurrentSession: true)
sessionName: "iOS",
deviceType: .mobile,
isVerified: false,
lastSeenIP: "10.0.0.10",
lastSeenTimestamp: Date().timeIntervalSince1970 - 100,
isCurrentSession: true)
viewModel = UserSessionOverviewViewModel(session: session)
case .otherSession:
let session = UserSessionInfo(sessionId: "session",
sessionName: "Mac",
deviceType: .desktop,
isVerified: true,
lastSeenIP: "10.0.0.10",
lastSeenTimestamp: Date().timeIntervalSince1970 - 100)
viewModel = UserSessionOverviewViewModel(session: session, isCurrentSession: false)
sessionName: "Mac",
deviceType: .desktop,
isVerified: true,
lastSeenIP: "10.0.0.10",
lastSeenTimestamp: Date().timeIntervalSince1970 - 100,
isCurrentSession: false)
viewModel = UserSessionOverviewViewModel(session: session)
}
// can simulate service and viewModel actions here if needs be.
return ([viewModel], AnyView(UserSessionOverview(viewModel: viewModel.context)))
}
@@ -23,7 +23,7 @@ class UserSessionOverviewViewModelTests: XCTestCase {
var sut: UserSessionOverviewViewModel!
func test_whenVerifyCurrentSessionProcessed_completionWithVerifyCurrentSessionCalled() {
sut = UserSessionOverviewViewModel(session: createUserSessionInfo(), isCurrentSession: true)
sut = UserSessionOverviewViewModel(session: createUserSessionInfo())
var modelResult: UserSessionOverviewViewModelResult?
sut.completion = { result in
@@ -35,7 +35,7 @@ class UserSessionOverviewViewModelTests: XCTestCase {
func test_whenViewSessionDetailsProcessed_completionWithShowSessionDetailsCalled() {
let session = createUserSessionInfo()
sut = UserSessionOverviewViewModel(session: session, isCurrentSession: true)
sut = UserSessionOverviewViewModel(session: session)
var modelResult: UserSessionOverviewViewModelResult?
sut.completion = { result in
@@ -51,6 +51,7 @@ class UserSessionOverviewViewModelTests: XCTestCase {
deviceType: .mobile,
isVerified: false,
lastSeenIP: "10.0.0.10",
lastSeenTimestamp: Date().timeIntervalSince1970 - 100)
lastSeenTimestamp: Date().timeIntervalSince1970 - 100,
isCurrentSession: true)
}
}
@@ -23,11 +23,11 @@ class UserSessionOverviewViewModel: UserSessionOverviewViewModelType, UserSessio
var completion: ((UserSessionOverviewViewModelResult) -> Void)?
init(session: UserSessionInfo, isCurrentSession: Bool) {
init(session: UserSessionInfo) {
self.session = session
let cardViewData = UserSessionCardViewData(session: session, isCurrentSessionDisplayMode: isCurrentSession)
let state = UserSessionOverviewViewState(cardViewData: cardViewData, isCurrentSession: isCurrentSession)
let cardViewData = UserSessionCardViewData(session: session)
let state = UserSessionOverviewViewState(cardViewData: cardViewData, isCurrentSession: session.isCurrentSession)
super.init(initialViewState: state)
}