2022-02-15 17:50:10 +01:00
|
|
|
// Copyright 2022 Gitea. All rights reserved.
|
2022-11-27 13:20:29 -05:00
|
|
|
// SPDX-License-Identifier: MIT
|
2022-02-15 17:50:10 +01:00
|
|
|
|
|
|
|
package util
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
2025-01-19 04:30:44 +03:00
|
|
|
func TestSecToHours(t *testing.T) {
|
2022-08-08 05:07:42 +00:00
|
|
|
second := int64(1)
|
|
|
|
minute := 60 * second
|
|
|
|
hour := 60 * minute
|
|
|
|
day := 24 * hour
|
|
|
|
|
2025-01-19 04:30:44 +03:00
|
|
|
assert.Equal(t, "1 minute", SecToHours(minute+6*second))
|
|
|
|
assert.Equal(t, "1 hour", SecToHours(hour))
|
|
|
|
assert.Equal(t, "1 hour", SecToHours(hour+second))
|
|
|
|
assert.Equal(t, "14 hours 33 minutes", SecToHours(14*hour+33*minute+30*second))
|
|
|
|
assert.Equal(t, "156 hours 30 minutes", SecToHours(6*day+12*hour+30*minute+18*second))
|
|
|
|
assert.Equal(t, "98 hours 16 minutes", SecToHours(4*day+2*hour+16*minute+58*second))
|
|
|
|
assert.Equal(t, "672 hours", SecToHours(4*7*day))
|
Worktime tracking for the organization level (#19808)
Dear Gitea team,
first of all, thanks for the great work you're doing with this project.
I'm planning to introduce Gitea at a client site, and noticed that while
there is time recording, there are no project-manager-friendly reports
to actually make use of that data, as were also mentioned by others in
#4870 #8684 and #13531.
Since I had a little time last weekend, I had put together something
that I hope to be a useful contribution to this great project (while of
course useful for me too).
This PR adds a new "Worktime" tab to the Organisation level. There is a
date range selector (by default set to the current month), and there are
three possible views:
- by repository,
- by milestone, and
- by team member.
Happy to receive any feedback!
There are several possible future improvements of course (predefined
date ranges, charts, a member time sheet, matrix of repos/members, etc)
but I hope that even in this relatively simple state this would be
useful to lots of people.
<img width="1161" alt="Screen Shot 2022-05-25 at 22 12 58"
src="https://user-images.githubusercontent.com/118010/170366976-af00c7af-c4f3-4117-86d7-00356d6797a5.png">
Keep up the good work!
Kristof
---------
Co-authored-by: user <user@kk-git1>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2025-02-02 18:51:12 +01:00
|
|
|
assert.Equal(t, "1 second", SecToHours(1))
|
|
|
|
assert.Equal(t, "2 seconds", SecToHours(2))
|
|
|
|
assert.Equal(t, "", SecToHours(nil)) // old behavior, empty means no output
|
2022-02-15 17:50:10 +01:00
|
|
|
}
|