Skip to content

Commit 3120787

Browse files
committed
[#698] Update code
1 parent 02e8fb5 commit 3120787

4 files changed

Lines changed: 230 additions & 229 deletions

File tree

template/Modules/Data/Tests/Sources/Repositories/RatingPromptStorageTests.swift renamed to template/Modules/Data/Tests/Sources/Repositories/RatingPromptRepositoryTests.swift

Lines changed: 70 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -4,160 +4,160 @@ import Testing
44
@testable import Data
55
import Domain
66

7-
@Suite("RatingPromptStorage")
8-
struct RatingPromptStorageTests {
9-
7+
@Suite("RatingPromptRepository")
8+
struct RatingPromptRepositoryTests {
9+
1010
@Test("getRatingPromptData returns data with default values when no data is stored")
11-
func getRatingPromptDataReturnsDataWithDefaultValuesWhenNoDataIsStored() {
11+
func getRatingPromptDataReturnsDataWithDefaultValuesWhenNoDataIsStored() async {
1212
let userDefaultsManager = UserDefaultsManagerMock()
13-
let storage = RatingPromptStorage(userDefaultsManager: userDefaultsManager)
14-
15-
let data = storage.getRatingPromptData()
16-
13+
let repository = RatingPromptRepository(userDefaultsManager: userDefaultsManager)
14+
15+
let data = await repository.getRatingPromptData()
16+
1717
#expect(data.appLaunchCount == 0)
1818
#expect(data.firstLaunchDate == nil)
1919
#expect(data.lastPromptedVersion == nil)
2020
#expect(data.significantEventCount == 0)
2121
}
22-
22+
2323
@Test("getRatingPromptData returns stored values")
24-
func getRatingPromptDataReturnsStoredValues() throws {
24+
func getRatingPromptDataReturnsStoredValues() async throws {
2525
let userDefaultsManager = UserDefaultsManagerMock()
2626
let testDate = Date()
2727
let encodedDate = try JSONEncoder().encode(testDate)
28-
28+
2929
userDefaultsManager.setStorageValue(5, forKey: UserDefaultsKey.ratingPromptAppLaunchCount.rawValue)
3030
userDefaultsManager.setStorageValue(encodedDate, forKey: UserDefaultsKey.ratingPromptFirstLaunchDate.rawValue)
3131
userDefaultsManager.setStorageValue("1.2.0", forKey: UserDefaultsKey.ratingPromptLastPromptedVersion.rawValue)
3232
userDefaultsManager.setStorageValue(3, forKey: UserDefaultsKey.ratingPromptSignificantEventCount.rawValue)
33-
34-
let storage = RatingPromptStorage(userDefaultsManager: userDefaultsManager)
35-
let data = storage.getRatingPromptData()
36-
33+
34+
let repository = RatingPromptRepository(userDefaultsManager: userDefaultsManager)
35+
let data = await repository.getRatingPromptData()
36+
3737
#expect(data.appLaunchCount == 5)
3838
#expect(data.firstLaunchDate?.timeIntervalSince1970 == testDate.timeIntervalSince1970)
3939
#expect(data.lastPromptedVersion == "1.2.0")
4040
#expect(data.significantEventCount == 3)
4141
}
42-
42+
4343
@Test("getRatingPromptData handles invalid date data gracefully")
44-
func getRatingPromptDataHandlesInvalidDateDataGracefully() {
44+
func getRatingPromptDataHandlesInvalidDateDataGracefully() async {
4545
let userDefaultsManager = UserDefaultsManagerMock()
4646
let invalidDateData = Data([0x00, 0x01, 0x02]) // Invalid JSON for Date
47-
47+
4848
userDefaultsManager.setStorageValue(invalidDateData, forKey: UserDefaultsKey.ratingPromptFirstLaunchDate.rawValue)
49-
50-
let storage = RatingPromptStorage(userDefaultsManager: userDefaultsManager)
51-
let data = storage.getRatingPromptData()
52-
49+
50+
let repository = RatingPromptRepository(userDefaultsManager: userDefaultsManager)
51+
let data = await repository.getRatingPromptData()
52+
5353
#expect(data.firstLaunchDate == nil)
5454
}
55-
55+
5656
@Test("recordAppLaunch increments launch count")
57-
func recordAppLaunchIncrementsLaunchCount() {
57+
func recordAppLaunchIncrementsLaunchCount() async {
5858
let userDefaultsManager = UserDefaultsManagerMock()
5959
userDefaultsManager.setStorageValue(5, forKey: UserDefaultsKey.ratingPromptAppLaunchCount.rawValue)
60-
61-
let storage = RatingPromptStorage(userDefaultsManager: userDefaultsManager)
62-
storage.recordAppLaunch()
63-
60+
61+
let repository = RatingPromptRepository(userDefaultsManager: userDefaultsManager)
62+
await repository.recordAppLaunch()
63+
6464
let updatedCount = userDefaultsManager.getIntValue(for: UserDefaultsKey.ratingPromptAppLaunchCount.rawValue)
6565
#expect(updatedCount == 6)
6666
#expect(userDefaultsManager.didCallSynchronize)
6767
}
68-
68+
6969
@Test("recordAppLaunch sets first launch date when not already set")
70-
func recordAppLaunchSetsFirstLaunchDateWhenNotAlreadySet() throws {
70+
func recordAppLaunchSetsFirstLaunchDateWhenNotAlreadySet() async throws {
7171
let userDefaultsManager = UserDefaultsManagerMock()
72-
let storage = RatingPromptStorage(userDefaultsManager: userDefaultsManager)
73-
74-
storage.recordAppLaunch()
75-
72+
let repository = RatingPromptRepository(userDefaultsManager: userDefaultsManager)
73+
74+
await repository.recordAppLaunch()
75+
7676
let dateData = userDefaultsManager.getDataValue(for: UserDefaultsKey.ratingPromptFirstLaunchDate.rawValue)
7777
#expect(dateData != nil)
78-
78+
7979
let decodedDate = try JSONDecoder().decode(Date.self, from: dateData!)
8080
let now = Date()
8181
// Allow for small time difference (within 1 second)
8282
#expect(abs(decodedDate.timeIntervalSince(now)) < 1.0)
8383
}
84-
84+
8585
@Test("recordAppLaunch does not overwrite existing first launch date")
86-
func recordAppLaunchDoesNotOverwriteExistingFirstLaunchDate() throws {
86+
func recordAppLaunchDoesNotOverwriteExistingFirstLaunchDate() async throws {
8787
let userDefaultsManager = UserDefaultsManagerMock()
8888
let existingDate = Date().addingTimeInterval(-1000)
8989
let encodedExistingDate = try JSONEncoder().encode(existingDate)
90-
90+
9191
userDefaultsManager.setStorageValue(encodedExistingDate, forKey: UserDefaultsKey.ratingPromptFirstLaunchDate.rawValue)
92-
93-
let storage = RatingPromptStorage(userDefaultsManager: userDefaultsManager)
94-
storage.recordAppLaunch()
95-
92+
93+
let repository = RatingPromptRepository(userDefaultsManager: userDefaultsManager)
94+
await repository.recordAppLaunch()
95+
9696
let dateData = userDefaultsManager.getDataValue(for: UserDefaultsKey.ratingPromptFirstLaunchDate.rawValue)!
9797
let storedDate = try JSONDecoder().decode(Date.self, from: dateData)
98-
98+
9999
#expect(storedDate.timeIntervalSince1970 == existingDate.timeIntervalSince1970)
100100
}
101-
101+
102102
@Test("recordSignificantEvent increments significant event count")
103-
func recordSignificantEventIncrementsSignificantEventCount() {
103+
func recordSignificantEventIncrementsSignificantEventCount() async {
104104
let userDefaultsManager = UserDefaultsManagerMock()
105105
userDefaultsManager.setStorageValue(3, forKey: UserDefaultsKey.ratingPromptSignificantEventCount.rawValue)
106-
107-
let storage = RatingPromptStorage(userDefaultsManager: userDefaultsManager)
108-
storage.recordSignificantEvent()
109-
106+
107+
let repository = RatingPromptRepository(userDefaultsManager: userDefaultsManager)
108+
await repository.recordSignificantEvent()
109+
110110
let updatedCount = userDefaultsManager.getIntValue(for: UserDefaultsKey.ratingPromptSignificantEventCount.rawValue)
111111
#expect(updatedCount == 4)
112112
#expect(userDefaultsManager.didCallSynchronize)
113113
}
114-
114+
115115
@Test("recordPromptShown stores the app version")
116-
func recordPromptShownStoresTheAppVersion() {
116+
func recordPromptShownStoresTheAppVersion() async {
117117
let userDefaultsManager = UserDefaultsManagerMock()
118-
let storage = RatingPromptStorage(userDefaultsManager: userDefaultsManager)
119-
120-
storage.recordPromptShown(for: "2.1.0")
121-
118+
let repository = RatingPromptRepository(userDefaultsManager: userDefaultsManager)
119+
120+
await repository.recordPromptShown(for: "2.1.0")
121+
122122
let storedVersion = userDefaultsManager.getStringValue(for: UserDefaultsKey.ratingPromptLastPromptedVersion.rawValue)
123123
#expect(storedVersion == "2.1.0")
124124
#expect(userDefaultsManager.didCallSynchronize)
125125
}
126-
126+
127127
@Test("resetCounters resets launch and event counters to zero")
128-
func resetCountersResetsLaunchAndEventCountersToZero() {
128+
func resetCountersResetsLaunchAndEventCountersToZero() async {
129129
let userDefaultsManager = UserDefaultsManagerMock()
130130
userDefaultsManager.setStorageValue(10, forKey: UserDefaultsKey.ratingPromptAppLaunchCount.rawValue)
131131
userDefaultsManager.setStorageValue(5, forKey: UserDefaultsKey.ratingPromptSignificantEventCount.rawValue)
132-
133-
let storage = RatingPromptStorage(userDefaultsManager: userDefaultsManager)
134-
storage.resetCounters()
135-
132+
133+
let repository = RatingPromptRepository(userDefaultsManager: userDefaultsManager)
134+
await repository.resetCounters()
135+
136136
let launchCount = userDefaultsManager.getIntValue(for: UserDefaultsKey.ratingPromptAppLaunchCount.rawValue)
137137
let eventCount = userDefaultsManager.getIntValue(for: UserDefaultsKey.ratingPromptSignificantEventCount.rawValue)
138-
138+
139139
#expect(launchCount == 0)
140140
#expect(eventCount == 0)
141141
#expect(userDefaultsManager.didCallSynchronize)
142142
}
143-
143+
144144
@Test("clearAllData removes all rating prompt related data")
145-
func clearAllDataRemovesAllRatingPromptRelatedData() throws {
145+
func clearAllDataRemovesAllRatingPromptRelatedData() async throws {
146146
let userDefaultsManager = UserDefaultsManagerMock()
147147
let testDate = Date()
148148
let encodedDate = try JSONEncoder().encode(testDate)
149-
149+
150150
// Set up initial data
151151
userDefaultsManager.setStorageValue(10, forKey: UserDefaultsKey.ratingPromptAppLaunchCount.rawValue)
152152
userDefaultsManager.setStorageValue(encodedDate, forKey: UserDefaultsKey.ratingPromptFirstLaunchDate.rawValue)
153153
userDefaultsManager.setStorageValue("1.0.0", forKey: UserDefaultsKey.ratingPromptLastPromptedVersion.rawValue)
154154
userDefaultsManager.setStorageValue(5, forKey: UserDefaultsKey.ratingPromptSignificantEventCount.rawValue)
155-
156-
let storage = RatingPromptStorage(userDefaultsManager: userDefaultsManager)
157-
storage.clearAllData()
158-
155+
156+
let repository = RatingPromptRepository(userDefaultsManager: userDefaultsManager)
157+
await repository.clearAllData()
158+
159159
// Verify all data is cleared
160-
let data = storage.getRatingPromptData()
160+
let data = await repository.getRatingPromptData()
161161
#expect(data.appLaunchCount == 0)
162162
#expect(data.firstLaunchDate == nil)
163163
#expect(data.lastPromptedVersion == nil)

0 commit comments

Comments
 (0)