element-ios/RiotSwiftUI/Modules/Authentication/QRLogin/Scan/Test/Unit/AuthenticationQRLoginScanVi...

49 lines
1.2 KiB
Swift

//
// Copyright 2021-2024 New Vector Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only
// Please see LICENSE in the repository root for full details.
//
import XCTest
@testable import RiotSwiftUI
class AuthenticationQRLoginScanViewModelTests: XCTestCase {
var viewModel: AuthenticationQRLoginScanViewModelProtocol!
var context: AuthenticationQRLoginScanViewModelType.Context!
override func setUpWithError() throws {
viewModel = AuthenticationQRLoginScanViewModel(qrLoginService: MockQRLoginService())
context = viewModel.context
}
func testDisplayQRButtonVisibility() {
XCTAssertTrue(viewModel.context.viewState.canShowDisplayQRButton)
}
func testGoToSettings() {
var result: AuthenticationQRLoginScanViewModelResult?
viewModel.callback = { callbackResult in
result = callbackResult
}
context.send(viewAction: .goToSettings)
XCTAssertEqual(result, .goToSettings)
}
func testDisplayQR() {
var result: AuthenticationQRLoginScanViewModelResult?
viewModel.callback = { callbackResult in
result = callbackResult
}
context.send(viewAction: .displayQR)
XCTAssertEqual(result, .displayQR)
}
}