Skip to content

Commit ea73226

Browse files
committed
Update AutoPollingTests.swift
1 parent b649e82 commit ea73226

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

Tests/ConfigCatTests/AutoPollingTests.swift

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,32 @@ class AutoPollingTests: XCTestCase {
280280
XCTAssert(elapsedTimeInSeconds < 1)
281281
}
282282

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+
283309
func testInitWaitTimeReturnCached() throws {
284310
let engine = MockEngine()
285311
engine.enqueueResponse(response: Response(body: String(format: testJsonFormat, "test"), statusCode: 200, delay: 5))

0 commit comments

Comments
 (0)