ScoreStateDto non leggeva home_points con convertFromSnakeCase; ScoreController assegna sempre lo stato, aggiornamento ottimistico e refresh overlay. Co-authored-by: Cursor <cursoragent@cursor.com>
29 lines
1.1 KiB
Swift
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)
|
|
}
|
|
}
|