package api import ( "net/http" "net/http/httptest" "testing" "github.com/ponzischeme89/memby/server/internal/config" ) func TestRemoteConfigSupportsETagRevalidationWithoutAuthentication(t *testing.T) { server := &Server{cfg: config.Config{RemoteConfig: config.DefaultRemoteConfig()}} first := httptest.NewRecorder() server.handleRemoteConfig(first, httptest.NewRequest(http.MethodGet, "/v1/config", nil)) if first.Code != http.StatusOK { t.Fatalf("status = %d", first.Code) } etag := first.Header().Get("ETag") if etag == "" { t.Fatal("missing ETag") } if got := first.Header().Get("X-Memby-Config-Version"); got != "1" { t.Fatalf("version header = %q", got) } request := httptest.NewRequest(http.MethodGet, "/v1/config", nil) request.Header.Set("If-None-Match", etag) second := httptest.NewRecorder() server.handleRemoteConfig(second, request) if second.Code != http.StatusNotModified { t.Fatalf("revalidation status = %d", second.Code) } }