This commit is contained in:
@@ -22,59 +22,141 @@ var testWorkDay = models.WorkDay{
|
||||
TimeTo: CatchError(time.Parse("2006-01-02 15:04", "2025-01-01 16:30")),
|
||||
}
|
||||
|
||||
func TestCalcRealWorkTime(t *testing.T) {
|
||||
workTime := testWorkDay.TimeWorkReal(testUser)
|
||||
if workTime != time.Hour*8 {
|
||||
t.Errorf("Calc Worktime Default not working, time should be 8h, but was %s", helper.FormatDuration(workTime))
|
||||
}
|
||||
}
|
||||
|
||||
func TestCalcWorkPauseDiff(t *testing.T) {
|
||||
type testCase struct {
|
||||
Name string
|
||||
bookings []models.Booking
|
||||
expectedWorkTime time.Duration
|
||||
expectedPauseTime time.Duration
|
||||
expectedOvertime time.Duration
|
||||
}
|
||||
|
||||
testCases := []testCase{testCase{
|
||||
Name: "6hrs no pause",
|
||||
bookings: testBookings6hrs,
|
||||
expectedWorkTime: 6 * time.Hour,
|
||||
expectedPauseTime: 0,
|
||||
expectedOvertime: -2 * time.Hour,
|
||||
},
|
||||
testCase{
|
||||
Name: "8hrs - 30min pause",
|
||||
bookings: testBookings8hrs,
|
||||
expectedWorkTime: 7*time.Hour + 30*time.Minute,
|
||||
expectedPauseTime: 30 * time.Minute,
|
||||
expectedOvertime: -30 * time.Minute,
|
||||
func TestWorkdayWorktimeDay(t *testing.T) {
|
||||
testCases := []struct {
|
||||
testName string
|
||||
bookings []models.Booking
|
||||
expectedTime time.Duration
|
||||
}{
|
||||
{
|
||||
testName: "Bookings6hrs",
|
||||
bookings: testBookings6hrs,
|
||||
expectedTime: time.Hour * 6,
|
||||
},
|
||||
testCase{
|
||||
Name: "10hrs - 45min pause",
|
||||
bookings: testBookings10hrs,
|
||||
expectedWorkTime: 9*time.Hour + 15*time.Minute,
|
||||
expectedPauseTime: 45 * time.Minute,
|
||||
expectedOvertime: 1*time.Hour + 15*time.Minute,
|
||||
}}
|
||||
{
|
||||
testName: "Bookings8hrs",
|
||||
bookings: testBookings8hrs,
|
||||
expectedTime: time.Hour*7 + time.Minute*30,
|
||||
},
|
||||
{
|
||||
testName: "Bookings10hrs",
|
||||
bookings: testBookings10hrs,
|
||||
expectedTime: time.Hour*9 + time.Minute*15,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range testCases {
|
||||
t.Run(test.Name, func(t *testing.T) {
|
||||
testWorkDay.Bookings = test.bookings
|
||||
testWorkDay.TimeWorkReal(testUser)
|
||||
testWorkDay.TimePauseReal(testUser)
|
||||
testWorkDay.TimeOvertimeReal(testUser)
|
||||
workTime, pauseTime, overTime := testWorkDay.GetAllWorkTimesReal(testUser)
|
||||
if workTime != test.expectedWorkTime {
|
||||
t.Errorf("Calculated wrong workTime: should be %s, but was %s", helper.FormatDuration(test.expectedWorkTime), helper.FormatDuration(workTime))
|
||||
}
|
||||
if pauseTime != test.expectedPauseTime {
|
||||
t.Errorf("Calculated wrong pauseTime: should be %s, but was %s", helper.FormatDuration(test.expectedPauseTime), helper.FormatDuration(pauseTime))
|
||||
}
|
||||
if overTime != test.expectedOvertime {
|
||||
t.Errorf("Calculated wrong overtime: should be %s, but was %s", helper.FormatDuration(test.expectedOvertime), helper.FormatDuration(overTime))
|
||||
for _, tc := range testCases {
|
||||
t.Run("Calc Absence Worktime: "+tc.testName, func(t *testing.T) {
|
||||
var testCase = testWorkDay
|
||||
testCase.Bookings = tc.bookings
|
||||
workTime := testCase.GetWorktimeReal(testUser, models.WorktimeBaseDay)
|
||||
if workTime != tc.expectedTime {
|
||||
t.Errorf("GetWorktimeReal not working, time should be %s, but was %s", helper.FormatDurationFill(tc.expectedTime, true), helper.FormatDurationFill(workTime, true))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestWorkdayWorktimeWeek(t *testing.T) {
|
||||
testCases := []struct {
|
||||
testName string
|
||||
bookings []models.Booking
|
||||
expectedTime time.Duration
|
||||
}{
|
||||
{
|
||||
testName: "Bookings6hrs",
|
||||
bookings: testBookings6hrs,
|
||||
expectedTime: time.Hour * 6,
|
||||
},
|
||||
{
|
||||
testName: "Bookings8hrs",
|
||||
bookings: testBookings8hrs,
|
||||
expectedTime: time.Hour*7 + time.Minute*30,
|
||||
},
|
||||
{
|
||||
testName: "Bookings10hrs",
|
||||
bookings: testBookings10hrs,
|
||||
expectedTime: time.Hour*9 + time.Minute*15,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run("Calc Absence Worktime: "+tc.testName, func(t *testing.T) {
|
||||
var testCase = testWorkDay
|
||||
testCase.Bookings = tc.bookings
|
||||
workTime := testCase.GetWorktimeReal(testUser, models.WorktimeBaseWeek)
|
||||
if workTime != tc.expectedTime {
|
||||
t.Errorf("GetWorktimeReal not working, time should be %s, but was %s", helper.FormatDurationFill(tc.expectedTime, true), helper.FormatDurationFill(workTime, true))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestWorkdayPausetimeDay(t *testing.T) {
|
||||
testCases := []struct {
|
||||
testName string
|
||||
bookings []models.Booking
|
||||
expectedTime time.Duration
|
||||
}{
|
||||
{
|
||||
testName: "Bookings6hrs",
|
||||
bookings: testBookings6hrs,
|
||||
expectedTime: 0,
|
||||
},
|
||||
{
|
||||
testName: "Bookings8hrs",
|
||||
bookings: testBookings8hrs,
|
||||
expectedTime: time.Minute * 30,
|
||||
},
|
||||
{
|
||||
testName: "Bookings10hrs",
|
||||
bookings: testBookings10hrs,
|
||||
expectedTime: time.Minute * 45,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run("Calc Absence Worktime: "+tc.testName, func(t *testing.T) {
|
||||
var testCase = testWorkDay
|
||||
testCase.Bookings = tc.bookings
|
||||
workTime := testCase.GetPausetimeReal(testUser, models.WorktimeBaseDay)
|
||||
if workTime != tc.expectedTime {
|
||||
t.Errorf("GetPausetimeReal not working, time should be %s, but was %s", helper.FormatDurationFill(tc.expectedTime, true), helper.FormatDurationFill(workTime, true))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestWorkdayPausetimeWeek(t *testing.T) {
|
||||
testCases := []struct {
|
||||
testName string
|
||||
bookings []models.Booking
|
||||
expectedTime time.Duration
|
||||
}{
|
||||
{
|
||||
testName: "Bookings6hrs",
|
||||
bookings: testBookings6hrs,
|
||||
expectedTime: 0,
|
||||
},
|
||||
{
|
||||
testName: "Bookings8hrs",
|
||||
bookings: testBookings8hrs,
|
||||
expectedTime: time.Minute * 30,
|
||||
},
|
||||
{
|
||||
testName: "Bookings10hrs",
|
||||
bookings: testBookings10hrs,
|
||||
expectedTime: time.Minute * 45,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run("Calc Absence Worktime: "+tc.testName, func(t *testing.T) {
|
||||
var testCase = testWorkDay
|
||||
testCase.Bookings = tc.bookings
|
||||
workTime := testCase.GetPausetimeReal(testUser, models.WorktimeBaseWeek)
|
||||
if workTime != tc.expectedTime {
|
||||
t.Errorf("GetPausetimeReal not working, time should be %s, but was %s", helper.FormatDurationFill(tc.expectedTime, true), helper.FormatDurationFill(workTime, true))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user