import XCTest @testable import MatchLiveTv @MainActor final class ScoreControllerTests: XCTestCase { func testIncrementHomeUpdatesPublishedScore() { let controller = ScoreController( scoreRepository: ScoreRepository(api: MatchLiveAPI()), sessionCable: SessionCableService() ) controller.bind(sessionId: "session-1", initial: ScoreState()) controller.incrementHome() XCTAssertEqual(controller.score.homePoints, 1) } func testApplyBoardActionOptimisticThenConfirm() async { let api = MatchLiveAPI() let controller = ScoreController( scoreRepository: ScoreRepository(api: api), sessionCable: SessionCableService() ) controller.bind(sessionId: "session-1", initial: ScoreState()) // Senza backend: fallisce e ripristina — ma l'ottimistico deve almeno scattare durante la chiamata. // Verifichiamo solo che applyOptimistic funzioni via applyAction locale. controller.applyAction("home_point") XCTAssertEqual(controller.score.homePoints, 1) } }