import XCTest import EventKit @testable import OreCalendar @MainActor final class CalendarServiceTests: XCTestCase { var service: CalendarService! let testKey = "selectedCalendars" override func setUp() async throws { try await super.setUp() service = CalendarService() UserDefaults.standard.removeObject(forKey: testKey) } override func tearDown() async throws { UserDefaults.standard.removeObject(forKey: testKey) service = nil try await super.tearDown() } func testLoadDefaultSelectedCalendars_withSavedCalendars() async throws { let savedCalendarIDs = ["calendar1", "calendar2", "calendar3"] UserDefaults.standard.set(savedCalendarIDs, forKey: testKey) service.loadDefaultSelectedCalendars() XCTAssertEqual(service.selectedCalendars, Set(savedCalendarIDs)) } func testLoadDefaultSelectedCalendars_withoutSavedCalendars() async throws { UserDefaults.standard.removeObject(forKey: testKey) service.loadDefaultSelectedCalendars() let expectedCalendarIDs = Set(service.availableCalendars.map { $0.calendarIdentifier }) XCTAssertEqual(service.selectedCalendars, expectedCalendarIDs) } func testSaveSelectedCalendars() async throws { let testCalendarIDs = ["cal1", "cal2", "cal3"] service.selectedCalendars = Set(testCalendarIDs) service.saveSelectedCalendars() let savedCalendars = UserDefaults.standard.array(forKey: testKey) as? [String] XCTAssertNotNil(savedCalendars) XCTAssertEqual(Set(savedCalendars!), Set(testCalendarIDs)) } }