add user API tests

This commit is contained in:
Yuli
2020-02-15 23:23:15 +02:00
parent ff58b29e4a
commit 004b17b74b
4 changed files with 84 additions and 22 deletions

View File

@@ -34,7 +34,6 @@ func (e mainEnv) getAuditEvents(w http.ResponseWriter, r *http.Request, ps httpr
return return
} }
fmt.Printf("Total count of events: %d\n", counter) fmt.Printf("Total count of events: %d\n", counter)
//fmt.Fprintf(w, "<html><head><title>title</title></head>")
w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Content-Type", "application/json; charset=utf-8") w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(200) w.WriteHeader(200)
@@ -60,7 +59,6 @@ func (e mainEnv) getAuditEvent(w http.ResponseWriter, r *http.Request, ps httpro
if e.enforceAuth(w, r, event) == "" { if e.enforceAuth(w, r, event) == "" {
return return
} }
//fmt.Fprintf(w, "<html><head><title>title</title></head>")
w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Content-Type", "application/json; charset=utf-8") w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(200) w.WriteHeader(200)

View File

@@ -143,7 +143,7 @@ func (dbobj dbcon) getAuditEvent(atoken string) (string, []byte, error) {
if len(record) == 0 { if len(record) == 0 {
return "", nil, errors.New("not found") return "", nil, errors.New("not found")
} }
fmt.Printf("audit record: %s\n", record) //fmt.Printf("audit record: %s\n", record)
before := "" before := ""
after := "" after := ""
debug := "" debug := ""

View File

@@ -91,6 +91,7 @@ func init() {
var cfg Config var cfg Config
cfg.Sms.TwilioToken = "ttoken" cfg.Sms.TwilioToken = "ttoken"
cfg.SelfService.AppRecordChange = []string{"*"} cfg.SelfService.AppRecordChange = []string{"*"}
cfg.Generic.CreateUserWithoutAccessToken = true
e := mainEnv{db, cfg, make(chan struct{})} e := mainEnv{db, cfg, make(chan struct{})}
rootToken, err = db.createRootXtoken() rootToken, err = db.createRootXtoken()
if err != nil { if err != nil {

View File

@@ -101,9 +101,10 @@ func TestCreateUpdateUser(t *testing.T) {
t.Fatalf("Failed to get audit event/s\n") t.Fatalf("Failed to get audit event/s\n")
} }
records = raw["rows"].([]interface{}) records = raw["rows"].([]interface{})
records0 := records[0].(map[string]interface{}) atoken := ""
records2 := records[2].(map[string]interface{}) for id := range records {
atoken := records0["atoken"].(string) records0 := records[id].(map[string]interface{})
atoken = records0["atoken"].(string)
if len(atoken) == 0 { if len(atoken) == 0 {
t.Fatalf("Failed to extract atoken\n") t.Fatalf("Failed to extract atoken\n")
} }
@@ -112,14 +113,6 @@ func TestCreateUpdateUser(t *testing.T) {
if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" { if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
t.Fatalf("Failed to get specific audit event\n") t.Fatalf("Failed to get specific audit event\n")
} }
atoken = records2["atoken"].(string)
if len(atoken) == 0 {
t.Fatalf("Failed to extract atoken\n")
}
fmt.Printf("Audit record[2]: %s\n", atoken)
raw, _ = helpGetUserAuditEvent(atoken)
if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
t.Fatalf("Failed to get specific audit event\n")
} }
oldRootToken := rootToken oldRootToken := rootToken
rootToken, _ = uuid.GenerateUUID() rootToken, _ = uuid.GenerateUUID()
@@ -218,3 +211,73 @@ func TestCreateUser2(t *testing.T) {
t.Fatalf("Wrong email address") t.Fatalf("Wrong email address")
} }
} }
func TestCreateUserEmptyBody(t *testing.T) {
data := "{}"
raw, _ := helpCreateUser(data)
if _, ok := raw["status"]; ok && raw["status"].(string) == "ok" {
t.Fatalf("Should failed to create user")
}
}
func TestCreateUserDupLogin(t *testing.T) {
data := `{"login":"dup","name":"dup"}`
raw, _ := helpCreateUser(data)
if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
t.Fatalf("Failed to create dup1 user")
}
data = `{"login":"dup","name":"dup2"}`
raw, _ = helpCreateUser(data)
if _, ok := raw["status"]; ok && raw["status"].(string) == "ok" {
t.Fatalf("Should failed to create user")
}
}
func TestCreateUserDupEmail(t *testing.T) {
data := `{"email":"dup@dupdup.com","name":"dup"}`
raw, _ := helpCreateUser(data)
if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
t.Fatalf("Failed to create dup1 user")
}
data = `{"email":"dup@dupdup.com","name":"dup2"}`
raw, _ = helpCreateUser(data)
if _, ok := raw["status"]; ok && raw["status"].(string) == "ok" {
t.Fatalf("Should failed to create user")
}
}
func TestCreateUserDupPhone(t *testing.T) {
data := `{"phone":"334455667788","name":"dup"}`
raw, _ := helpCreateUser(data)
if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
t.Fatalf("Failed to create dup1 user")
}
data = `{"phone":"334455667788","name":"dup2"}`
raw, _ = helpCreateUser(data)
if _, ok := raw["status"]; ok && raw["status"].(string) == "ok" {
t.Fatalf("Should failed to create user")
}
}
func TestCreateUserBadPOST(t *testing.T) {
url := "http://localhost:3000/v1/user"
data := "name=user6&job=developer&email=user6@user6.com"
request := httptest.NewRequest("POST", url, strings.NewReader(data))
request.Header.Set("X-Bunker-Token", rootToken)
raw, _ := helpServe(request)
if _, ok := raw["status"]; ok && raw["status"].(string) == "ok" {
t.Fatalf("Should failed to create user")
}
}
func TestCreateUserEmptyXToken2(t *testing.T) {
//e.conf.Generic.CreateUserWithoutAccessToken = true
url := "http://localhost:3000/v1/user"
data := "name=user8&job=developer&email=user8@user8.com"
request := httptest.NewRequest("POST", url, strings.NewReader(data))
request.Header.Set("Content-Type", "application/x-www-form-urlencoded")
raw, _ := helpServe2(request)
if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" {
t.Fatalf("Should failed to create user")
}
}