Add an option to make a direct call in E2E testing flavor - #1471
Merged
Conversation
Contributor
SDK Size Comparison 📏
|
aleksandar-apostolov
approved these changes
Jul 2, 2025
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
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.
🎯 Goal
Add an option to make a direct call in E2E testing flavor
[AND-568]
🛠 Implementation details
This PR introduces an
InMemoryStoreinterface used to temporarily store user-related data only in the E2eTesting build flavor.✨ Purpose
The main goal is to make relevant user data (such as the one set during test setup or joining a call) accessible globally during end-to-end (E2E) test flows — without modifying the SDK’s core state.
In non-E2E flavors, the implementation is safely no-op to avoid unnecessary memory usage or behavior differences.
🏗️ Implementation Details
✅
InMemoryStoreImpl: Used only in E2eTesting builds; holds the user in memory for temporary access.🚫
NoopMemoryStoreImpl: Used in all other flavors; safely ignores calls and always returns null.🧩 Hilt Integration
This ensures the correct implementation is injected at runtime based on the current build flavor, with zero overhead for production builds.
🔧 Build Flavor Refactor
Replaced the old
StreamFlavorsobject:with a more structured and extensible approach using
StreamBuildFlavorandStreamBuildFlavorUtil:This change:
enum class StreamBuildFlavorisE2eTesting) in a utility objectDevelopmentfor unknown or missing values🎨 UI Changes
Add relevant videos
Screen_Recording_20250702_163547_Stream.Video.Calls.E2E.Testing.mp4
🧪 Testing