-
Notifications
You must be signed in to change notification settings - Fork 15
fix: Cache Functionality Fixes and Comprehensive Test Suite #90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
matthewelwell
merged 25 commits into
Flagsmith:fix/cache-http-header-dependency
from
foresightmobile:feature/cache-test-based-fix
Sep 24, 2025
Merged
fix: Cache Functionality Fixes and Comprehensive Test Suite #90
matthewelwell
merged 25 commits into
Flagsmith:fix/cache-http-header-dependency
from
foresightmobile:feature/cache-test-based-fix
Sep 24, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
… is in fact testing the correct behaviour
…ain in the Example UI.
…asn't properly checked for null
…e the API key available
that expired cache entries are not returned when using .returnCacheDataDontLoad policy
…eUseCaseTests now they're more stringent
The concurrent request test was failing and this solves this issue
318fb0d
into
Flagsmith:fix/cache-http-header-dependency
1 of 5 checks passed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Cache Functionality Fixes and Comprehensive Test Suite
Overview
This PR addresses critical cache functionality issues in the Flagsmith iOS SDK and adds a comprehensive test suite to ensure cache behavior works correctly across all scenarios.
Problem Statement
The SDK's caching mechanism was not functioning as expected when
skipAPI=truewas configured. Specifically:skipAPI=truewas setKey Changes
1. APIManager Cache Fixes (
FlagsmithClient/Classes/Internal/APIManager.swift)ensureResponseIsCached()method to manually store successful responses when URLSession's automatic caching failsnilinstead of proposed response)2. SSE Manager Crash Fix (
FlagsmithClient/Classes/Internal/SSEManager.swift)3. Comprehensive Test Suite
Added over 1,600 lines of thorough cache testing:
CacheTests.swift(737 lines)FlagsmithCacheIntegrationTests.swift(521 lines)CustomerCacheUseCaseTests.swift(398 lines)CachedURLResponseTests.swift(183 lines)APIManagerTests.swift(197 lines)4. Testing Infrastructure
TestConfig.swift: Centralized test configuration with environment variable support for API keysREADME_Testing.md: Documentation for running cache tests5. Example App Improvements (
Example/FlagsmithClient/SwiftUIView.swift)Testing
All tests have been updated to:
FLAGSMITH_TEST_API_KEYenvironment variable for integration testsImpact
skipAPI=trueBreaking Changes
None - all changes are backward compatible.
Verification
Run tests with:
The comprehensive test suite ensures cache functionality works correctly across all supported scenarios.
New Features
Bug Fixes
Chores
Tests
Documentation