mirror of
https://github.com/hanzoai/deploy.git
synced 2026-10-07 08:44:50 +00:00
Two corrections on top of the naming pass, both found by checking the live cluster rather than the source. The rename had silently changed the user-facing annotation key from argocd.argoproj.io/sync-wave to cd.argoproj.io/sync-wave — 63 live Applications carry the old key, so deploying that would have ignored every sync-wave and broken fleet deploy ordering. The key is now cd.hanzo.ai/*, and universe 575650286 moves the ApplicationSet template that stamps it, so the controller regenerates all 63 consistently. The API group in code said argoproj.io/v1alpha1 in 157 places while the cluster has served apps.hanzo.ai/v1alpha1 since 2026-07-23 (the CRDs are applications.apps.hanzo.ai). Code now matches what is actually served. The legacy applications.argoproj.io/app-name label had ZERO live users, so it went with the rest. foo.argoproj.io test fixtures became foo.example.com — arbitrary test domains should not carry a vendor name. go build ./... exit 0. Co-authored-by: Hanzo Dev <[email protected]>
63 lines
2.0 KiB
Go
63 lines
2.0 KiB
Go
package proxy
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"net/url"
|
|
"os"
|
|
"os/exec"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestMain(m *testing.M) {
|
|
// Ensure tests use non-cached proxy callback
|
|
UseTestingProxyCallback()
|
|
|
|
os.Exit(m.Run())
|
|
}
|
|
|
|
func TestAddProxyEnvIfAbsent(t *testing.T) {
|
|
t.Run("Existing proxy env variables", func(t *testing.T) {
|
|
proxy := "https://proxy:5000"
|
|
noProxy := ".apps.hanzo.ai"
|
|
cmd := exec.CommandContext(t.Context(), "test")
|
|
cmd.Env = []string{`http_proxy="https_proxy=https://env-proxy:8888"`, "key=val", "no_proxy=.apps.hanzo.ai"}
|
|
got := UpsertEnv(cmd, proxy, noProxy)
|
|
assert.Equal(t, []string{"key=val", httpProxy(proxy), httpsProxy(proxy), noProxyVar(noProxy)}, got)
|
|
})
|
|
t.Run("proxy env variables not found", func(t *testing.T) {
|
|
proxy := "http://proxy:5000"
|
|
noProxy := ".apps.hanzo.ai"
|
|
cmd := exec.CommandContext(t.Context(), "test")
|
|
cmd.Env = []string{"key=val"}
|
|
got := UpsertEnv(cmd, proxy, noProxy)
|
|
assert.Equal(t, []string{"key=val", httpProxy(proxy), httpsProxy(proxy), noProxyVar(noProxy)}, got)
|
|
})
|
|
}
|
|
|
|
func TestGetCallBack(t *testing.T) {
|
|
t.Run("custom proxy present", func(t *testing.T) {
|
|
proxy := "http://proxy:8888"
|
|
url, err := GetCallback(proxy, "")(nil)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, proxy, url.String())
|
|
})
|
|
t.Run("custom proxy present, noProxy filteres request", func(t *testing.T) {
|
|
proxy := "http://proxy:8888"
|
|
noProxy := "apps.hanzo.ai"
|
|
url, err := GetCallback(proxy, noProxy)(&http.Request{URL: &url.URL{Host: "apps.hanzo.ai"}})
|
|
require.NoError(t, err)
|
|
assert.Nil(t, url) // proxy object being nil indicates that no proxy should be used for this request
|
|
})
|
|
t.Run("custom proxy absent", func(t *testing.T) {
|
|
proxyEnv := "http://proxy:8888"
|
|
t.Setenv("http_proxy", "http://proxy:8888")
|
|
url, err := GetCallback("", "")(httptest.NewRequestWithContext(t.Context(), http.MethodGet, proxyEnv, http.NoBody))
|
|
require.NoError(t, err)
|
|
assert.Equal(t, proxyEnv, url.String())
|
|
})
|
|
}
|