40 lines
1.4 KiB
Go
40 lines
1.4 KiB
Go
package test
|
|
|
|
import (
|
|
"RenewCMS/api/pkg/apperr"
|
|
"net/http"
|
|
"testing"
|
|
)
|
|
|
|
func TestUsersAPIQAGaps(t *testing.T) {
|
|
t.Run("renewing mails a new code and the old code no longer works", func(t *testing.T) {
|
|
w := newUsersAPIWorld(t)
|
|
before := w.invites.invites[2].HashedCode
|
|
if rec := w.do(t, uaAdmin, http.MethodPost, "/v1/user/invite/2/renew", ""); rec.Code != http.StatusOK {
|
|
t.Fatalf("unexpected %d %q", rec.Code, rec.Body.String())
|
|
}
|
|
if w.invites.invites[2].HashedCode == before || len(w.mail.SentEmails) != 1 {
|
|
t.Fatalf("the code must change and be mailed")
|
|
}
|
|
rec := w.anonymous(t, http.MethodPost, "/v1/auth/invite/accept", `{"code": "code2", "username": "kim", "password": "password1"}`)
|
|
if rec.Code == http.StatusOK {
|
|
t.Errorf("the old code must not accept, got %d", rec.Code)
|
|
}
|
|
})
|
|
|
|
t.Run("accepting an invite whose role was deleted is invalid and creates no user", func(t *testing.T) {
|
|
w := newUsersAPIWorld(t)
|
|
temp := w.createTemp("content.read=own")
|
|
pending := w.invites.invites[3]
|
|
pending.RoleID = temp
|
|
w.invites.invites[3] = pending
|
|
delete(w.roles.roles, temp)
|
|
users := len(w.users.users)
|
|
rec := w.anonymous(t, http.MethodPost, "/v1/auth/invite/accept", `{"code": "code3", "username": "kim", "password": "password1"}`)
|
|
usersAPIAssertPlain(t, rec, http.StatusNotFound, apperr.InviteInvalidErrorMessage)
|
|
if len(w.users.users) != users {
|
|
t.Errorf("no user may be created")
|
|
}
|
|
})
|
|
}
|