Skip to content

Commit 745c03f

Browse files
authored
Prevent schedule tests from making a plist file (#16404)
2 parents de1bd6a + fed061c commit 745c03f

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

WooCommerce/WooCommerceTests/Tools/BackgroundTaskScheduleTests.swift

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ struct BackgroundTaskScheduleTests {
88
private let timeProvider: MockTimeProvider
99

1010
init() {
11-
let userDefaults = UserDefaults(suiteName: #file)!
12-
userDefaults.removePersistentDomain(forName: #file)
1311
timeProvider = MockTimeProvider()
12+
let userDefaults = InMemoryUserDefaults()
13+
1414
sut = BackgroundTaskSchedule(timeProvider: timeProvider, userDefaults: userDefaults)
1515
}
1616

@@ -222,3 +222,25 @@ private class MockTimeProvider: TimeProvider {
222222
fatalError("not implemented")
223223
}
224224
}
225+
226+
/// In-memory UserDefaults that doesn't persist to disk
227+
/// Each instance has its own isolated storage
228+
private class InMemoryUserDefaults: UserDefaults {
229+
private var storage: [String: Any] = [:]
230+
231+
override func set(_ value: Any?, forKey defaultName: String) {
232+
storage[defaultName] = value
233+
}
234+
235+
override func data(forKey defaultName: String) -> Data? {
236+
storage[defaultName] as? Data
237+
}
238+
239+
override func object(forKey defaultName: String) -> Any? {
240+
storage[defaultName]
241+
}
242+
243+
override func removeObject(forKey defaultName: String) {
244+
storage.removeValue(forKey: defaultName)
245+
}
246+
}

0 commit comments

Comments
 (0)