mugit/internal/humanize/time_test.go (view raw)
Oleksandr Smirnov
Oleksandr Smirnov
olexsmir@gmail.com refactor: remove humanize dependency, 4 months ago
olexsmir@gmail.com refactor: remove humanize dependency, 4 months ago
| 1 | package humanize |
| 2 | |
| 3 | import ( |
| 4 | "testing" |
| 5 | "time" |
| 6 | ) |
| 7 | |
| 8 | func TestFormatDuration(t *testing.T) { |
| 9 | tests := []struct { |
| 10 | d time.Duration |
| 11 | want string |
| 12 | }{ |
| 13 | {0, "less than a minute"}, |
| 14 | {30 * time.Second, "less than a minute"}, |
| 15 | {1 * time.Minute, "1 minute"}, |
| 16 | {90 * time.Second, "1 minute"}, |
| 17 | {2 * time.Minute, "2 minutes"}, |
| 18 | {43 * time.Minute, "43 minutes"}, |
| 19 | {1 * time.Hour, "1 hour"}, |
| 20 | {90 * time.Minute, "1 hour"}, |
| 21 | {2 * time.Hour, "2 hours"}, |
| 22 | {23 * time.Hour, "23 hours"}, |
| 23 | {24 * time.Hour, "1 day"}, |
| 24 | {36 * time.Hour, "1 day"}, |
| 25 | {48 * time.Hour, "2 days"}, |
| 26 | {29 * 24 * time.Hour, "29 days"}, |
| 27 | {30 * 24 * time.Hour, "1 month"}, |
| 28 | {45 * 24 * time.Hour, "1 month"}, |
| 29 | {60 * 24 * time.Hour, "2 months"}, |
| 30 | {364 * 24 * time.Hour, "12 months"}, |
| 31 | {365 * 24 * time.Hour, "1 year"}, |
| 32 | {500 * 24 * time.Hour, "1 year"}, |
| 33 | {730 * 24 * time.Hour, "2 years"}, |
| 34 | {1000 * 24 * time.Hour, "2 years"}, |
| 35 | } |
| 36 | |
| 37 | for _, tt := range tests { |
| 38 | got := formatDuration(tt.d) |
| 39 | if got != tt.want { |
| 40 | t.Errorf("formatDuration(%v) = %q, want %q", tt.d, got, tt.want) |
| 41 | } |
| 42 | } |
| 43 | } |