From 6404a1b9847ef7b71f7eb2e12014f06919e9e46f Mon Sep 17 00:00:00 2001 From: Cesar Celis Hernandez Date: Tue, 25 Jan 2022 13:23:25 -0500 Subject: [PATCH] Add test for removing a user (#1450) Co-authored-by: cniackz Co-authored-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> --- integration/buckets_test.go | 18 ++++++++++ integration/users_test.go | 72 +++++++++++++++++++++++++++++++++++++ 2 files changed, 90 insertions(+) diff --git a/integration/buckets_test.go b/integration/buckets_test.go index 5d3070bad..e955b9e79 100644 --- a/integration/buckets_test.go +++ b/integration/buckets_test.go @@ -41,6 +41,24 @@ import ( var token string +func inspectHTTPResponse(httpResponse *http.Response) string { + /* + Helper function to inspect the content of a HTTP response. + */ + b, err := io.ReadAll(httpResponse.Body) + if err != nil { + log.Fatalln(err) + } + return "Http Response: " + string(b) +} + +func printMessage(message string) { + /* + Helper function to print HTTP response. + */ + fmt.Println(message) +} + func initConsoleServer() (*restapi.Server, error) { //os.Setenv("CONSOLE_MINIO_SERVER", "localhost:9000") diff --git a/integration/users_test.go b/integration/users_test.go index 54c32ff8f..e7a5ef5c6 100644 --- a/integration/users_test.go +++ b/integration/users_test.go @@ -164,6 +164,25 @@ func UpdateUserInformation(name string, status string, groups []string) (*http.R return response, err } +func RemoveUser(name string) (*http.Response, error) { + /* + Helper function to remove user. + DELETE: {{baseUrl}}/user?name=proident velit + */ + client := &http.Client{ + Timeout: 3 * time.Second, + } + request, err := http.NewRequest( + "DELETE", "http://localhost:9090/api/v1/user?name="+name, nil) + if err != nil { + log.Println(err) + } + request.Header.Add("Cookie", fmt.Sprintf("token=%s", token)) + request.Header.Add("Content-Type", "application/json") + response, err := client.Do(request) + return response, err +} + func TestAddUser(t *testing.T) { /* This is an API Test to add a user via api/v1/users, the intention @@ -428,3 +447,56 @@ func TestUpdateUserInfoGenericErrorResponse(t *testing.T) { assert.True(strings.Contains(string(b), "status not valid")) } + +func TestRemoveUserSuccessfulResponse(t *testing.T) { + /* + To test removing a user from API + */ + assert := assert.New(t) + + // 1. Create an active user + var groups = []string{} + var policies = []string{} + addUserResponse, addUserError := AddUser( + "testremoveuser1", "secretKey", groups, policies) + if addUserError != nil { + log.Println(addUserError) + return + } + if addUserResponse != nil { + fmt.Println("StatusCode:", addUserResponse.StatusCode) + assert.Equal( + 201, addUserResponse.StatusCode, "Status Code is incorrect") + } + + // 2. Remove the user + removeUserResponse, removeUserError := RemoveUser("testremoveuser1") + if removeUserError != nil { + log.Println(removeUserError) + return + } + if removeUserResponse != nil { + fmt.Println("StatusCode:", removeUserResponse.StatusCode) + assert.Equal( + 204, removeUserResponse.StatusCode, "Status Code is incorrect") + } + + // 3. Verify the user got removed + getUserInfoResponse, getUserInfoError := GetUserInformation( + "testremoveuser1") + if getUserInfoError != nil { + log.Println(getUserInfoError) + assert.Fail("There was an error in the response") + return + } + if getUserInfoResponse != nil { + fmt.Println("StatusCode:", getUserInfoResponse.StatusCode) + assert.Equal( + 404, getUserInfoResponse.StatusCode, "Status Code is incorrect") + } + finalResponse := inspectHTTPResponse(getUserInfoResponse) + printMessage(finalResponse) + assert.True(strings.Contains( + finalResponse, "The specified user does not exist"), finalResponse) + +}