human_duration_test.go 902 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package utils
  2. import (
  3. "testing"
  4. "time"
  5. )
  6. func TestParseDuration(t *testing.T) {
  7. type args struct {
  8. d string
  9. }
  10. tests := []struct {
  11. name string
  12. args args
  13. want time.Duration
  14. wantErr bool
  15. }{
  16. {
  17. name: "5h20m",
  18. args: args{"5h20m"},
  19. want: time.Hour*5 + 20*time.Minute,
  20. wantErr: false,
  21. },
  22. {
  23. name: "1d5h20m",
  24. args: args{"1d5h20m"},
  25. want: 24*time.Hour + time.Hour*5 + 20*time.Minute,
  26. wantErr: false,
  27. },
  28. {
  29. name: "1d",
  30. args: args{"1d"},
  31. want: 24 * time.Hour,
  32. wantErr: false,
  33. },
  34. }
  35. for _, tt := range tests {
  36. t.Run(tt.name, func(t *testing.T) {
  37. got, err := ParseDuration(tt.args.d)
  38. if (err != nil) != tt.wantErr {
  39. t.Errorf("ParseDuration() error = %v, wantErr %v", err, tt.wantErr)
  40. return
  41. }
  42. if got != tt.want {
  43. t.Errorf("ParseDuration() got = %v, want %v", got, tt.want)
  44. }
  45. })
  46. }
  47. }