Fix avanzamento quarto basket e regia senza cronometro.

Normalizza il periodo nel backend quando l'app invia "Q1" via cable, così advance_period aggiorna regia e overlay; rimuove i controlli cronometro dalla regia e rende più tollerante il decode iOS al resume sessione.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Emiliano Frascaro
2026-06-20 16:15:44 +02:00
parent c92099a41b
commit 793cfaaaf1
18 changed files with 861 additions and 452 deletions

View File

@@ -101,4 +101,23 @@ final class ScoreControllerTests: XCTestCase {
XCTAssertEqual(controller.score.homePoints, 6)
XCTAssertEqual(controller.score.awayPoints, 7)
}
func testCableAdvancePeriodUpdatesOverlayState() {
let controller = ScoreController(
scoreRepository: ScoreRepository(api: MatchLiveAPI()),
sessionCable: SessionCableService()
)
var local = ScoreState(boardType: "basket", period: 1, periodLabel: "Q1")
local.homePoints = 0
local.awayPoints = 4
controller.bind(sessionId: "session-1", initial: local)
var remote = ScoreState(boardType: "basket", period: 2, periodLabel: "Q2")
remote.homePoints = 0
remote.awayPoints = 4
controller.applyRemote(remote, source: .cable)
XCTAssertEqual(controller.score.periodLabel, "Q2")
XCTAssertEqual(controller.score.period, 2)
}
}