-
This commit is contained in:
parent
9e629cddf7
commit
1dede4eb50
@ -26,6 +26,8 @@ var existingUserIDToken = os.Getenv("EXISTING_USER_ID_JWT_TOKEN")
|
|||||||
var userIDForDelete = os.Getenv("USER_ID_FOR_DELETE")
|
var userIDForDelete = os.Getenv("USER_ID_FOR_DELETE")
|
||||||
var existingUserID = os.Getenv("EXISTING_USER_ID")
|
var existingUserID = os.Getenv("EXISTING_USER_ID")
|
||||||
var testUserID = os.Getenv("TEST_USER_ID")
|
var testUserID = os.Getenv("TEST_USER_ID")
|
||||||
|
var userWithoutPrivileges = os.Getenv("USER_NO_PRIVILEGES")
|
||||||
|
|
||||||
var sqlInjectionInput = "'; DROP TABLE accounts; --"
|
var sqlInjectionInput = "'; DROP TABLE accounts; --"
|
||||||
var xssInput = "<script>alert('xss')</script>"
|
var xssInput = "<script>alert('xss')</script>"
|
||||||
|
|
||||||
@ -407,15 +409,6 @@ func TestCreateAccount(t *testing.T) {
|
|||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
assert.Contains(t, err.Error(), "timeout")
|
assert.Contains(t, err.Error(), "timeout")
|
||||||
})
|
})
|
||||||
// todo need check
|
|
||||||
t.Run("SpecialCases_TransactionRollback", func(t *testing.T) {
|
|
||||||
resp := createAccountRequest(t, validToken, map[string]interface{}{
|
|
||||||
"user_id": "transaction_test_user",
|
|
||||||
})
|
|
||||||
defer resp.Body.Close()
|
|
||||||
|
|
||||||
assert.True(t, resp.StatusCode == http.StatusOK || resp.StatusCode == http.StatusConflict)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func createAccountRequest(t *testing.T, token string, payload map[string]interface{}) *http.Response {
|
func createAccountRequest(t *testing.T, token string, payload map[string]interface{}) *http.Response {
|
||||||
@ -972,37 +965,37 @@ func TestGetAccounts_SpecialCases(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// todo не имеем этого
|
// todo не имеем этого
|
||||||
t.Run("Caching", func(t *testing.T) {
|
//t.Run("Caching", func(t *testing.T) {
|
||||||
body := map[string]interface{}{
|
// body := map[string]interface{}{
|
||||||
"limit": 10,
|
// "limit": 10,
|
||||||
"page": 1,
|
// "page": 1,
|
||||||
}
|
// }
|
||||||
b, err := json.Marshal(body)
|
// b, err := json.Marshal(body)
|
||||||
assert.NoError(t, err)
|
// assert.NoError(t, err)
|
||||||
|
//
|
||||||
// Первый запрос
|
// // Первый запрос
|
||||||
req1, err := http.NewRequest("GET", baseURL+"/accounts", bytes.NewReader(b))
|
// req1, err := http.NewRequest("GET", baseURL+"/accounts", bytes.NewReader(b))
|
||||||
assert.NoError(t, err)
|
// assert.NoError(t, err)
|
||||||
req1.Header.Set("Authorization", "Bearer "+validAdminToken)
|
// req1.Header.Set("Authorization", "Bearer "+validAdminToken)
|
||||||
req1.Header.Set("Content-Type", "application/json")
|
// req1.Header.Set("Content-Type", "application/json")
|
||||||
|
//
|
||||||
resp1, err := http.DefaultClient.Do(req1)
|
// resp1, err := http.DefaultClient.Do(req1)
|
||||||
assert.NoError(t, err)
|
// assert.NoError(t, err)
|
||||||
defer resp1.Body.Close()
|
// defer resp1.Body.Close()
|
||||||
|
//
|
||||||
// Второй запрос (должен быть быстрее из-за кэша)
|
// // Второй запрос (должен быть быстрее из-за кэша)
|
||||||
req2, err := http.NewRequest("GET", baseURL+"/accounts", bytes.NewReader(b))
|
// req2, err := http.NewRequest("GET", baseURL+"/accounts", bytes.NewReader(b))
|
||||||
assert.NoError(t, err)
|
// assert.NoError(t, err)
|
||||||
req2.Header.Set("Authorization", "Bearer "+validAdminToken)
|
// req2.Header.Set("Authorization", "Bearer "+validAdminToken)
|
||||||
req2.Header.Set("Content-Type", "application/json")
|
// req2.Header.Set("Content-Type", "application/json")
|
||||||
|
//
|
||||||
resp2, err := http.DefaultClient.Do(req2)
|
// resp2, err := http.DefaultClient.Do(req2)
|
||||||
assert.NoError(t, err)
|
// assert.NoError(t, err)
|
||||||
defer resp2.Body.Close()
|
// defer resp2.Body.Close()
|
||||||
|
//
|
||||||
assert.Equal(t, http.StatusOK, resp1.StatusCode)
|
// assert.Equal(t, http.StatusOK, resp1.StatusCode)
|
||||||
assert.Equal(t, http.StatusOK, resp2.StatusCode)
|
// assert.Equal(t, http.StatusOK, resp2.StatusCode)
|
||||||
})
|
//})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetPrivilege_Success(t *testing.T) {
|
func TestGetPrivilege_Success(t *testing.T) {
|
||||||
@ -1232,10 +1225,8 @@ func TestGetPrivilege_ErrorHandling(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo user_without_privileges
|
|
||||||
func TestGetPrivilege_SpecialCases(t *testing.T) {
|
func TestGetPrivilege_SpecialCases(t *testing.T) {
|
||||||
t.Run("UserWithoutPrivileges", func(t *testing.T) {
|
t.Run("UserWithoutPrivileges", func(t *testing.T) {
|
||||||
userWithoutPrivileges := "user_without_privileges"
|
|
||||||
body := map[string]string{"userId": userWithoutPrivileges}
|
body := map[string]string{"userId": userWithoutPrivileges}
|
||||||
data, err := json.Marshal(body)
|
data, err := json.Marshal(body)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
@ -1390,7 +1381,7 @@ func TestDeleteAccountByUserID_Performance(t *testing.T) {
|
|||||||
wg.Add(1)
|
wg.Add(1)
|
||||||
go func(index int) {
|
go func(index int) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
// todo
|
// todo нужно придумать
|
||||||
testUserID := fmt.Sprintf("load_test_user_%d", index)
|
testUserID := fmt.Sprintf("load_test_user_%d", index)
|
||||||
resp, err := deleteAccountByUserIDRequest(validAdminToken, map[string]string{"userId": testUserID})
|
resp, err := deleteAccountByUserIDRequest(validAdminToken, map[string]string{"userId": testUserID})
|
||||||
if err == nil && resp != nil {
|
if err == nil && resp != nil {
|
||||||
@ -2004,15 +1995,15 @@ func TestUpdateLeadTarget_InputValidation(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// todo такого нет у нас
|
// todo такого нет у нас
|
||||||
t.Run("InvalidTargetFormat", func(t *testing.T) {
|
//t.Run("InvalidTargetFormat", func(t *testing.T) {
|
||||||
resp, err := updateLeadTargetRequest(validToken, map[string]interface{}{
|
// resp, err := updateLeadTargetRequest(validToken, map[string]interface{}{
|
||||||
"id": 123,
|
// "id": 123,
|
||||||
"target": "invalid_email",
|
// "target": "invalid_email",
|
||||||
})
|
// })
|
||||||
assert.NoError(t, err)
|
// assert.NoError(t, err)
|
||||||
defer resp.Body.Close()
|
// defer resp.Body.Close()
|
||||||
assert.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
// assert.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||||
})
|
//})
|
||||||
|
|
||||||
t.Run("EmptyBody", func(t *testing.T) {
|
t.Run("EmptyBody", func(t *testing.T) {
|
||||||
resp, err := updateLeadTargetRequest(validToken, map[string]interface{}{})
|
resp, err := updateLeadTargetRequest(validToken, map[string]interface{}{})
|
||||||
@ -3005,7 +2996,6 @@ func TestGetQuestionList_InputValidation(t *testing.T) {
|
|||||||
assert.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
assert.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
// todo check
|
|
||||||
t.Run("InvalidTimeRange", func(t *testing.T) {
|
t.Run("InvalidTimeRange", func(t *testing.T) {
|
||||||
resp, err := getQuestionListRequest(validToken, map[string]interface{}{
|
resp, err := getQuestionListRequest(validToken, map[string]interface{}{
|
||||||
"from": 1000,
|
"from": 1000,
|
||||||
@ -3120,7 +3110,6 @@ func TestGetQuestionList_Filters(t *testing.T) {
|
|||||||
assert.Equal(t, "text", question["type"])
|
assert.Equal(t, "text", question["type"])
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
// todo check
|
|
||||||
t.Run("FilterBySearch", func(t *testing.T) {
|
t.Run("FilterBySearch", func(t *testing.T) {
|
||||||
resp, err := getQuestionListRequest(validToken, map[string]interface{}{
|
resp, err := getQuestionListRequest(validToken, map[string]interface{}{
|
||||||
"quiz_id": 12347,
|
"quiz_id": 12347,
|
||||||
@ -3138,7 +3127,6 @@ func TestGetQuestionList_Filters(t *testing.T) {
|
|||||||
assert.True(t, ok)
|
assert.True(t, ok)
|
||||||
assert.NotEmpty(t, items)
|
assert.NotEmpty(t, items)
|
||||||
})
|
})
|
||||||
// todo check
|
|
||||||
t.Run("FilterByRequired", func(t *testing.T) {
|
t.Run("FilterByRequired", func(t *testing.T) {
|
||||||
resp, err := getQuestionListRequest(validToken, map[string]interface{}{
|
resp, err := getQuestionListRequest(validToken, map[string]interface{}{
|
||||||
"quiz_id": 12347,
|
"quiz_id": 12347,
|
||||||
@ -5134,7 +5122,7 @@ func TestGetQuizList_Pagination(t *testing.T) {
|
|||||||
assert.True(t, ok)
|
assert.True(t, ok)
|
||||||
assert.LessOrEqual(t, len(items), 5)
|
assert.LessOrEqual(t, len(items), 5)
|
||||||
})
|
})
|
||||||
// todo
|
// todo со временм бдшка же заполнится
|
||||||
t.Run("EmptyPage", func(t *testing.T) {
|
t.Run("EmptyPage", func(t *testing.T) {
|
||||||
resp, err := getQuizListRequest(validToken, map[string]interface{}{
|
resp, err := getQuizListRequest(validToken, map[string]interface{}{
|
||||||
"limit": 5,
|
"limit": 5,
|
||||||
@ -5154,7 +5142,6 @@ func TestGetQuizList_Pagination(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo check
|
|
||||||
func TestGetQuizList_Filters(t *testing.T) {
|
func TestGetQuizList_Filters(t *testing.T) {
|
||||||
statuses := []string{"draft", "start", "stop", "template"}
|
statuses := []string{"draft", "start", "stop", "template"}
|
||||||
for _, status := range statuses {
|
for _, status := range statuses {
|
||||||
|
Loading…
Reference in New Issue
Block a user