From 957e1d07aabaad5824e553b67dd262d3c802c756 Mon Sep 17 00:00:00 2001 From: Elmar Kresse Date: Sun, 17 Mar 2024 22:28:05 +0100 Subject: [PATCH] fix:#40 added test for remove empty courses and fix bug in function --- backend/service/events/courseService.go | 7 ++-- backend/service/events/courseService_test.go | 39 ++++++++++++++++++++ 2 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 backend/service/events/courseService_test.go diff --git a/backend/service/events/courseService.go b/backend/service/events/courseService.go index c20134e..0206a40 100644 --- a/backend/service/events/courseService.go +++ b/backend/service/events/courseService.go @@ -19,18 +19,19 @@ func GetAllCoursesForSemesterWithEvents(app *pocketbase.PocketBase, semester str if err != nil { return nil, err } else { - // remove empty courses + // remove empty courses like " " or "" courses = removeEmptyCourses(courses) return courses, nil } } +// removeEmptyCourses removes empty courses from the list of courses func removeEmptyCourses(courses []string) []string { var filteredCourses []string for index, course := range courses { - if functions.OnlyWhitespace(course) || len(course) == 0 { - filteredCourses = append(courses[:index], courses[index+1:]...) + if !functions.OnlyWhitespace(course) || len(course) != 0 { + filteredCourses = append(filteredCourses, courses[index]) } } return filteredCourses diff --git a/backend/service/events/courseService_test.go b/backend/service/events/courseService_test.go new file mode 100644 index 0000000..b478a58 --- /dev/null +++ b/backend/service/events/courseService_test.go @@ -0,0 +1,39 @@ +package events + +import ( + "reflect" + "testing" +) + +func Test_removeEmptyCourses(t *testing.T) { + type args struct { + courses []string + } + tests := []struct { + name string + args args + want []string + }{ + { + name: "Test remove empty courses", + args: args{ + courses: []string{"", "test", "test2", ""}, + }, + want: []string{"test", "test2"}, + }, + { + name: "Test remove empty courses", + args: args{ + courses: []string{"", "test", "test2", "", "test3"}, + }, + want: []string{"test", "test2", "test3"}, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := removeEmptyCourses(tt.args.courses); !reflect.DeepEqual(got, tt.want) { + t.Errorf("removeEmptyCourses() = %v, want %v", got, tt.want) + } + }) + } +}