// // ServerStateTests.swift // PadelClubTests // // Created by Laurent Morvillier on 15/04/2025. // import Testing import LeStorage @testable import PadelClub struct ServerStateTests { let username: String = "sync" let password: String = "sync123" var user: CustomUser? = nil init() { StoreCenter.main.configureURLs(secureScheme: false, domain: "127.0.0.1:8000") } @Test func synchronizationTest() async throws { _ = try await self.login() try await StoreCenter.main.synchronizeLastUpdates() } @Test func createTournament() async throws { let user = try await self.login() // Cleanup try DataStore.shared.events.deleteAll() try await DataStore.shared.events.loadDataFromServerIfAllowed(clear: true) #expect(DataStore.shared.events.count == 0) try await DataStore.shared.tournaments.loadDataFromServerIfAllowed(clear: true) #expect(DataStore.shared.tournaments.count == 0) // Create let event: Event = Event(creator: user.id, club: nil, name: "test") DataStore.shared.events.addOrUpdate(instance: event) let tournament: Tournament = Tournament.fake() tournament.event = event.id DataStore.shared.tournaments.addOrUpdate(instance: tournament) // Test server content try await DataStore.shared.events.loadDataFromServerIfAllowed(clear: true) #expect(DataStore.shared.events.count == 1) try await DataStore.shared.tournaments.loadDataFromServerIfAllowed(clear: true) #expect(DataStore.shared.tournaments.count == 1) } func login() async throws -> CustomUser { let user: CustomUser = try await StoreCenter.main.service().login(username: self.username, password: self.password) return user } }