34 lines
818 B
Go
34 lines
818 B
Go
package api
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
)
|
|
|
|
func TestAdminQuotaUpdate(t *testing.T) {
|
|
a, sid := runtimeTestAPI(t, func(http.ResponseWriter, *http.Request) {})
|
|
request := func() *httptest.ResponseRecorder {
|
|
w := httptest.NewRecorder()
|
|
a.users(w, runtimeRequest("PATCH", "/api/users", `{"id":"owner","quota_bytes":2048}`, sid))
|
|
return w
|
|
}
|
|
if w := request(); w.Code != 403 {
|
|
t.Fatal(w.Code)
|
|
}
|
|
if _, err := a.s.DB.Exec("UPDATE users SET admin=1 WHERE id='owner'"); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if w := request(); w.Code != 200 {
|
|
t.Fatal(w.Code, w.Body.String())
|
|
}
|
|
u, err := a.s.UserByID("owner")
|
|
if err != nil || u.Quota != 2048 {
|
|
t.Fatalf("%+v %v", u, err)
|
|
}
|
|
t.Setenv("DEFAULT_QUOTA_BYTES", "12345")
|
|
if DefaultQuota() != 12345 {
|
|
t.Fatal("default quota ignored")
|
|
}
|
|
}
|