mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:33:26 +00:00
Simplify LinkNewDeviceScreen preview test setup and fix preview and accessibility test reliability.
This commit is contained in:
committed by
Stefan Ceriu
parent
11f9162e0a
commit
69e3f8bc9b
@@ -19,9 +19,14 @@ class LinkNewDeviceScreenViewModel: LinkNewDeviceScreenViewModelType, LinkNewDev
|
|||||||
actionsSubject.eraseToAnyPublisher()
|
actionsSubject.eraseToAnyPublisher()
|
||||||
}
|
}
|
||||||
|
|
||||||
init(clientProxy: ClientProxyProtocol) {
|
init(clientProxy: ClientProxyProtocol, initialState: LinkNewDeviceScreenViewState? = nil) {
|
||||||
self.clientProxy = clientProxy
|
self.clientProxy = clientProxy
|
||||||
|
|
||||||
|
if let initialState {
|
||||||
|
super.init(initialViewState: initialState)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
let isQRCodeScanningSupported = !ProcessInfo.processInfo.isiOSAppOnMac
|
let isQRCodeScanningSupported = !ProcessInfo.processInfo.isiOSAppOnMac
|
||||||
|
|
||||||
super.init(initialViewState: LinkNewDeviceScreenViewState(showLinkDesktopComputerButton: isQRCodeScanningSupported))
|
super.init(initialViewState: LinkNewDeviceScreenViewState(showLinkDesktopComputerButton: isQRCodeScanningSupported))
|
||||||
|
|||||||
@@ -141,34 +141,8 @@ struct LinkNewDeviceScreen_Previews: PreviewProvider, TestablePreview {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static func makeViewModel(mode: LinkNewDeviceScreenViewState.Mode) -> LinkNewDeviceScreenViewModel {
|
static func makeViewModel(mode: LinkNewDeviceScreenViewState.Mode) -> LinkNewDeviceScreenViewModel {
|
||||||
let clientProxy = ClientProxyMock(.init())
|
LinkNewDeviceScreenViewModel(clientProxy: ClientProxyMock(.init()),
|
||||||
clientProxy.isLoginWithQRCodeSupportedClosure = {
|
initialState: .init(mode: mode,
|
||||||
switch mode {
|
showLinkDesktopComputerButton: true))
|
||||||
case .loading:
|
|
||||||
try? await Task.sleep(for: .seconds(20))
|
|
||||||
return false
|
|
||||||
case .error(.notSupported):
|
|
||||||
return false
|
|
||||||
case .readyToLink, .error:
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let linkMobileProgressSubject = CurrentValueSubject<LinkNewDeviceService.LinkMobileProgress, QRCodeLoginError>(.starting)
|
|
||||||
clientProxy.linkNewDeviceServiceReturnValue = LinkNewDeviceServiceMock(.init(linkMobileProgressPublisher: linkMobileProgressSubject.asCurrentValuePublisher()))
|
|
||||||
|
|
||||||
let viewModel = LinkNewDeviceScreenViewModel(clientProxy: clientProxy)
|
|
||||||
|
|
||||||
Task {
|
|
||||||
try? await Task.sleep(for: .milliseconds(100))
|
|
||||||
if case .readyToLink(isGeneratingCode: true) = mode {
|
|
||||||
viewModel.context.send(viewAction: .linkMobileDevice)
|
|
||||||
} else if case .error = mode {
|
|
||||||
viewModel.context.send(viewAction: .linkMobileDevice)
|
|
||||||
linkMobileProgressSubject.send(completion: .failure(.unknown))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return viewModel
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:865ad5f990f5afef41e924c286aebb8c99d9629577f4d75b237aa9972aa4a167
|
oid sha256:bd46a891e0688e239d97d83fb2b4baecc148d263b8e242a190435803e87a8246
|
||||||
size 96939
|
size 93795
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:9619af1b33240507268b5b8ff1934e025758aaf23ad8b6d5a42a5e3baaed20d0
|
oid sha256:2a4de98d1a8011bf49f47a1d361ebb67ea80d0311d8d202f3ff72b19b2bd0542
|
||||||
size 106049
|
size 106647
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:d59e49988fd995a3af8ec3ed54a951a6f7e6675d135cc8c0ffba780f64535365
|
oid sha256:99c2ade9e1c6580b8898e71e1399cdc2692049e0ec8637c706ff0bee62c14639
|
||||||
size 53470
|
size 53340
|
||||||
|
|||||||
+2
-2
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:84dcb8268c7f3f878ffd5d32beb9991a6e7212894e799b1df509a0e4a314516c
|
oid sha256:6c3677cfc9cb46a3adc07d65ba53db8353f2922c38fd051e35fafa8c3e8adc28
|
||||||
size 66759
|
size 70486
|
||||||
|
|||||||
Reference in New Issue
Block a user