test(settings): add e2e test for settings
This commit is contained in:
parent
83436eac6a
commit
3048ce2820
1 changed files with 124 additions and 0 deletions
124
src/server/server_settings_test.go
Normal file
124
src/server/server_settings_test.go
Normal file
|
@ -0,0 +1,124 @@
|
|||
package server
|
||||
|
||||
import (
|
||||
"os"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/ihexxa/quickshare/src/client"
|
||||
"github.com/ihexxa/quickshare/src/db/sitestore"
|
||||
q "github.com/ihexxa/quickshare/src/handlers"
|
||||
)
|
||||
|
||||
func TestSettingsHandlers(t *testing.T) {
|
||||
addr := "http://127.0.0.1:8686"
|
||||
rootPath := "testData"
|
||||
config := `{
|
||||
"users": {
|
||||
"enableAuth": true,
|
||||
"minUserNameLen": 2,
|
||||
"minPwdLen": 4,
|
||||
"captchaEnabled": false,
|
||||
"uploadSpeedLimit": 409600,
|
||||
"downloadSpeedLimit": 409600,
|
||||
"spaceLimit": 1024,
|
||||
"limiterCapacity": 1000,
|
||||
"limiterCyc": 1000,
|
||||
"predefinedUsers": [
|
||||
{
|
||||
"name": "demo",
|
||||
"pwd": "Quicksh@re",
|
||||
"role": "user"
|
||||
}
|
||||
]
|
||||
},
|
||||
"server": {
|
||||
"debug": true,
|
||||
"host": "127.0.0.1"
|
||||
},
|
||||
"fs": {
|
||||
"root": "testData"
|
||||
}
|
||||
}`
|
||||
adminName := "qs"
|
||||
adminPwd := "quicksh@re"
|
||||
userPwd := "1234"
|
||||
// adminNewPwd := "quicksh@re2"
|
||||
setUpEnv(t, rootPath, adminName, adminPwd)
|
||||
defer os.RemoveAll(rootPath)
|
||||
|
||||
srv := startTestServer(config)
|
||||
defer srv.Shutdown()
|
||||
// fs := srv.depsFS()
|
||||
|
||||
if !isServerReady(addr) {
|
||||
t.Fatal("fail to start server")
|
||||
}
|
||||
|
||||
usersCl := client.NewSingleUserClient(addr)
|
||||
resp, _, errs := usersCl.Login(adminName, adminPwd)
|
||||
if len(errs) > 0 {
|
||||
t.Fatal(errs)
|
||||
} else if resp.StatusCode != 200 {
|
||||
t.Fatal(resp.StatusCode)
|
||||
}
|
||||
adminToken := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
||||
users := addUsers(t, addr, userPwd, 1, adminToken)
|
||||
|
||||
t.Run("get/set client config", func(t *testing.T) {
|
||||
settingsCl := client.NewSettingsClient(addr)
|
||||
cfgs := []*sitestore.ClientConfig{
|
||||
&sitestore.ClientConfig{
|
||||
SiteName: "quickshare",
|
||||
SiteDesc: "quickshare",
|
||||
Bg: &sitestore.BgConfig{
|
||||
Url: "",
|
||||
Repeat: "",
|
||||
Position: "",
|
||||
Align: "",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, cfg := range cfgs {
|
||||
resp, _, errs := settingsCl.SetClientCfg(cfg, adminToken)
|
||||
if len(errs) > 0 {
|
||||
t.Fatal(errs)
|
||||
} else if resp.StatusCode != 200 {
|
||||
t.Fatal(resp.StatusCode)
|
||||
}
|
||||
|
||||
resp, clientCfgMsg, errs := settingsCl.GetClientCfg(adminToken)
|
||||
if len(errs) > 0 {
|
||||
t.Fatal(errs)
|
||||
} else if resp.StatusCode != 200 {
|
||||
t.Fatal(resp.StatusCode)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(cfg, clientCfgMsg.ClientCfg) {
|
||||
t.Fatalf("client cfgs are not equal: got(%v) expected(%v)", clientCfgMsg.ClientCfg, cfg)
|
||||
}
|
||||
|
||||
for userName := range users {
|
||||
resp, _, errs := usersCl.Login(userName, userPwd)
|
||||
if len(errs) > 0 {
|
||||
t.Fatal(errs)
|
||||
} else if resp.StatusCode != 200 {
|
||||
t.Fatal(resp.StatusCode)
|
||||
}
|
||||
userToken := client.GetCookie(resp.Cookies(), q.TokenCookie)
|
||||
|
||||
resp, clientCfgMsg, errs := settingsCl.GetClientCfg(userToken)
|
||||
if len(errs) > 0 {
|
||||
t.Fatal(errs)
|
||||
} else if resp.StatusCode != 200 {
|
||||
t.Fatal(resp.StatusCode)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(cfg, clientCfgMsg.ClientCfg) {
|
||||
t.Fatalf("client cfgs are not equal for user: got(%v) expected(%v)", clientCfgMsg.ClientCfg, cfg)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue