hscloud/app/matrix/wellknown/server_test.go
Serge Bazanski ec7e0a9dc2 app/matrix: add wellknown server
This is in preparation for spinning up a staging/QA matrix instance,
where the MXID domain is under control by hscloud machinery (and not a
top-level organizational domain).

Change-Id: I10505615ebb407b3b2eac0c1b87ad5625e2009c0
2020-11-05 20:47:04 +01:00

44 lines
1,005 B
Go

package main
import (
"encoding/json"
"net/http"
"net/http/httptest"
"testing"
"github.com/go-test/deep"
)
func TestServing(t *testing.T) {
s := server{
domain: "example.com",
}
mux := http.NewServeMux()
s.register(mux)
for i, te := range []struct {
url string
want wellKnown
}{
{"/.well-known/matrix/client", wellKnown{
Homeserver: wellKnownHomeserver{"https://example.com"},
}},
{"/.well-known/matrix/server", wellKnown{
Server: "example.com:443",
}},
} {
req, _ := http.NewRequest("GET", te.url, nil)
rr := httptest.NewRecorder()
mux.ServeHTTP(rr, req)
if want, got := http.StatusOK, rr.Code; want != got {
t.Fatalf("%d: handler returned wrong status code: want %v got %v", i, want, got)
}
got := wellKnown{}
if err := json.Unmarshal(rr.Body.Bytes(), &got); err != nil {
t.Fatalf("%d: handler returned unparseable JSON: %v", i, err)
}
if diff := deep.Equal(te.want, got); diff != nil {
t.Errorf("%d: response diff: %s", i, diff)
}
}
}