2024-07-30 03:37:02 -07:00
|
|
|
package cache
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestSeconds(t *testing.T) {
|
|
|
|
cases := []struct {
|
|
|
|
Case string
|
|
|
|
Duration Duration
|
|
|
|
Expected int
|
|
|
|
}{
|
|
|
|
{
|
|
|
|
Case: "2 seconds",
|
2024-09-30 00:33:45 -07:00
|
|
|
Duration: "2s",
|
2024-07-30 03:37:02 -07:00
|
|
|
Expected: 2,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Case: "1 minute",
|
2024-09-30 00:33:45 -07:00
|
|
|
Duration: "1m",
|
2024-07-30 03:37:02 -07:00
|
|
|
Expected: 60,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Case: "2 hours",
|
2024-09-30 00:33:45 -07:00
|
|
|
Duration: "2h",
|
2024-07-30 03:37:02 -07:00
|
|
|
Expected: 7200,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Case: "2 days",
|
2024-09-30 00:33:45 -07:00
|
|
|
Duration: "48h",
|
2024-07-30 03:37:02 -07:00
|
|
|
Expected: 172800,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Case: "invalid",
|
|
|
|
Duration: "foo",
|
|
|
|
Expected: 0,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Case: "1 fortnight",
|
|
|
|
Duration: "1fortnight",
|
|
|
|
Expected: 0,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
Case: "infinite",
|
|
|
|
Duration: "infinite",
|
|
|
|
Expected: -1,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
for _, tc := range cases {
|
|
|
|
got := tc.Duration.Seconds()
|
|
|
|
assert.Equal(t, tc.Expected, got, tc.Case)
|
|
|
|
}
|
|
|
|
}
|