import XCTest @testable import iosApp import ComposeApp @MainActor final class ResidenceViewModelTests: XCTestCase { var sut: ResidenceViewModel! override func setUp() { super.setUp() sut = ResidenceViewModel() } override func tearDown() { sut = nil super.tearDown() } // MARK: - Initialization Tests func testInitialState() { // Then XCTAssertFalse(sut.isLoading) XCTAssertNil(sut.errorMessage) XCTAssertNil(sut.myResidences) } // MARK: - Loading Tests func testLoadMyResidencesStartsLoading() { // Given let initialLoadingState = sut.isLoading // When sut.loadMyResidences() // Then - Loading should start or complete quickly XCTAssertTrue(sut.isLoading || sut.errorMessage != nil || sut.myResidences != nil) } // MARK: - Error Handling Tests func testErrorMessageIsSetOnFailure() { // This test would require mocking the API // For now, we test that error handling mechanism exists XCTAssertNil(sut.errorMessage) } // MARK: - State Management Tests func testMultipleLoadCallsDontCrash() { // When sut.loadMyResidences() sut.loadMyResidences() sut.loadMyResidences() // Then - Should not crash XCTAssertNotNil(sut) } }