fix:#20 test for mockClock in winter semester

This commit is contained in:
Elmar Kresse
2024-09-06 20:06:21 +02:00
parent ebed0e00a3
commit 86b03eba50
4 changed files with 19 additions and 6 deletions

View File

@ -63,7 +63,8 @@ func AddRoutes(services serviceModel.Service) {
Method: http.MethodGet,
Path: "/api/fetch/daily/events",
Handler: func(c echo.Context) error {
course.UpdateCourse(services)
clock := time.RealClock{}
course.UpdateCourse(services, clock)
return c.JSON(http.StatusOK, "Daily events fetched")
},
Middlewares: []echo.MiddlewareFunc{

View File

@ -51,7 +51,8 @@ func AddSchedules(services serviceModel.Service) {
// In Germany it is 7am and 7pm, syllabus gets updated twice a day at German 5:00 Uhr and 17:00 Uhr
scheduler.MustAdd("updateEventsByCourse", "0 5,17 * * *", func() {
slog.Info("Started updating courses schedule")
course.UpdateCourse(services)
clock := time.RealClock{}
course.UpdateCourse(services, clock)
})
// Every sunday at 1am clean all courses (5 segments - minute, hour, day, month, weekday) "0 3 * * 0"

View File

@ -24,8 +24,8 @@ import (
"log/slog"
)
func UpdateCourse(service serviceModel.Service) {
currentSemesters := functions.CalculateSemesterList(time.RealClock{})
func UpdateCourse(service serviceModel.Service, clock time.Clock) {
currentSemesters := functions.CalculateSemesterList(clock)
var seminarGroups []model.SeminarGroup

View File

@ -7,6 +7,7 @@ import (
"htwkalender/data-manager/model"
"htwkalender/data-manager/model/serviceModel"
"htwkalender/data-manager/service/events/mock"
"htwkalender/data-manager/service/functions/time"
"log/slog"
"regexp"
"testing"
@ -26,6 +27,11 @@ func TestUpdateCourse(t *testing.T) {
mockCourseService := new(mock.MockCourseService)
mockEventService := new(mock.MockEventService)
// Set the current time to 2024-07-01T00:00:00Z
// This will result in the current semester being "ss"
parseTime, _ := time.ParseTime("2024-07-01T00:00:00Z")
mockClock := time.MockClock{NowTime: parseTime}
events := model.Events{}
// Set up expectations
@ -39,7 +45,7 @@ func TestUpdateCourse(t *testing.T) {
EventService: mockEventService,
App: nil,
}
UpdateCourse(service)
UpdateCourse(service, mockClock)
// Assert that the expectations were met
mockCourseService.AssertExpectations(t)
@ -61,6 +67,11 @@ func TestUpdateCourseErr(t *testing.T) {
events := model.Events{}
// Set the current time to 2024-07-01T00:00:00Z
// This will result in the current semester being "ss"
parseTime, _ := time.ParseTime("2024-07-01T00:00:00Z")
mockClock := time.MockClock{NowTime: parseTime}
// Set up expectations
mockCourseService.On("GetAllCoursesForSemester", "ss").Return([]model.SeminarGroup{{Course: "Course1", Semester: ""}, {Course: "Course2", Semester: ""}})
mockEventService.On("UpdateModulesForCourse", model.SeminarGroup{Course: "Course1", Semester: ""}).Return(events, fmt.Errorf("error"))
@ -80,7 +91,7 @@ func TestUpdateCourseErr(t *testing.T) {
EventService: mockEventService,
App: nil,
}
UpdateCourse(service)
UpdateCourse(service, mockClock)
// Assert that the expectations were met
mockCourseService.AssertExpectations(t)