feat: more role backend and admin/writer roles additions and adjustments
This commit is contained in:
1 parent
8c6c6456da
commit
de142f6c5f
131 files changed
+2663
-435
No files matched your search
@@ -1,6 +1,7 @@
|
||||
package test
|
||||
|
||||
import (
|
||||
"RenewCMS/api/pkg/apperr"
|
||||
"RenewCMS/internal/domain/audit"
|
||||
"RenewCMS/internal/domain/site"
|
||||
"net/http"
|
||||
@@ -217,7 +218,7 @@ func TestSeoDataSiteFields(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Other roles and keys are refused", func(t *testing.T) {
|
||||
const ownerText, sessionText = "Only the owner can do this.", "This action needs a real session."
|
||||
const ownerText, sessionText = apperr.MissingPermissionErrorMessage, "This action needs a real session."
|
||||
cases := []struct {
|
||||
name string
|
||||
method string
|
||||
@@ -225,10 +226,9 @@ func TestSeoDataSiteFields(t *testing.T) {
|
||||
send func(e *seoEnv, t *testing.T, method string, path string, body string) *seoResult
|
||||
text string
|
||||
}{
|
||||
{"PATCH with a verified admin", http.MethodPatch, "/v1/site/2", seoAsUser(apiKeyDevId), ownerText},
|
||||
{"PATCH with a verified account with another role", http.MethodPatch, "/v1/site/2", seoAsUser(seoEditorID), ownerText},
|
||||
{"PATCH with a valid API key", http.MethodPatch, "/v1/site/2", seoAsKeyOf(apiKeyDevId), sessionText},
|
||||
{"POST with a verified admin", http.MethodPost, "/v1/site/", seoAsUser(apiKeyDevId), ownerText},
|
||||
{"POST with a verified account with another role", http.MethodPost, "/v1/site/", seoAsUser(seoEditorID), ownerText},
|
||||
{"POST with a valid API key", http.MethodPost, "/v1/site/", seoAsKeyOf(apiKeyDevId), sessionText},
|
||||
}
|
||||
for _, c := range cases {
|
||||
@@ -262,9 +262,20 @@ func TestSeoDataSiteFields(t *testing.T) {
|
||||
t.Run("The role is checked before the body", func(t *testing.T) {
|
||||
e := newSeoEnv(t)
|
||||
|
||||
rec := e.as(t, apiKeyDevId, http.MethodPatch, "/v1/site/2", "{not json")
|
||||
rec := e.as(t, seoEditorID, http.MethodPatch, "/v1/site/2", "{not json")
|
||||
|
||||
expectStatusAndText(t, rec, http.StatusForbidden, "Only the owner can do this.")
|
||||
expectStatusAndText(t, rec, http.StatusForbidden, apperr.MissingPermissionErrorMessage)
|
||||
})
|
||||
|
||||
t.Run("An admin edits the SEO defaults of a site", func(t *testing.T) {
|
||||
e := newSeoEnv(t)
|
||||
|
||||
rec := e.as(t, apiKeyDevId, http.MethodPatch, "/v1/site/2", `{"default_robots": "noindex"}`)
|
||||
|
||||
got := decodeSiteBody(t, rec)
|
||||
if rec.Code != http.StatusOK || got.DefaultRobots != "noindex" {
|
||||
t.Errorf("status %d site %+v", rec.Code, got)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("A no-op site edit records nothing", func(t *testing.T) {
|
||||
|
||||
Reference in new issue
Block a user