Files
Kisani/Tests/ConnectViewModelTests.swift

48 lines
1.3 KiB
Swift
Raw Normal View History

import XCTest
@testable import NASBackup
@MainActor
final class ConnectViewModelTests: XCTestCase {
func test_canConnect_isFalse_whenFieldsEmpty() {
let vm = ConnectViewModel()
XCTAssertFalse(vm.canConnect)
}
func test_canConnect_isTrue_whenAllFieldsFilled() {
let vm = ConnectViewModel()
vm.host = "192.168.1.10"
vm.username = "admin"
vm.password = "secret"
XCTAssertTrue(vm.canConnect)
}
func test_connectionState_becomesVerified_onSuccess() async {
let vm = ConnectViewModel()
vm.host = "192.168.1.10"
vm.username = "admin"
vm.password = "secret"
// Override the service factory so no real network call is made.
let mock = MockNASService()
await vm.verifyWith(transfer: mock)
XCTAssertTrue(vm.isConnected)
XCTAssertNil(vm.verifyError)
}
func test_connectionState_becomesFailed_onError() async {
let vm = ConnectViewModel()
vm.host = "192.168.1.10"
vm.username = "admin"
vm.password = "wrong"
let mock = MockNASService()
mock.shouldFail = true
await vm.verifyWith(transfer: mock)
XCTAssertFalse(vm.isConnected)
XCTAssertNotNil(vm.verifyError)
}
}