Files
sofmani/utils/duration_test.go

42 lines
830 B
Go

package utils
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestParsePrettyDuration(t *testing.T) {
tests := []struct {
input string
expected time.Duration
wantErr bool
}{
{"60s", 60 * time.Second, false},
{"5m", 5 * time.Minute, false},
{"2h", 2 * time.Hour, false},
{"1d", 24 * time.Hour, false},
{"1w", 7 * 24 * time.Hour, false},
{"3d", 3 * 24 * time.Hour, false},
{"1d12h", 36 * time.Hour, false},
{"1w2d", 9 * 24 * time.Hour, false},
{"", 0, true},
{"abc", 0, true},
{"5", 0, true},
{"5x", 0, true},
}
for _, tt := range tests {
t.Run(tt.input, func(t *testing.T) {
result, err := ParsePrettyDuration(tt.input)
if tt.wantErr {
assert.Error(t, err)
} else {
assert.NoError(t, err)
assert.Equal(t, tt.expected, result)
}
})
}
}