Add remaining invite transport tests
This commit is contained in:
parent
30168c503f
commit
30d4fdeca8
|
@ -286,4 +286,52 @@ func TestInvites(t *testing.T) {
|
|||
rr.Body.String(), expected)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("user can't accept unknown invite", func(t *testing.T) {
|
||||
m := flow.New()
|
||||
st.EXPECT().GetInvite(inv.Token).Return(store.Invite{}, sql.ErrNoRows)
|
||||
handler := transport.New(st, im, mc)
|
||||
|
||||
req, err := http.NewRequest("POST", "/api/v1/invite/foo/accept", 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/invite/:id/accept", handler.AcceptInvite, "POST")
|
||||
m.ServeHTTP(rr, req)
|
||||
|
||||
if status := rr.Code; status != http.StatusNotFound {
|
||||
t.Errorf("handler returned wrong status code: got %v want %v",
|
||||
status, http.StatusNotFound)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("user can't accept invite with no remaining uses", func(t *testing.T) {
|
||||
m := flow.New()
|
||||
st.EXPECT().GetInvite(inv.Token).Return(inv, nil)
|
||||
im.EXPECT().RemainingUses(inv).Return(0, nil)
|
||||
handler := transport.New(st, im, mc)
|
||||
|
||||
req, err := http.NewRequest("POST", "/api/v1/invite/foo/accept", 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/invite/:id/accept", handler.AcceptInvite, "POST")
|
||||
m.ServeHTTP(rr, req)
|
||||
|
||||
if status := rr.Code; status != http.StatusForbidden {
|
||||
t.Errorf("handler returned wrong status code: got %v want %v",
|
||||
status, http.StatusForbidden)
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue