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") } }