Skip to content

Add TestServer.SSH — mock SSH server support#51

Draft
richard-ash wants to merge 2 commits intorichard/refactor-http-websocketfrom
richard/refactor-instance-manager
Draft

Add TestServer.SSH — mock SSH server support#51
richard-ash wants to merge 2 commits intorichard/refactor-http-websocketfrom
richard/refactor-instance-manager

Conversation

@richard-ash
Copy link
Collaborator

@richard-ash richard-ash commented Mar 5, 2026

The goal of TestServer is to support any network protocol under a single, consistent testing API, with shared lifecycle management and ExUnit integration. Right now adding a new protocol is constrained because InstanceManager has HTTP-specific assumptions baked in — it hardcodes HTTP instance construction and teardown, making 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 introduces TestServer.SSH as the first protocol under this model. HTTP/WebSocket will be refactored to match in a follow-up once the pattern is validated.

@richard-ash richard-ash changed the title Refactor InstanceManager to be protocol-agnostic Add TestServer.SSH — mock SSH server support with exec and shell handlers Mar 5, 2026
@richard-ash richard-ash changed the title Add TestServer.SSH — mock SSH server support with exec and shell handlers Add TestServer.SSH — mock SSH server support Mar 5, 2026
@richard-ash richard-ash force-pushed the richard/update-deps branch from 9f63b03 to b7ce03d Compare March 6, 2026 01:10
@danschultzer danschultzer force-pushed the richard/update-deps branch from b7ce03d to c905faa Compare March 6, 2026 04:19
Base automatically changed from richard/update-deps to main March 6, 2026 04:20
@richard-ash richard-ash force-pushed the richard/refactor-instance-manager branch 6 times, most recently from af202a5 to 9af6775 Compare March 6, 2026 22:15
@richard-ash richard-ash changed the base branch from main to richard/refactor-http-websocket March 6, 2026 22:15
@richard-ash richard-ash force-pushed the richard/refactor-http-websocket branch 4 times, most recently from 129cc4a to 49ccbd4 Compare March 6, 2026 22:24
@richard-ash richard-ash force-pushed the richard/refactor-instance-manager branch 2 times, most recently from c8220ca to db118cd Compare March 6, 2026 22:34
@richard-ash richard-ash force-pushed the richard/refactor-http-websocket branch 3 times, most recently from e1919a5 to 409a973 Compare March 7, 2026 02:13
@richard-ash richard-ash force-pushed the richard/refactor-instance-manager branch from db118cd to 80a6eb8 Compare March 7, 2026 07:42
@richard-ash richard-ash force-pushed the richard/refactor-http-websocket branch from 409a973 to 634d354 Compare March 9, 2026 05:54
@richard-ash richard-ash force-pushed the richard/refactor-instance-manager branch from 80a6eb8 to 48defca Compare March 9, 2026 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant