From ded5e6ceb12e6138ce7434ec3b4325cdf59e2f7b Mon Sep 17 00:00:00 2001 From: Alex <$(pass /github/email)> Date: Sat, 15 Mar 2025 00:14:31 +0100 Subject: [PATCH] tests --- .../controllers/membershipController_test.go | 127 +++++++++--------- .../controllers/user_controller_test.go | 72 +++++----- 2 files changed, 99 insertions(+), 100 deletions(-) diff --git a/go-backend/internal/controllers/membershipController_test.go b/go-backend/internal/controllers/membershipController_test.go index f08d955..6c5e18a 100644 --- a/go-backend/internal/controllers/membershipController_test.go +++ b/go-backend/internal/controllers/membershipController_test.go @@ -148,18 +148,16 @@ func (dt *DeleteSubscriptionTest) ValidateResult() error { return validateSubscription(dt.Assert, dt.WantDBData) } -func getBaseSubscription() MembershipData { - return MembershipData{ - // APIKey: config.Auth.APIKEY, - Subscription: models.SubscriptionModel{ - Name: "Premium", - Details: "A subscription detail", - MonthlyFee: 12.0, - HourlyRate: 14.0, - }, +func getBaseSubscription() models.SubscriptionModel { + return models.SubscriptionModel{ + Name: "Premium", + Details: "A subscription detail", + MonthlyFee: 12.0, + HourlyRate: 14.0, } } -func customizeSubscription(customize func(MembershipData) MembershipData) MembershipData { + +func customizeSubscription(customize func(models.SubscriptionModel) models.SubscriptionModel) models.SubscriptionModel { subscription := getBaseSubscription() return customize(subscription) } @@ -175,8 +173,8 @@ func getSubscriptionRegistrationData() []RegisterSubscriptionTest { WantDBData: map[string]interface{}{"name": "Just a Subscription"}, Assert: false, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Details = "" + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Details = "" return subscription })), }, @@ -189,8 +187,8 @@ func getSubscriptionRegistrationData() []RegisterSubscriptionTest { WantDBData: map[string]interface{}{"name": ""}, Assert: false, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Name = "" + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Name = "" return subscription })), }, @@ -202,8 +200,8 @@ func getSubscriptionRegistrationData() []RegisterSubscriptionTest { WantResponse: http.StatusBadRequest, WantDBData: map[string]interface{}{"name": "Premium"}, Assert: false, - Input: GenerateInputJSON(customizeSubscription(func(sub MembershipData) MembershipData { - sub.Subscription.MonthlyFee = -10.0 + Input: GenerateInputJSON(customizeSubscription(func(sub models.SubscriptionModel) models.SubscriptionModel { + sub.MonthlyFee = -10.0 return sub })), }, @@ -215,8 +213,8 @@ func getSubscriptionRegistrationData() []RegisterSubscriptionTest { WantResponse: http.StatusBadRequest, WantDBData: map[string]interface{}{"name": "Premium"}, Assert: false, - Input: GenerateInputJSON(customizeSubscription(func(sub MembershipData) MembershipData { - sub.Subscription.HourlyRate = -1.0 + Input: GenerateInputJSON(customizeSubscription(func(sub models.SubscriptionModel) models.SubscriptionModel { + sub.HourlyRate = -1.0 return sub })), }, @@ -229,10 +227,10 @@ func getSubscriptionRegistrationData() []RegisterSubscriptionTest { WantDBData: map[string]interface{}{"name": "Premium"}, Assert: false, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Conditions = "Some Condition" - subscription.Subscription.IncludedPerYear = 0 - subscription.Subscription.IncludedPerMonth = 1 + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Conditions = "Some Condition" + subscription.IncludedPerYear = 0 + subscription.IncludedPerMonth = 1 return subscription })), }, @@ -245,10 +243,10 @@ func getSubscriptionRegistrationData() []RegisterSubscriptionTest { WantDBData: map[string]interface{}{"name": "Premium"}, Assert: true, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Conditions = "Some Condition" - subscription.Subscription.IncludedPerYear = 0 - subscription.Subscription.IncludedPerMonth = 1 + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Conditions = "Some Condition" + subscription.IncludedPerYear = 0 + subscription.IncludedPerMonth = 1 return subscription })), }, @@ -276,8 +274,8 @@ func getSubscriptionUpdateData() []UpdateSubscriptionTest { WantDBData: map[string]interface{}{"name": "Premium", "monthly_fee": "12"}, Assert: true, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.MonthlyFee = 123.0 + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.MonthlyFee = 123.0 return subscription })), }, @@ -290,8 +288,8 @@ func getSubscriptionUpdateData() []UpdateSubscriptionTest { WantDBData: map[string]interface{}{"name": "Premium"}, Assert: true, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.ID = 0 + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.ID = 0 return subscription })), }, @@ -304,8 +302,8 @@ func getSubscriptionUpdateData() []UpdateSubscriptionTest { WantDBData: map[string]interface{}{"name": "Premium", "hourly_rate": "14"}, Assert: true, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.HourlyRate = 3254.0 + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.HourlyRate = 3254.0 return subscription })), }, @@ -318,8 +316,8 @@ func getSubscriptionUpdateData() []UpdateSubscriptionTest { WantDBData: map[string]interface{}{"name": "Premium", "included_per_year": "0"}, Assert: true, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.IncludedPerYear = 9873.0 + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.IncludedPerYear = 9873.0 return subscription })), }, @@ -332,8 +330,8 @@ func getSubscriptionUpdateData() []UpdateSubscriptionTest { WantDBData: map[string]interface{}{"name": "Premium", "included_per_month": "1"}, Assert: true, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.IncludedPerMonth = 23415.0 + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.IncludedPerMonth = 23415.0 return subscription })), }, @@ -346,8 +344,8 @@ func getSubscriptionUpdateData() []UpdateSubscriptionTest { WantDBData: map[string]interface{}{"name": "NonExistentSubscription"}, Assert: false, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Name = "NonExistentSubscription" + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Name = "NonExistentSubscription" return subscription })), }, @@ -360,11 +358,11 @@ func getSubscriptionUpdateData() []UpdateSubscriptionTest { WantDBData: map[string]interface{}{"name": "Premium", "details": "Altered Details"}, Assert: false, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Details = "Altered Details" - subscription.Subscription.Conditions = "Some Condition" - subscription.Subscription.IncludedPerYear = 0 - subscription.Subscription.IncludedPerMonth = 1 + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Details = "Altered Details" + subscription.Conditions = "Some Condition" + subscription.IncludedPerYear = 0 + subscription.IncludedPerMonth = 1 return subscription })), }, @@ -377,11 +375,11 @@ func getSubscriptionUpdateData() []UpdateSubscriptionTest { WantDBData: map[string]interface{}{"name": "Premium", "details": "Altered Details"}, Assert: true, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Details = "Altered Details" - subscription.Subscription.Conditions = "Some Condition" - subscription.Subscription.IncludedPerYear = 0 - subscription.Subscription.IncludedPerMonth = 1 + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Details = "Altered Details" + subscription.Conditions = "Some Condition" + subscription.IncludedPerYear = 0 + subscription.IncludedPerMonth = 1 return subscription })), }, @@ -404,9 +402,10 @@ func getSubscriptionDeleteData() []DeleteSubscriptionTest { WantDBData: map[string]interface{}{"name": "NonExistentSubscription"}, Assert: false, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Name = "NonExistentSubscription" - subscription.Subscription.ID = basicSub.ID + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Name = "NonExistentSubscription" + subscription.ID = basicSub.ID + logger.Error.Printf("subscription to delete: %#v", subscription) return subscription })), }, @@ -415,13 +414,13 @@ func getSubscriptionDeleteData() []DeleteSubscriptionTest { req.AddCookie(AdminCookie) }, Name: "Delete subscription without name should fail", - WantResponse: http.StatusExpectationFailed, + WantResponse: http.StatusBadRequest, WantDBData: map[string]interface{}{"name": ""}, Assert: false, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Name = "" - subscription.Subscription.ID = basicSub.ID + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Name = "" + subscription.ID = basicSub.ID return subscription })), }, @@ -434,9 +433,9 @@ func getSubscriptionDeleteData() []DeleteSubscriptionTest { WantDBData: map[string]interface{}{"name": "Basic"}, Assert: true, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Name = "Basic" - subscription.Subscription.ID = basicSub.ID + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Name = "Basic" + subscription.ID = basicSub.ID return subscription })), }, @@ -449,9 +448,9 @@ func getSubscriptionDeleteData() []DeleteSubscriptionTest { WantDBData: map[string]interface{}{"name": "Premium"}, Assert: true, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Name = "Premium" - subscription.Subscription.ID = premiumSub.ID + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Name = "Premium" + subscription.ID = premiumSub.ID return subscription })), }, @@ -464,9 +463,9 @@ func getSubscriptionDeleteData() []DeleteSubscriptionTest { WantDBData: map[string]interface{}{"name": "Premium"}, Assert: false, Input: GenerateInputJSON( - customizeSubscription(func(subscription MembershipData) MembershipData { - subscription.Subscription.Name = "Premium" - subscription.Subscription.ID = premiumSub.ID + customizeSubscription(func(subscription models.SubscriptionModel) models.SubscriptionModel { + subscription.Name = "Premium" + subscription.ID = premiumSub.ID return subscription })), }, diff --git a/go-backend/internal/controllers/user_controller_test.go b/go-backend/internal/controllers/user_controller_test.go index cb1d3ba..d54e95c 100644 --- a/go-backend/internal/controllers/user_controller_test.go +++ b/go-backend/internal/controllers/user_controller_test.go @@ -245,12 +245,12 @@ func testLoginHandler(t *testing.T) string { if cookie.Name == "jwt" { MemberCookie = cookie - // tokenString := loginCookie.Value - // _, claims, err := middlewares.ExtractContentFrom(tokenString) - // assert.NoError(t, err, "FAiled getting cookie string") - // jwtUserID := uint((*claims)["user_id"].(float64)) - // user, err := Uc.Service.GetUserByID(jwtUserID) - // assert.NoError(t, err, "FAiled getting cookie string") + tokenString := cookie.Value + _, claims, err := middlewares.ExtractContentFrom(tokenString) + assert.NoError(t, err, "FAiled getting cookie string") + jwtUserID := uint((*claims)["user_id"].(float64)) + _, err = Uc.Service.FromID(&jwtUserID) + assert.NoError(t, err, "FAiled getting cookie string") // logger.Error.Printf("cookie user: %#v", user) err = json.Unmarshal([]byte(tt.input), &loginInput) @@ -1254,35 +1254,35 @@ func getTestUsers() []RegisterUserTest { // return user // })), // }, - // { - // Name: "empty driverslicence number, should fail", - // WantResponse: http.StatusBadRequest, - // WantDBData: map[string]interface{}{"email": "john.wronglicence.doe@example.com"}, - // Assert: false, - // Input: GenerateInputJSON(customizeInput(func(user models.User) models.User { - // user.Email = "john.wronglicence.doe@example.com" - // user.Licence = &models.Licence{ - // Number: "", - // ExpirationDate: time.Now().AddDate(1, 0, 0), - // IssuedDate: time.Now().AddDate(-1, 0, 0), - // } - // return user - // })), - // }, - // { - // Name: "Correct Licence number, should pass", - // WantResponse: http.StatusCreated, - // WantDBData: map[string]interface{}{"email": "john.correctLicenceNumber@example.com"}, - // Assert: true, - // Input: GenerateInputJSON(customizeInput(func(user models.User) models.User { - // user.Email = "john.correctLicenceNumber@example.com" - // user.Licence = &models.Licence{ - // Number: "B072RRE2I55", - // ExpirationDate: time.Now().AddDate(1, 0, 0), - // IssuedDate: time.Now().AddDate(-1, 0, 0), - // } - // return user - // })), - // }, + { + Name: "empty driverslicence number, should fail", + WantResponse: http.StatusBadRequest, + WantDBData: map[string]interface{}{"email": "john.wronglicence.doe@example.com"}, + Assert: false, + Input: GenerateInputJSON(customizeInput(func(user models.User) models.User { + user.Email = "john.wronglicence.doe@example.com" + user.Licence = &models.Licence{ + Number: "", + ExpirationDate: time.Now().AddDate(1, 0, 0), + IssuedDate: time.Now().AddDate(-1, 0, 0), + } + return user + })), + }, + { + Name: "Correct Licence number, should pass", + WantResponse: http.StatusCreated, + WantDBData: map[string]interface{}{"email": "john.correctLicenceNumber@example.com"}, + Assert: true, + Input: GenerateInputJSON(customizeInput(func(user models.User) models.User { + user.Email = "john.correctLicenceNumber@example.com" + user.Licence = &models.Licence{ + Number: "B072RRE2I55", + ExpirationDate: time.Now().AddDate(1, 0, 0), + IssuedDate: time.Now().AddDate(-1, 0, 0), + } + return user + })), + }, } }