diff --git a/PadelClubDataTests/DataAccessSyncTests.swift b/PadelClubDataTests/DataAccessSyncTests.swift index d708299..497e7f4 100644 --- a/PadelClubDataTests/DataAccessSyncTests.swift +++ b/PadelClubDataTests/DataAccessSyncTests.swift @@ -20,7 +20,9 @@ struct DataAccessSyncTests { var secondStoreCenter: StoreCenter init() async throws { - + FileManager.default.deleteDirectoryInDocuments(directoryName: "storage") + FileManager.default.deleteDirectoryInDocuments(directoryName: "storage-2") + self.secondStoreCenter = StoreCenter(directoryName: "storage-2") self.secondStoreCenter.configureURLs(secureScheme: false, domain: "127.0.0.1:8000", webSockets: false) self.secondStoreCenter.tokenKeychain = MockKeychainStore(fileName: "storage-2/token.json") @@ -30,7 +32,9 @@ struct DataAccessSyncTests { self.secondStoreCenter.classProject = "PadelClubData" let token2 = try? self.secondStoreCenter.rawTokenShouldNotBeUsed() - try await self.login(storeCenter: self.secondStoreCenter, username: self.username2, password: self.password2) + if token2 == nil { + try await self.login(storeCenter: self.secondStoreCenter, username: self.username2, password: self.password2) + } StoreCenter.main.configureURLs(secureScheme: false, domain: "127.0.0.1:8000", webSockets: false) StoreCenter.main.tokenKeychain = MockKeychainStore(fileName: "storage/token.json") @@ -39,7 +43,9 @@ struct DataAccessSyncTests { StoreCenter.main.classProject = "PadelClubData" let token = try? StoreCenter.main.rawTokenShouldNotBeUsed() - try await self.login(storeCenter: StoreCenter.main, username: self.username1, password: self.password1) + if token == nil { + try await self.login(storeCenter: StoreCenter.main, username: self.username1, password: self.password1) + } } mutating func login(storeCenter: StoreCenter, username: String, password: String) async throws { @@ -88,7 +94,7 @@ struct DataAccessSyncTests { await tournamentColA.addOrUpdateAsync(instance: tournamentA) // Share with user2 - try StoreCenter.main.setAuthorizedUsers(for: tournamentA, users: [userId2]) + try await StoreCenter.main.setAuthorizedUsersAsync(for: tournamentA, users: [userId2]) let dataB = try await self.secondStoreCenter.testSynchronizeOnceAsync() let syncDataB = try SyncData(data: dataB, storeCenter: self.secondStoreCenter) diff --git a/PadelClubDataTests/SynchronizationTests.swift b/PadelClubDataTests/SynchronizationTests.swift index f4074a0..0ad34e3 100644 --- a/PadelClubDataTests/SynchronizationTests.swift +++ b/PadelClubDataTests/SynchronizationTests.swift @@ -23,6 +23,9 @@ struct SynchronizationTests { init() async throws { + FileManager.default.deleteDirectoryInDocuments(directoryName: "storage") + FileManager.default.deleteDirectoryInDocuments(directoryName: "storage-2") + self.secondStoreCenter = StoreCenter(directoryName: "storage-2") self.secondStoreCenter.configureURLs(secureScheme: false, domain: "127.0.0.1:8000", webSockets: false) self.secondStoreCenter.tokenKeychain = MockKeychainStore(fileName: "storage-2/token.json") @@ -208,14 +211,21 @@ struct SynchronizationTests { await eventCollectionA.deleteAsync(contentOfs: Array(eventCollectionA)) let eventCollectionB: SyncedCollection = await self.secondStoreCenter.mainStore.asyncLoadingSynchronizedCollection() eventCollectionB.clear() - + // cleanup sync residues let _ = try await self.secondStoreCenter.testSynchronizeOnceAsync() - + + #expect(eventCollectionA.count == 0) + #expect(eventCollectionB.count == 0) + // Create let eventA: Event = Event(creator: userId, club: nil, name: "test-b") await eventCollectionA.addOrUpdateAsync(instance: eventA) + #expect(eventCollectionA.count == 1) + let serverEvents: [Event] = try await StoreCenter.main.service().get() + #expect(serverEvents.count == 1) + // Retrieve Event let dataB = try await self.secondStoreCenter.testSynchronizeOnceAsync() let syncDataB = try SyncData(data: dataB, storeCenter: self.secondStoreCenter)