@@ -280,6 +280,32 @@ class AutoPollingTests: XCTestCase {
280
280
XCTAssert ( elapsedTimeInSeconds < 1 )
281
281
}
282
282
283
+ func testCacheIsNotExpiredCallsOnReady( ) throws {
284
+ let engine = MockEngine ( )
285
+ engine. enqueueResponse ( response: Response ( body: String ( format: testJsonFormat, " test " ) , statusCode: 200 , delay: 5 ) )
286
+
287
+ var ready = false
288
+ let hooks = Hooks ( )
289
+ hooks. addOnReady {
290
+ ready = true
291
+ }
292
+ let initValue = String ( format: testJsonFormat, " test " ) . asEntryString ( )
293
+ let cache = SingleValueCache ( initValue: initValue)
294
+ let mode = PollingModes . autoPoll ( autoPollIntervalInSeconds: 60 , maxInitWaitTimeInSeconds: 1 )
295
+ let fetcher = ConfigFetcher ( httpEngine: engine, logger: Logger . noLogger, sdkKey: " " , mode: mode. identifier, dataGovernance: . global)
296
+ let service = ConfigService ( log: Logger . noLogger, fetcher: fetcher, cache: cache, pollingMode: mode, hooks: hooks, sdkKey: " " , offline: false )
297
+
298
+ let expectation1 = expectation ( description: " wait for settings " )
299
+ service. settings { settingsResult in
300
+ XCTAssertFalse ( settingsResult. settings. isEmpty)
301
+ expectation1. fulfill ( )
302
+ }
303
+ wait ( for: [ expectation1] , timeout: 5 )
304
+
305
+ XCTAssertTrue ( engine. requests. isEmpty)
306
+ XCTAssertTrue ( ready)
307
+ }
308
+
283
309
func testInitWaitTimeReturnCached( ) throws {
284
310
let engine = MockEngine ( )
285
311
engine. enqueueResponse ( response: Response ( body: String ( format: testJsonFormat, " test " ) , statusCode: 200 , delay: 5 ) )
0 commit comments