mirror of
https://github.com/chenasraf/sofmani.git
synced 2026-05-17 17:28:04 +00:00
42 lines
830 B
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)
|
|
}
|
|
})
|
|
}
|
|
}
|