56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
package harness_test
|
|
|
|
import (
|
|
"io"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"git.asio.asia/nixevol/NixMsg/test/harness"
|
|
)
|
|
|
|
func TestAdminClientMutatingHeader(t *testing.T) {
|
|
t.Parallel()
|
|
var sawRequestHdr, sawAuth bool
|
|
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
if r.Header.Get("X-Nixmsg-Request") == "1" {
|
|
sawRequestHdr = true
|
|
}
|
|
if r.Header.Get("Authorization") != "" {
|
|
sawAuth = true
|
|
}
|
|
w.WriteHeader(http.StatusOK)
|
|
_, _ = w.Write([]byte(`{}`))
|
|
}))
|
|
defer srv.Close()
|
|
|
|
c, err := harness.NewAdminClient(srv.URL)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
resp, err := c.PostJSON("/api/admin/login", []byte(`{"password":"x"}`))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
_, _ = io.Copy(io.Discard, resp.Body)
|
|
_ = resp.Body.Close()
|
|
if !sawRequestHdr {
|
|
t.Fatal("expected X-Nixmsg-Request on POST")
|
|
}
|
|
|
|
sawRequestHdr = false
|
|
c.APIToken = "nxm_test"
|
|
resp, err = c.PostJSON("/api/admin/endpoints", []byte(`{}`))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
_, _ = io.Copy(io.Discard, resp.Body)
|
|
_ = resp.Body.Close()
|
|
if sawRequestHdr {
|
|
t.Fatal("API token mode should not set X-Nixmsg-Request")
|
|
}
|
|
if !sawAuth {
|
|
t.Fatal("expected Authorization bearer")
|
|
}
|
|
}
|