More transport tests
This commit is contained in:
parent
2ebdac5adf
commit
9dd05c71e3
|
@ -46,6 +46,8 @@ func TestInvites(t *testing.T) {
|
||||||
|
|
||||||
server := store.Server{
|
server := store.Server{
|
||||||
Id: "1",
|
Id: "1",
|
||||||
|
Address: "foo",
|
||||||
|
Owner: user,
|
||||||
Rcon: store.Rcon{
|
Rcon: store.Rcon{
|
||||||
Address: "foo",
|
Address: "foo",
|
||||||
Password: "bar",
|
Password: "bar",
|
||||||
|
@ -156,7 +158,7 @@ func TestInvites(t *testing.T) {
|
||||||
st.EXPECT().GetInvite(inv.Token).Return(inv, nil)
|
st.EXPECT().GetInvite(inv.Token).Return(inv, nil)
|
||||||
handler := transport.New(st, im, mc)
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
req, err := http.NewRequest("GET", "/api/v1/invite/foo", nil)
|
req, err := http.NewRequest("GET", "/api/v1/invite/"+inv.Token, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -189,7 +191,7 @@ func TestInvites(t *testing.T) {
|
||||||
st.EXPECT().GetInvite(inv.Token).Return(inv, nil)
|
st.EXPECT().GetInvite(inv.Token).Return(inv, nil)
|
||||||
handler := transport.New(st, im, mc)
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
req, err := http.NewRequest("GET", "/api/v1/invite/foo", nil)
|
req, err := http.NewRequest("GET", "/api/v1/invite/"+inv.Token, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -222,7 +224,7 @@ func TestInvites(t *testing.T) {
|
||||||
st.EXPECT().GetInvite(inv.Token).Return(store.Invite{}, sql.ErrNoRows)
|
st.EXPECT().GetInvite(inv.Token).Return(store.Invite{}, sql.ErrNoRows)
|
||||||
handler := transport.New(st, im, mc)
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
req, err := http.NewRequest("GET", "/api/v1/invite/foo", nil)
|
req, err := http.NewRequest("GET", "/api/v1/invite/"+inv.Token, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -245,7 +247,7 @@ func TestInvites(t *testing.T) {
|
||||||
st.EXPECT().GetInvite(inv.Token).Return(inv, nil)
|
st.EXPECT().GetInvite(inv.Token).Return(inv, nil)
|
||||||
handler := transport.New(st, im, mc)
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
req, err := http.NewRequest("GET", "/api/v1/invite/foo", nil)
|
req, err := http.NewRequest("GET", "/api/v1/invite/"+inv.Token, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -277,7 +279,7 @@ func TestInvites(t *testing.T) {
|
||||||
mc.EXPECT().Whitelist(user.DisplayName, server).Return("success", nil)
|
mc.EXPECT().Whitelist(user.DisplayName, server).Return("success", nil)
|
||||||
handler := transport.New(st, im, mc)
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
req, err := http.NewRequest("POST", "/api/v1/invite/foo/accept", nil)
|
req, err := http.NewRequest("POST", "/api/v1/invite/"+inv.Token+"/accept", nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -306,7 +308,7 @@ func TestInvites(t *testing.T) {
|
||||||
st.EXPECT().GetInvite(inv.Token).Return(store.Invite{}, sql.ErrNoRows)
|
st.EXPECT().GetInvite(inv.Token).Return(store.Invite{}, sql.ErrNoRows)
|
||||||
handler := transport.New(st, im, mc)
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
req, err := http.NewRequest("POST", "/api/v1/invite/foo/accept", nil)
|
req, err := http.NewRequest("POST", "/api/v1/invite/"+inv.Token+"/accept", nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -330,7 +332,7 @@ func TestInvites(t *testing.T) {
|
||||||
im.EXPECT().RemainingUses(inv).Return(0, nil)
|
im.EXPECT().RemainingUses(inv).Return(0, nil)
|
||||||
handler := transport.New(st, im, mc)
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
req, err := http.NewRequest("POST", "/api/v1/invite/foo/accept", nil)
|
req, err := http.NewRequest("POST", "/api/v1/invite/"+inv.Token+"/accept", nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -354,7 +356,7 @@ func TestInvites(t *testing.T) {
|
||||||
st.EXPECT().InviteLog(inv).Return([]store.InviteLog{invLog}, nil)
|
st.EXPECT().InviteLog(inv).Return([]store.InviteLog{invLog}, nil)
|
||||||
handler := transport.New(st, im, mc)
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
req, err := http.NewRequest("GET", "/api/v1/invite/foo/log", nil)
|
req, err := http.NewRequest("GET", "/api/v1/invite/"+inv.Token+"/log", nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -389,7 +391,7 @@ func TestInvites(t *testing.T) {
|
||||||
st.EXPECT().InviteLog(inv).Return([]store.InviteLog{}, nil)
|
st.EXPECT().InviteLog(inv).Return([]store.InviteLog{}, nil)
|
||||||
handler := transport.New(st, im, mc)
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
req, err := http.NewRequest("GET", "/api/v1/invite/foo/log", nil)
|
req, err := http.NewRequest("GET", "/api/v1/invite/"+inv.Token+"/log", nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -414,6 +416,40 @@ func TestInvites(t *testing.T) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("delete an invite", func(t *testing.T) {
|
||||||
|
st.EXPECT().GetInvite(inv.Token).Return(inv, nil)
|
||||||
|
st.EXPECT().DeleteInvite(inv).Return(nil)
|
||||||
|
|
||||||
|
jsonData, err := json.Marshal(server)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
m := flow.New()
|
||||||
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
|
req, err := http.NewRequest("DELETE", "/api/v1/invite/"+inv.Token, bytes.NewBuffer(jsonData))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx := req.Context()
|
||||||
|
ctx = context.WithValue(ctx, "user", user)
|
||||||
|
req = req.WithContext(ctx)
|
||||||
|
rr := httptest.NewRecorder()
|
||||||
|
m.HandleFunc("/api/v1/invite/:id", handler.DeleteInvite)
|
||||||
|
m.ServeHTTP(rr, req)
|
||||||
|
|
||||||
|
if status := rr.Code; status != http.StatusOK {
|
||||||
|
t.Errorf("handler returned wrong status code: got %v want %v",
|
||||||
|
status, http.StatusNotFound)
|
||||||
|
}
|
||||||
|
expected := "deleted"
|
||||||
|
if rr.Body.String() != expected {
|
||||||
|
t.Errorf("handler returned unexpected body: got %v want %v",
|
||||||
|
rr.Body.String(), expected)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestUser(t *testing.T) {
|
func TestUser(t *testing.T) {
|
||||||
|
@ -514,6 +550,44 @@ func TestServers(t *testing.T) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("fetch an inividual server", func(t *testing.T) {
|
||||||
|
st.EXPECT().GetServer(server.Id).Return(server, nil)
|
||||||
|
|
||||||
|
m := flow.New()
|
||||||
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
|
req, err := http.NewRequest("GET", "/api/v1/server/1", nil)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx := req.Context()
|
||||||
|
ctx = context.WithValue(ctx, "user", user)
|
||||||
|
req = req.WithContext(ctx)
|
||||||
|
rr := httptest.NewRecorder()
|
||||||
|
m.HandleFunc("/api/v1/server/:id", handler.Server)
|
||||||
|
m.ServeHTTP(rr, req)
|
||||||
|
|
||||||
|
if status := rr.Code; status != http.StatusOK {
|
||||||
|
t.Errorf("handler returned wrong status code: got %v want %v",
|
||||||
|
status, http.StatusOK)
|
||||||
|
}
|
||||||
|
|
||||||
|
var body store.Server
|
||||||
|
err = json.Unmarshal(rr.Body.Bytes(), &body)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if body.Rcon.Password != "" {
|
||||||
|
t.Errorf("handler returned rcon password: got %v want %v",
|
||||||
|
body.Rcon.Password, "\"\"")
|
||||||
|
}
|
||||||
|
if body.Address != server.Address {
|
||||||
|
t.Errorf("handler returned wrong address: got %v want %v",
|
||||||
|
body.Address, server.Address)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("create a server for a user", func(t *testing.T) {
|
t.Run("create a server for a user", func(t *testing.T) {
|
||||||
st.EXPECT().SaveServer(gomock.Any()).Return(nil)
|
st.EXPECT().SaveServer(gomock.Any()).Return(nil)
|
||||||
|
|
||||||
|
@ -548,6 +622,41 @@ func TestServers(t *testing.T) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("delete a server for a user", func(t *testing.T) {
|
||||||
|
st.EXPECT().GetServer(server.Id).Return(server, nil)
|
||||||
|
st.EXPECT().DeleteServer(server, user).Return(nil)
|
||||||
|
|
||||||
|
jsonData, err := json.Marshal(server)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
m := flow.New()
|
||||||
|
handler := transport.New(st, im, mc)
|
||||||
|
|
||||||
|
req, err := http.NewRequest("DELETE", "/api/v1/server/1", bytes.NewBuffer(jsonData))
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx := req.Context()
|
||||||
|
ctx = context.WithValue(ctx, "user", user)
|
||||||
|
req = req.WithContext(ctx)
|
||||||
|
rr := httptest.NewRecorder()
|
||||||
|
m.HandleFunc("/api/v1/server/:id", handler.Server, "DELETE")
|
||||||
|
m.ServeHTTP(rr, req)
|
||||||
|
|
||||||
|
if status := rr.Code; status != http.StatusOK {
|
||||||
|
t.Errorf("handler returned wrong status code: got %v want %v",
|
||||||
|
status, http.StatusOK)
|
||||||
|
}
|
||||||
|
|
||||||
|
if rr.Body.String() != "deleted" {
|
||||||
|
t.Errorf("handler returned unexpected body: got %v want %v",
|
||||||
|
rr.Body.String(), "created server")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("get invite list for server", func(t *testing.T) {
|
t.Run("get invite list for server", func(t *testing.T) {
|
||||||
st.EXPECT().GetServer(server.Id).Return(server, nil)
|
st.EXPECT().GetServer(server.Id).Return(server, nil)
|
||||||
st.EXPECT().ServerInvites(server).Return([]store.Invite{inv}, nil)
|
st.EXPECT().ServerInvites(server).Return([]store.Invite{inv}, nil)
|
||||||
|
|
Loading…
Reference in a new issue