144 lines
2.2 KiB
Go
144 lines
2.2 KiB
Go
package utility_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"code.nonshy.com/nonshy/website/pkg/utility"
|
|
)
|
|
|
|
func TestFormatDurationCoarse(t *testing.T) {
|
|
var tests = []struct {
|
|
In time.Duration
|
|
Expect string
|
|
}{
|
|
{
|
|
In: 0,
|
|
Expect: "0 seconds",
|
|
},
|
|
{
|
|
In: 1 * time.Second,
|
|
Expect: "1 second",
|
|
},
|
|
{
|
|
In: 2 * time.Second,
|
|
Expect: "2 seconds",
|
|
},
|
|
{
|
|
In: 25 * time.Second,
|
|
Expect: "25 seconds",
|
|
},
|
|
{
|
|
In: 59 * time.Second,
|
|
Expect: "59 seconds",
|
|
},
|
|
{
|
|
In: 60 * time.Second,
|
|
Expect: "1 minute",
|
|
},
|
|
{
|
|
In: 90 * time.Second,
|
|
Expect: "1 minute",
|
|
},
|
|
{
|
|
In: 119 * time.Second,
|
|
Expect: "1 minute",
|
|
},
|
|
{
|
|
In: 120 * time.Second,
|
|
Expect: "2 minutes",
|
|
},
|
|
{
|
|
In: 15 * time.Minute,
|
|
Expect: "15 minutes",
|
|
},
|
|
{
|
|
In: 59 * time.Minute,
|
|
Expect: "59 minutes",
|
|
},
|
|
{
|
|
In: 60 * time.Minute,
|
|
Expect: "1 hour",
|
|
},
|
|
{
|
|
In: 75 * time.Minute,
|
|
Expect: "1 hour",
|
|
},
|
|
{
|
|
In: 119 * time.Minute,
|
|
Expect: "1 hour",
|
|
},
|
|
{
|
|
In: 120 * time.Minute,
|
|
Expect: "2 hours",
|
|
},
|
|
{
|
|
In: 14 * time.Hour,
|
|
Expect: "14 hours",
|
|
},
|
|
{
|
|
In: 23 * time.Hour,
|
|
Expect: "23 hours",
|
|
},
|
|
{
|
|
In: 24 * time.Hour,
|
|
Expect: "1 day",
|
|
},
|
|
{
|
|
In: 36 * time.Hour,
|
|
Expect: "1 day",
|
|
},
|
|
{
|
|
In: 48 * time.Hour,
|
|
Expect: "2 days",
|
|
},
|
|
{
|
|
In: time.Hour * 24 * 60,
|
|
Expect: "2 months",
|
|
},
|
|
{
|
|
In: time.Hour * 24 * 365,
|
|
Expect: "1 year",
|
|
},
|
|
{
|
|
In: time.Hour * 24 * 30 * 12,
|
|
Expect: "1 year",
|
|
},
|
|
{
|
|
In: time.Hour*24*30*12 + time.Hour*12,
|
|
Expect: "1 year",
|
|
},
|
|
{
|
|
In: time.Hour * 24 * 30 * 13,
|
|
Expect: "1.1 years",
|
|
},
|
|
{
|
|
In: time.Hour * 24 * 30 * 18,
|
|
Expect: "1.5 years",
|
|
},
|
|
{
|
|
In: time.Hour * 24 * 30 * 22,
|
|
Expect: "1.8 years",
|
|
},
|
|
{
|
|
In: time.Hour * 24 * 30 * 24,
|
|
Expect: "2 years",
|
|
},
|
|
{
|
|
In: time.Hour * 24 * 30 * 36,
|
|
Expect: "3 years",
|
|
},
|
|
{
|
|
In: time.Hour * 24 * 30 * 49,
|
|
Expect: "4 years",
|
|
},
|
|
}
|
|
|
|
for _, test := range tests {
|
|
actual := utility.FormatDurationCoarse(test.In)
|
|
if actual != test.Expect {
|
|
t.Errorf("Expected %d to be '%s' but got '%s'", test.In, test.Expect, actual)
|
|
}
|
|
}
|
|
}
|