From 004b17b74b47ff8cf9a3625b5024ac44c091d380 Mon Sep 17 00:00:00 2001 From: Yuli Date: Sat, 15 Feb 2020 23:23:15 +0200 Subject: [PATCH] add user API tests --- src/audit_api.go | 2 - src/audit_db.go | 2 +- src/bunker_test.go | 1 + src/users_test.go | 101 ++++++++++++++++++++++++++++++++++++--------- 4 files changed, 84 insertions(+), 22 deletions(-) diff --git a/src/audit_api.go b/src/audit_api.go index 740c043..746b5a6 100644 --- a/src/audit_api.go +++ b/src/audit_api.go @@ -34,7 +34,6 @@ func (e mainEnv) getAuditEvents(w http.ResponseWriter, r *http.Request, ps httpr return } fmt.Printf("Total count of events: %d\n", counter) - //fmt.Fprintf(w, "title") w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Content-Type", "application/json; charset=utf-8") 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) == "" { return } - //fmt.Fprintf(w, "title") w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Content-Type", "application/json; charset=utf-8") w.WriteHeader(200) diff --git a/src/audit_db.go b/src/audit_db.go index c3fe4c0..e234857 100644 --- a/src/audit_db.go +++ b/src/audit_db.go @@ -143,7 +143,7 @@ func (dbobj dbcon) getAuditEvent(atoken string) (string, []byte, error) { if len(record) == 0 { return "", nil, errors.New("not found") } - fmt.Printf("audit record: %s\n", record) + //fmt.Printf("audit record: %s\n", record) before := "" after := "" debug := "" diff --git a/src/bunker_test.go b/src/bunker_test.go index 9f1b4e9..90349db 100644 --- a/src/bunker_test.go +++ b/src/bunker_test.go @@ -91,6 +91,7 @@ func init() { var cfg Config cfg.Sms.TwilioToken = "ttoken" cfg.SelfService.AppRecordChange = []string{"*"} + cfg.Generic.CreateUserWithoutAccessToken = true e := mainEnv{db, cfg, make(chan struct{})} rootToken, err = db.createRootXtoken() if err != nil { diff --git a/src/users_test.go b/src/users_test.go index 8618a4e..01bdb4b 100644 --- a/src/users_test.go +++ b/src/users_test.go @@ -101,25 +101,18 @@ func TestCreateUpdateUser(t *testing.T) { t.Fatalf("Failed to get audit event/s\n") } records = raw["rows"].([]interface{}) - records0 := records[0].(map[string]interface{}) - records2 := records[2].(map[string]interface{}) - atoken := records0["atoken"].(string) - if len(atoken) == 0 { - t.Fatalf("Failed to extract atoken\n") - } - fmt.Printf("Audit record: %s\n", atoken) - raw, _ = helpGetUserAuditEvent(atoken) - if _, ok := raw["status"]; !ok || raw["status"].(string) != "ok" { - 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") + atoken := "" + for id := range records { + records0 := records[id].(map[string]interface{}) + atoken = records0["atoken"].(string) + if len(atoken) == 0 { + t.Fatalf("Failed to extract atoken\n") + } + fmt.Printf("Audit record: %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 rootToken, _ = uuid.GenerateUUID() @@ -218,3 +211,73 @@ func TestCreateUser2(t *testing.T) { 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") + } +}