0.2.55 - Remote config/Request fixes
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user