Files
MatchLiveTv/native/ios/MatchLiveTvTests/ScoreControllerTests.swift
Emiliano Frascaro 594853ed04 Fix punteggio broadcast iOS: decodifica score e aggiornamento UI.
ScoreStateDto non leggeva home_points con convertFromSnakeCase; ScoreController assegna sempre lo stato, aggiornamento ottimistico e refresh overlay.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-15 07:37:27 +02:00

29 lines
1.1 KiB
Swift

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)
}
}