Major refactoring.
+ Many lib functions have been split out into separate packages. + Adding cert/key generation tooling. + Add new time.Duration parser.
This commit is contained in:
@@ -2,10 +2,46 @@ package lib_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"git.wntrmute.dev/kyle/goutils/lib"
|
||||
)
|
||||
|
||||
func TestParseDuration(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
input string
|
||||
expected time.Duration
|
||||
wantErr bool
|
||||
}{
|
||||
// Valid durations
|
||||
{"hour", "1h", time.Hour, false},
|
||||
{"day", "2d", 2 * 24 * time.Hour, false},
|
||||
{"minute", "3m", 3 * time.Minute, false},
|
||||
{"second", "4s", 4 * time.Second, false},
|
||||
|
||||
// Edge cases
|
||||
{"zero seconds", "0s", 0, false},
|
||||
{"empty string", "", 0, true},
|
||||
{"no numeric before unit", "h", 0, true},
|
||||
{"invalid unit", "1x", 0, true},
|
||||
{"non-numeric input", "abc", 0, true},
|
||||
{"missing unit", "10", 0, true},
|
||||
}
|
||||
|
||||
for _, tc := range tests {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
got, err := lib.ParseDuration(tc.input)
|
||||
if (err != nil) != tc.wantErr {
|
||||
t.Fatalf("unexpected error: %v, wantErr: %v", err, tc.wantErr)
|
||||
}
|
||||
if got != tc.expected {
|
||||
t.Fatalf("expected %v, got %v", tc.expected, got)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestHexEncode_LowerUpper(t *testing.T) {
|
||||
b := []byte{0x0f, 0xa1, 0x00, 0xff}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user