Refactor TestServer into per-protocol namespaces #52
Open
richard-ash wants to merge 1 commit intomainfrom
Open
Refactor TestServer into per-protocol namespaces #52richard-ash wants to merge 1 commit intomainfrom
richard-ash wants to merge 1 commit intomainfrom
Conversation
7552ad4 to
91c6090
Compare
32abf17 to
4d32bb1
Compare
91c6090 to
af202a5
Compare
4d32bb1 to
27672a8
Compare
49ccbd4 to
c8a07d6
Compare
e1919a5 to
409a973
Compare
409a973 to
634d354
Compare
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.
TestServer's goal is to support any network protocol under a single, consistent testing API with a shared lifecycle management and ExUnit integration. Right now adding a new protocol is constrained because
InstanceManagerhas HTTP-specific assumptions baked in, it hardcodes HTTP instance construction and teardown which makes it impossible to reuse for other protocols.The natural evolution is to move protocol-specific logic into submodules (
TestServer.PROTOCOL) while keeping InstanceManager and InstanceSupervisor as shared, protocol-agnostic infrastructure.This PR decouples protocol-specific logic from shared infrastructure:
TestServer.HTTP— all HTTP/WebSocket public API and implementation, including server adapters underTestServer.HTTP.Server.*TestServer.InstanceManager— now fully protocol-agnostic. Instances self-identify via a:protocoltag and modules filter by it