From c4949be2301935e2729f261f90724a46c9bf09f2 Mon Sep 17 00:00:00 2001 From: Ananya Sehgal Date: Wed, 30 Nov 2022 20:19:09 -0600 Subject: [PATCH 1/3] Added filter_profile_tests --- services/user/tests/user_test.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/services/user/tests/user_test.go b/services/user/tests/user_test.go index 5ed70d67..c667b751 100644 --- a/services/user/tests/user_test.go +++ b/services/user/tests/user_test.go @@ -44,7 +44,7 @@ func TestMain(m *testing.M) { } /* - Initialize database with test user info +Initialize database with test user info */ func SetupTestDB(t *testing.T) { err := db.Insert("info", &models.UserInfo{ @@ -69,7 +69,7 @@ func SetupTestDB(t *testing.T) { } /* - Initialize db for sortby filter tests +Initialize db for sortby filter tests */ func SetupFilterTestDB(t *testing.T) { err := db.Insert("info", &models.UserInfo{ @@ -113,7 +113,7 @@ func SetupFilterTestDB(t *testing.T) { } /* - Initialize db for pagination, filter tests +Initialize db for pagination, filter tests */ func SetupPaginationDB(t *testing.T) { err := db.Insert("info", &models.UserInfo{ @@ -152,7 +152,7 @@ func SetupPaginationDB(t *testing.T) { } /* - Drop test db +Drop test db */ func CleanupTestDB(t *testing.T) { err := db.DropDatabase(nil) @@ -163,7 +163,7 @@ func CleanupTestDB(t *testing.T) { } /* - Service level test for getting user info from db +Service level test for getting user info from db */ func TestGetUserInfoService(t *testing.T) { SetupTestDB(t) @@ -188,7 +188,7 @@ func TestGetUserInfoService(t *testing.T) { } /* - Service level test for setting user info in the db +Service level test for setting user info in the db */ func TestSetUserInfoService(t *testing.T) { SetupTestDB(t) @@ -223,7 +223,7 @@ func TestSetUserInfoService(t *testing.T) { } /* - Service level test for getting filtered user info from db +Service level test for getting filtered user info from db */ func TestGetFilteredUserInfoService(t *testing.T) { SetupTestDB(t) @@ -261,7 +261,7 @@ func TestGetFilteredUserInfoService(t *testing.T) { } /* - Test Sortby parameter +Test Sortby parameter */ func TestGetFilteredUserInfoWithSortingService(t *testing.T) { SetupFilterTestDB(t) @@ -350,7 +350,7 @@ func TestGetFilteredUserInfoWithSortingService(t *testing.T) { } /* - Test Pagination parameter +Test Pagination parameter */ func TestGetFilteredUserInfoServicePagination(t *testing.T) { SetupPaginationDB(t) @@ -472,7 +472,7 @@ func TestGetFilteredUserInfoServicePagination(t *testing.T) { } /* - Service level test for generating QR code URI +Service level test for generating QR code URI */ func TestGetQrInfo(t *testing.T) { SetupTestDB(t) From f3cc116b50f14991fc1709934e70acf6a2257198 Mon Sep 17 00:00:00 2001 From: Ananya Sehgal Date: Wed, 30 Nov 2022 20:36:03 -0600 Subject: [PATCH 2/3] Add user_tests --- tests/e2e/user_test/filter_profile_test.go | 249 +++++++++++++++++++++ tests/e2e/user_test/get_user_id_test.go | 38 ++++ tests/e2e/user_test/user_test.go | 43 ++++ 3 files changed, 330 insertions(+) create mode 100644 tests/e2e/user_test/filter_profile_test.go create mode 100644 tests/e2e/user_test/get_user_id_test.go create mode 100644 tests/e2e/user_test/user_test.go diff --git a/tests/e2e/user_test/filter_profile_test.go b/tests/e2e/user_test/filter_profile_test.go new file mode 100644 index 00000000..5ec1ccae --- /dev/null +++ b/tests/e2e/user_test/filter_profile_test.go @@ -0,0 +1,249 @@ +package tests + +import ( + "context" + "net/http" + "reflect" + "testing" + + "github.com/HackIllinois/api/services/user/models" + user_models "github.com/HackIllinois/api/services/user/models" +) + +var user_info_1 user_models.UserInfo +var user_info_2 user_models.UserInfo +var user_info_3 user_models.UserInfo +var user_info_4 user_models.UserInfo + +func AddTestDataToDatabase() { + user_info_1 = user_models.UserInfo{ + ID: "12345", + Username: "johnsmith", + FirstName: "John", + LastName: "Smith", + Email: "john.smith@aol.com", + } + user_info_2 = user_models.UserInfo{ + ID: "12345", + Username: "hello", + FirstName: "John", + LastName: "Smith", + Email: "Hi.Hey@aol.com", + } + + user_info_3 = user_models.UserInfo{ + ID: "54321", + Username: "james", + FirstName: "James", + LastName: "Names", + Email: "James.Names@aol.com", + } + user_info_4 = user_models.UserInfo{ + ID: "54321", + Username: "A", + FirstName: "Aaa", + LastName: "Bbbbb", + Email: "a.b@aol.com", + } + client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_1) + client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_2) + client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_3) + client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_4) +} + +func ClearDatabase() { + client.Database(user_db_name).Drop(context.Background()) +} + +func TestGetFilterByID(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?id=12345" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_1, + user_info_2, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterByUserName(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?username=johnsmith" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_1, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterByFirstName(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?firstName=John" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_1, + user_info_2, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterByLastName(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?lastName=Smith" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_1, + user_info_2, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterByEmail(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?email=James.Names@aol.com" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_3, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterLimit(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?firstName=John&p=1&limit=1" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_1, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterOrder(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?id=54321&sortby=firstName,lastName" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_4, + user_info_3, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} diff --git a/tests/e2e/user_test/get_user_id_test.go b/tests/e2e/user_test/get_user_id_test.go new file mode 100644 index 00000000..5e7919e5 --- /dev/null +++ b/tests/e2e/user_test/get_user_id_test.go @@ -0,0 +1,38 @@ +package tests + +import ( + "context" + "fmt" + "net/http" + "reflect" + "testing" + + user_models "github.com/HackIllinois/api/services/user/models" +) + +func TestUserProfile(t *testing.T) { + user_info := user_models.UserInfo{ + ID: "12345", + Username: "johnsmith", + FirstName: "John", + LastName: "Smith", + Email: "john.smith@aol.com", + } + + client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info) + + endpoint_address := fmt.Sprintf("/user/%s/", "12345") + + recieved_user := user_models.UserInfo{} + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_user) + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_user, user_info) { + t.Errorf("Wrong user info. Expected %v, got %v", user_info, recieved_user) + } +} diff --git a/tests/e2e/user_test/user_test.go b/tests/e2e/user_test/user_test.go new file mode 100644 index 00000000..243a5466 --- /dev/null +++ b/tests/e2e/user_test/user_test.go @@ -0,0 +1,43 @@ +package tests + +import ( + "context" + "fmt" + "os" + "testing" + + "github.com/HackIllinois/api/common/configloader" + "github.com/HackIllinois/api/tests/common" + "github.com/dghubble/sling" + "go.mongodb.org/mongo-driver/mongo" +) + +var admin_client *sling.Sling +var client *mongo.Client +var user_db_name string +var unauthenticated_client *sling.Sling + +func TestMain(m *testing.M) { + + cfg, err := configloader.Load(os.Getenv("HI_CONFIG")) + + if err != nil { + fmt.Printf("ERROR: %v\n", err) + os.Exit(1) + } + + admin_client = common.GetSlingClient("Admin") + unauthenticated_client = sling.New().Base("http://localhost:8000").Client(nil).Add("Authorization", "FAKE_TOKEN") + + client = common.GetLocalMongoSession() + + user_db_name, err = cfg.Get("USER_DB_NAME") + if err != nil { + fmt.Printf("ERROR: %v\n", err) + os.Exit(1) + } + client.Database(user_db_name).Drop(context.Background()) + + return_code := m.Run() + os.Exit(return_code) +} From 41100c02ef9a7058cbf7acb155abaf0995234df2 Mon Sep 17 00:00:00 2001 From: Ananya Sehgal Date: Tue, 20 Dec 2022 15:23:42 -0600 Subject: [PATCH 3/3] Ran make fmt --- tests/e2e/user_test/filter_profile_test.go | 498 ++++++++++----------- tests/e2e/user_test/get_user_id_test.go | 76 ++-- 2 files changed, 287 insertions(+), 287 deletions(-) diff --git a/tests/e2e/user_test/filter_profile_test.go b/tests/e2e/user_test/filter_profile_test.go index 5ec1ccae..ff3f63e6 100644 --- a/tests/e2e/user_test/filter_profile_test.go +++ b/tests/e2e/user_test/filter_profile_test.go @@ -1,249 +1,249 @@ -package tests - -import ( - "context" - "net/http" - "reflect" - "testing" - - "github.com/HackIllinois/api/services/user/models" - user_models "github.com/HackIllinois/api/services/user/models" -) - -var user_info_1 user_models.UserInfo -var user_info_2 user_models.UserInfo -var user_info_3 user_models.UserInfo -var user_info_4 user_models.UserInfo - -func AddTestDataToDatabase() { - user_info_1 = user_models.UserInfo{ - ID: "12345", - Username: "johnsmith", - FirstName: "John", - LastName: "Smith", - Email: "john.smith@aol.com", - } - user_info_2 = user_models.UserInfo{ - ID: "12345", - Username: "hello", - FirstName: "John", - LastName: "Smith", - Email: "Hi.Hey@aol.com", - } - - user_info_3 = user_models.UserInfo{ - ID: "54321", - Username: "james", - FirstName: "James", - LastName: "Names", - Email: "James.Names@aol.com", - } - user_info_4 = user_models.UserInfo{ - ID: "54321", - Username: "A", - FirstName: "Aaa", - LastName: "Bbbbb", - Email: "a.b@aol.com", - } - client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_1) - client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_2) - client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_3) - client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_4) -} - -func ClearDatabase() { - client.Database(user_db_name).Drop(context.Background()) -} - -func TestGetFilterByID(t *testing.T) { - AddTestDataToDatabase() - defer ClearDatabase() - - endpoint_address := "/user/filter/?id=12345" - - recieved_profile := user_models.FilteredUsers{} - - response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) - - expected_info := models.FilteredUsers{ - []models.UserInfo{ - user_info_1, - user_info_2, - }, - } - - if err != nil { - t.Errorf("Unable to make request") - } - if response.StatusCode != http.StatusOK { - t.Errorf("Request returned HTTP error %d", response.StatusCode) - } - if !reflect.DeepEqual(recieved_profile, expected_info) { - t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) - } -} - -func TestGetFilterByUserName(t *testing.T) { - AddTestDataToDatabase() - defer ClearDatabase() - - endpoint_address := "/user/filter/?username=johnsmith" - - recieved_profile := user_models.FilteredUsers{} - - response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) - - expected_info := models.FilteredUsers{ - []models.UserInfo{ - user_info_1, - }, - } - - if err != nil { - t.Errorf("Unable to make request") - } - if response.StatusCode != http.StatusOK { - t.Errorf("Request returned HTTP error %d", response.StatusCode) - } - if !reflect.DeepEqual(recieved_profile, expected_info) { - t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) - } -} - -func TestGetFilterByFirstName(t *testing.T) { - AddTestDataToDatabase() - defer ClearDatabase() - - endpoint_address := "/user/filter/?firstName=John" - - recieved_profile := user_models.FilteredUsers{} - - response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) - - expected_info := models.FilteredUsers{ - []models.UserInfo{ - user_info_1, - user_info_2, - }, - } - - if err != nil { - t.Errorf("Unable to make request") - } - if response.StatusCode != http.StatusOK { - t.Errorf("Request returned HTTP error %d", response.StatusCode) - } - if !reflect.DeepEqual(recieved_profile, expected_info) { - t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) - } -} - -func TestGetFilterByLastName(t *testing.T) { - AddTestDataToDatabase() - defer ClearDatabase() - - endpoint_address := "/user/filter/?lastName=Smith" - - recieved_profile := user_models.FilteredUsers{} - - response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) - - expected_info := models.FilteredUsers{ - []models.UserInfo{ - user_info_1, - user_info_2, - }, - } - - if err != nil { - t.Errorf("Unable to make request") - } - if response.StatusCode != http.StatusOK { - t.Errorf("Request returned HTTP error %d", response.StatusCode) - } - if !reflect.DeepEqual(recieved_profile, expected_info) { - t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) - } -} - -func TestGetFilterByEmail(t *testing.T) { - AddTestDataToDatabase() - defer ClearDatabase() - - endpoint_address := "/user/filter/?email=James.Names@aol.com" - - recieved_profile := user_models.FilteredUsers{} - - response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) - - expected_info := models.FilteredUsers{ - []models.UserInfo{ - user_info_3, - }, - } - - if err != nil { - t.Errorf("Unable to make request") - } - if response.StatusCode != http.StatusOK { - t.Errorf("Request returned HTTP error %d", response.StatusCode) - } - if !reflect.DeepEqual(recieved_profile, expected_info) { - t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) - } -} - -func TestGetFilterLimit(t *testing.T) { - AddTestDataToDatabase() - defer ClearDatabase() - - endpoint_address := "/user/filter/?firstName=John&p=1&limit=1" - - recieved_profile := user_models.FilteredUsers{} - - response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) - - expected_info := models.FilteredUsers{ - []models.UserInfo{ - user_info_1, - }, - } - - if err != nil { - t.Errorf("Unable to make request") - } - if response.StatusCode != http.StatusOK { - t.Errorf("Request returned HTTP error %d", response.StatusCode) - } - if !reflect.DeepEqual(recieved_profile, expected_info) { - t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) - } -} - -func TestGetFilterOrder(t *testing.T) { - AddTestDataToDatabase() - defer ClearDatabase() - - endpoint_address := "/user/filter/?id=54321&sortby=firstName,lastName" - - recieved_profile := user_models.FilteredUsers{} - - response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) - - expected_info := models.FilteredUsers{ - []models.UserInfo{ - user_info_4, - user_info_3, - }, - } - - if err != nil { - t.Errorf("Unable to make request") - } - if response.StatusCode != http.StatusOK { - t.Errorf("Request returned HTTP error %d", response.StatusCode) - } - if !reflect.DeepEqual(recieved_profile, expected_info) { - t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) - } -} +package tests + +import ( + "context" + "net/http" + "reflect" + "testing" + + "github.com/HackIllinois/api/services/user/models" + user_models "github.com/HackIllinois/api/services/user/models" +) + +var user_info_1 user_models.UserInfo +var user_info_2 user_models.UserInfo +var user_info_3 user_models.UserInfo +var user_info_4 user_models.UserInfo + +func AddTestDataToDatabase() { + user_info_1 = user_models.UserInfo{ + ID: "12345", + Username: "johnsmith", + FirstName: "John", + LastName: "Smith", + Email: "john.smith@aol.com", + } + user_info_2 = user_models.UserInfo{ + ID: "12345", + Username: "hello", + FirstName: "John", + LastName: "Smith", + Email: "Hi.Hey@aol.com", + } + + user_info_3 = user_models.UserInfo{ + ID: "54321", + Username: "james", + FirstName: "James", + LastName: "Names", + Email: "James.Names@aol.com", + } + user_info_4 = user_models.UserInfo{ + ID: "54321", + Username: "A", + FirstName: "Aaa", + LastName: "Bbbbb", + Email: "a.b@aol.com", + } + client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_1) + client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_2) + client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_3) + client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info_4) +} + +func ClearDatabase() { + client.Database(user_db_name).Drop(context.Background()) +} + +func TestGetFilterByID(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?id=12345" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_1, + user_info_2, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterByUserName(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?username=johnsmith" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_1, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterByFirstName(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?firstName=John" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_1, + user_info_2, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterByLastName(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?lastName=Smith" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_1, + user_info_2, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterByEmail(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?email=James.Names@aol.com" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_3, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterLimit(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?firstName=John&p=1&limit=1" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_1, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} + +func TestGetFilterOrder(t *testing.T) { + AddTestDataToDatabase() + defer ClearDatabase() + + endpoint_address := "/user/filter/?id=54321&sortby=firstName,lastName" + + recieved_profile := user_models.FilteredUsers{} + + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_profile) + + expected_info := models.FilteredUsers{ + []models.UserInfo{ + user_info_4, + user_info_3, + }, + } + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_profile, expected_info) { + t.Errorf("Wrong user info. Expected %v, got %v", expected_info, recieved_profile) + } +} diff --git a/tests/e2e/user_test/get_user_id_test.go b/tests/e2e/user_test/get_user_id_test.go index 5e7919e5..cff3657c 100644 --- a/tests/e2e/user_test/get_user_id_test.go +++ b/tests/e2e/user_test/get_user_id_test.go @@ -1,38 +1,38 @@ -package tests - -import ( - "context" - "fmt" - "net/http" - "reflect" - "testing" - - user_models "github.com/HackIllinois/api/services/user/models" -) - -func TestUserProfile(t *testing.T) { - user_info := user_models.UserInfo{ - ID: "12345", - Username: "johnsmith", - FirstName: "John", - LastName: "Smith", - Email: "john.smith@aol.com", - } - - client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info) - - endpoint_address := fmt.Sprintf("/user/%s/", "12345") - - recieved_user := user_models.UserInfo{} - response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_user) - - if err != nil { - t.Errorf("Unable to make request") - } - if response.StatusCode != http.StatusOK { - t.Errorf("Request returned HTTP error %d", response.StatusCode) - } - if !reflect.DeepEqual(recieved_user, user_info) { - t.Errorf("Wrong user info. Expected %v, got %v", user_info, recieved_user) - } -} +package tests + +import ( + "context" + "fmt" + "net/http" + "reflect" + "testing" + + user_models "github.com/HackIllinois/api/services/user/models" +) + +func TestUserProfile(t *testing.T) { + user_info := user_models.UserInfo{ + ID: "12345", + Username: "johnsmith", + FirstName: "John", + LastName: "Smith", + Email: "john.smith@aol.com", + } + + client.Database(user_db_name).Collection("info").InsertOne(context.Background(), user_info) + + endpoint_address := fmt.Sprintf("/user/%s/", "12345") + + recieved_user := user_models.UserInfo{} + response, err := admin_client.New().Get(endpoint_address).ReceiveSuccess(&recieved_user) + + if err != nil { + t.Errorf("Unable to make request") + } + if response.StatusCode != http.StatusOK { + t.Errorf("Request returned HTTP error %d", response.StatusCode) + } + if !reflect.DeepEqual(recieved_user, user_info) { + t.Errorf("Wrong user info. Expected %v, got %v", user_info, recieved_user) + } +}