155 lines
3.4 KiB
Go
155 lines
3.4 KiB
Go
package fstests
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path/filepath"
|
|
"runtime"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/474420502/requests"
|
|
)
|
|
|
|
func GetEtcYamlPathAuto() string {
|
|
var currentFilePath string
|
|
var ok bool
|
|
for i := 1; i < 4; i++ {
|
|
_, currentFilePath, _, ok = runtime.Caller(i)
|
|
if !ok {
|
|
panic("Error: Unable to get the current file path.")
|
|
|
|
}
|
|
dirs := strings.Split(currentFilePath, "/")
|
|
if dirs[len(dirs)-2] != "fstests" {
|
|
break
|
|
}
|
|
}
|
|
|
|
curdir, err := filepath.Abs(currentFilePath)
|
|
if err != nil {
|
|
panic(err)
|
|
|
|
}
|
|
|
|
curdir = filepath.Dir(curdir)
|
|
var limitCount = 10
|
|
finfo, err := os.Stat(curdir + "/etc")
|
|
for err != nil || !finfo.IsDir() {
|
|
curdir = filepath.Dir(curdir)
|
|
finfo, err = os.Stat(curdir + "/etc")
|
|
limitCount--
|
|
if limitCount <= 0 {
|
|
panic("out limit")
|
|
}
|
|
}
|
|
lidx := strings.LastIndex(curdir, "/")
|
|
|
|
return fmt.Sprintf("%s/etc/%s.yaml", curdir, curdir[lidx+1:])
|
|
|
|
}
|
|
|
|
func GetCurrentServiceName() string {
|
|
_, currentFilePath, _, ok := runtime.Caller(1)
|
|
if !ok {
|
|
panic("Error: Unable to get the current file path.")
|
|
|
|
}
|
|
|
|
curdir, err := filepath.Abs(currentFilePath)
|
|
if err != nil {
|
|
panic(err)
|
|
|
|
}
|
|
|
|
curdir = filepath.Dir(curdir)
|
|
var limitCount = 10
|
|
finfo, err := os.Stat(curdir + "/etc")
|
|
for err != nil || !finfo.IsDir() {
|
|
curdir = filepath.Dir(curdir)
|
|
finfo, err = os.Stat(curdir + "/etc")
|
|
limitCount--
|
|
if limitCount <= 0 {
|
|
panic("out limit")
|
|
}
|
|
}
|
|
lidx := strings.LastIndex(curdir, "/")
|
|
// log.Println(curdir[lidx+1:])
|
|
return curdir[lidx+1:]
|
|
}
|
|
|
|
func GetSesssion() *requests.Session {
|
|
ses := requests.NewSession()
|
|
return ses
|
|
}
|
|
|
|
func GetSessionWithUserToken(t *testing.T, server requests.ITestServer, Host string, Port int) *requests.Session {
|
|
ses := requests.NewSession()
|
|
tp := ses.Post(fmt.Sprintf("http://%s:%d/user/login", Host, Port))
|
|
tp.SetBodyJson(map[string]interface{}{
|
|
"name": "9107058@qq.com",
|
|
"pwd": "$2y$13$2y4O4OIz/zcK5C0vlSc9LuSpjWySjInLBSe49yDkE.iURb.R1hDsy",
|
|
})
|
|
resp, err := tp.TestExecute(server)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
result := resp.Json()
|
|
code := result.Get("code").Int()
|
|
if code != 200 {
|
|
t.Error("code is not 200")
|
|
}
|
|
|
|
token := result.Get("data.token")
|
|
if !token.Exists() {
|
|
t.Error("data.token is not exists")
|
|
}
|
|
ses.Header.Add("Authorization", token.String())
|
|
|
|
return ses
|
|
}
|
|
|
|
func GetBackendSessionWithUserToken(t *testing.T, server requests.ITestServer, Host string, Port int) *requests.Session {
|
|
ses := requests.NewSession()
|
|
tp := ses.Post(fmt.Sprintf("http://%s:%d/backend-user/login", Host, Port))
|
|
tp.SetBodyJson(map[string]interface{}{
|
|
"name": "admin@admin.com",
|
|
"pwd": "ZnVzZW5fYmFja2VuZF8yMDIz47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU=",
|
|
})
|
|
resp, err := tp.TestExecute(server)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
result := resp.Json()
|
|
code := result.Get("code").Int()
|
|
if code != 200 {
|
|
t.Error("code is not 200")
|
|
}
|
|
|
|
token := result.Get("data.token")
|
|
if !token.Exists() {
|
|
t.Error("data.token is not exists")
|
|
}
|
|
ses.Header.Add("Authorization", token.String())
|
|
|
|
return ses
|
|
}
|
|
|
|
func GetSesssionWithGuestToken(t *testing.T, server requests.ITestServer, Host string, Port int) *requests.Session {
|
|
ses := requests.NewSession()
|
|
tp := ses.Post(fmt.Sprintf("http://%s:%d/accept/cookie", Host, Port))
|
|
|
|
resp, err := tp.TestExecute(server)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
result := resp.Json()
|
|
token := result.Get("data.token")
|
|
if !token.Exists() {
|
|
t.Error("data.token is not exists")
|
|
}
|
|
ses.Header.Add("Authorization", token.String())
|
|
|
|
return ses
|
|
}
|