From 72e931a4bc8c94f002d427e6e0b0bf34f7a5649f Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Mon, 5 Oct 2026 01:02:37 +0000 Subject: [PATCH 1/2] fix: expose worker hostname as a proxy network alias Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- .docker/scripts/proxy/services.sh | 3 ++- docker-compose.yml | 2 -- tests/proxy/services.bats | 42 ++++++++++++++++++++++++++++++- tests/worker/contract.bats | 8 ------ 4 files changed, 43 insertions(+), 12 deletions(-) diff --git a/.docker/scripts/proxy/services.sh b/.docker/scripts/proxy/services.sh index 4a7724e..ed00d15 100644 --- a/.docker/scripts/proxy/services.sh +++ b/.docker/scripts/proxy/services.sh @@ -20,7 +20,8 @@ connect_proxy_to_project_network() { return 0 fi - Docker network connect "$network" "$proxy_container" + public_host="${NEXTCLOUD_HOST:-${PROJECT_NAME:-}.localhost}" + Docker network connect --alias "$public_host" "$network" "$proxy_container" } disconnect_proxy_from_project_network() { diff --git a/docker-compose.yml b/docker-compose.yml index 60673b1..131043b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -132,8 +132,6 @@ services: command: sleep infinity depends_on: - nextcloud - extra_hosts: - - "${NEXTCLOUD_HOST:-${COMPOSE_PROJECT_NAME}.localhost}:host-gateway" restart: unless-stopped networks: - default diff --git a/tests/proxy/services.bats b/tests/proxy/services.bats index 9a02fb7..200d955 100644 --- a/tests/proxy/services.bats +++ b/tests/proxy/services.bats @@ -11,6 +11,7 @@ setup() { source "$REPO_ROOT/.docker/scripts/proxy/services.sh" PROJECT_NAME=current + NEXTCLOUD_HOST=current.localhost } @test "proxy is connected to the current Compose project network" { @@ -22,7 +23,46 @@ setup() { connect_proxy_to_project_network - grep -q '^docker network connect current_default librecode-dev-proxy$' "$TEST_LOG" + grep -q '^docker network connect --alias current.localhost current_default librecode-dev-proxy +} + +@test "proxy is not connected twice to the project network" { + compatible_proxy_container() { printf '%s\n' librecode-dev-proxy; } + container_networks() { printf '{"current_default":{}}\n'; } + Docker() { + printf 'docker %s\n' "$*" >> "$TEST_LOG" + } + + connect_proxy_to_project_network + + ! grep -q '^docker network connect' "$TEST_LOG" +} + +@test "project network is disconnected from proxy during release" { + compatible_proxy_container() { printf '%s\n' librecode-dev-proxy; } + container_networks() { printf '{"current_default":{}}\n'; } + Docker() { + printf 'docker %s\n' "$*" >> "$TEST_LOG" + } + + disconnect_proxy_from_project_network + + grep -q '^docker network disconnect current_default librecode-dev-proxy$' "$TEST_LOG" +} + +@test "backend services wait for coordinator network readiness" { + main="$REPO_ROOT/docker-compose.yml" + fixture="$REPO_ROOT/tests/proxy/fixtures/compose.yml" + + grep -A8 '^ nginx:' "$main" | grep -q 'proxy-coordinator:' + grep -A10 '^ nginx:' "$main" | grep -q 'condition: service_healthy' + grep -A8 '^ nginx:' "$fixture" | grep -q 'proxy-coordinator:' + grep -A10 '^ nginx:' "$fixture" | grep -q 'condition: service_healthy' + + grep -A20 '^ proxy-coordinator:' "$main" | grep -q 'test -f /tmp/librecode-proxy-ready' + grep -A20 '^ proxy-coordinator:' "$fixture" | grep -q 'test -f /tmp/librecode-proxy-ready' +} + "$TEST_LOG" } @test "proxy is not connected twice to the project network" { diff --git a/tests/worker/contract.bats b/tests/worker/contract.bats index a8123e3..351d354 100644 --- a/tests/worker/contract.bats +++ b/tests/worker/contract.bats @@ -113,11 +113,3 @@ setup() { } - -@test "Playwright resolves the public Nextcloud hostname through the Docker host" { - run env DB_TYPE=sqlite COMPOSE_PROFILES=playwright sh "$WORKER" playwright-route config - [ "$status" -eq 0 ] - [[ "$output" == *"PLAYWRIGHT_BASE_URL: https://ncdev-playwright-route.localhost"* ]] - [[ "$output" == *"ncdev-playwright-route.localhost"* ]] - [[ "$output" == *"host-gateway"* ]] -} From 44a5d63669391769ff24ffd208b86c79e04746e9 Mon Sep 17 00:00:00 2001 From: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> Date: Mon, 5 Oct 2026 01:03:15 +0000 Subject: [PATCH 2/2] test: restore proxy service coverage Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com> --- tests/proxy/services.bats | 43 ++------------------------------------- 1 file changed, 2 insertions(+), 41 deletions(-) diff --git a/tests/proxy/services.bats b/tests/proxy/services.bats index 200d955..0c1c28c 100644 --- a/tests/proxy/services.bats +++ b/tests/proxy/services.bats @@ -14,7 +14,7 @@ setup() { NEXTCLOUD_HOST=current.localhost } -@test "proxy is connected to the current Compose project network" { +@test "proxy is connected to the current Compose project network with the public hostname alias" { compatible_proxy_container() { printf '%s\n' librecode-dev-proxy; } container_networks() { printf '{}\n'; } Docker() { @@ -23,46 +23,7 @@ setup() { connect_proxy_to_project_network - grep -q '^docker network connect --alias current.localhost current_default librecode-dev-proxy -} - -@test "proxy is not connected twice to the project network" { - compatible_proxy_container() { printf '%s\n' librecode-dev-proxy; } - container_networks() { printf '{"current_default":{}}\n'; } - Docker() { - printf 'docker %s\n' "$*" >> "$TEST_LOG" - } - - connect_proxy_to_project_network - - ! grep -q '^docker network connect' "$TEST_LOG" -} - -@test "project network is disconnected from proxy during release" { - compatible_proxy_container() { printf '%s\n' librecode-dev-proxy; } - container_networks() { printf '{"current_default":{}}\n'; } - Docker() { - printf 'docker %s\n' "$*" >> "$TEST_LOG" - } - - disconnect_proxy_from_project_network - - grep -q '^docker network disconnect current_default librecode-dev-proxy$' "$TEST_LOG" -} - -@test "backend services wait for coordinator network readiness" { - main="$REPO_ROOT/docker-compose.yml" - fixture="$REPO_ROOT/tests/proxy/fixtures/compose.yml" - - grep -A8 '^ nginx:' "$main" | grep -q 'proxy-coordinator:' - grep -A10 '^ nginx:' "$main" | grep -q 'condition: service_healthy' - grep -A8 '^ nginx:' "$fixture" | grep -q 'proxy-coordinator:' - grep -A10 '^ nginx:' "$fixture" | grep -q 'condition: service_healthy' - - grep -A20 '^ proxy-coordinator:' "$main" | grep -q 'test -f /tmp/librecode-proxy-ready' - grep -A20 '^ proxy-coordinator:' "$fixture" | grep -q 'test -f /tmp/librecode-proxy-ready' -} - "$TEST_LOG" + grep -q '^docker network connect --alias current.localhost current_default librecode-dev-proxy$' "$TEST_LOG" } @test "proxy is not connected twice to the project network" {