crossmate

A collaborative crossword app for iOS
Log | Files | Refs | LICENSE

PerGameZoneTests.swift (1222B)


      1 import CloudKit
      2 import Foundation
      3 import Testing
      4 
      5 @testable import Crossmate
      6 
      7 @Suite("PerGameZone")
      8 struct PerGameZoneTests {
      9 
     10     @Test("zoneID uses game UUID as zone name")
     11     func zoneIDZoneName() {
     12         let id = UUID(uuidString: "12345678-1234-1234-1234-123456789ABC")!
     13         let zone = RecordSerializer.zoneID(for: id)
     14         #expect(zone.zoneName == "game-12345678-1234-1234-1234-123456789ABC")
     15     }
     16 
     17     @Test("zoneID defaults to CKCurrentUserDefaultName for owner")
     18     func zoneIDDefaultOwner() {
     19         let id = UUID()
     20         let zone = RecordSerializer.zoneID(for: id)
     21         #expect(zone.ownerName == CKCurrentUserDefaultName)
     22     }
     23 
     24     @Test("zoneID accepts explicit ownerName for shared games")
     25     func zoneIDExplicitOwner() {
     26         let id = UUID()
     27         let zone = RecordSerializer.zoneID(for: id, ownerName: "_someOwnerID")
     28         #expect(zone.ownerName == "_someOwnerID")
     29     }
     30 
     31 @Test("recordName(forGameID:) embedded in zoneID zoneName")
     32     func gameRecordNameMatchesZoneName() {
     33         let id = UUID()
     34         let zoneName = RecordSerializer.zoneID(for: id).zoneName
     35         let recordName = RecordSerializer.recordName(forGameID: id)
     36         #expect(zoneName == recordName)
     37     }
     38 }