Skip to content

Commit

Permalink
Adds unit tests for confirm's Options.errIsValidTimeout()
Browse files Browse the repository at this point in the history
  • Loading branch information
dpritchett committed Oct 31, 2024
1 parent b479523 commit 41ec719
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions confirm/command_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package confirm

import (
"fmt"
"github.com/charmbracelet/huh"
"testing"
"time"
)

func TestOptions_errIsValidTimeout(t *testing.T) {
type testCase struct {
Description string
GivenTimeout time.Duration
GivenError error
ExpectedResult bool
}

cases := []testCase{
{
Description: "timeout is positive, err is a timeout",
GivenTimeout: time.Second,
GivenError: huh.ErrTimeout,
ExpectedResult: true,
},
{
Description: "timeout is zero, err is a timeout",
GivenTimeout: 0,
GivenError: huh.ErrTimeout,
ExpectedResult: false,
},
{
Description: "timeout is positive, err is not a timeout",
GivenTimeout: 1,
GivenError: fmt.Errorf("i'm not a timeout"),
ExpectedResult: false,
},
{
Description: "timeout is zero, err is not a timeout",
GivenTimeout: 0,
GivenError: fmt.Errorf("i'm not a timeout"),
ExpectedResult: false,
},
}

for _, testCase := range cases {
t.Run(testCase.Description, func(t *testing.T) {
sut := Options{Timeout: testCase.GivenTimeout}
actualResult := sut.errIsValidTimeout(testCase.GivenError)
if actualResult != testCase.ExpectedResult {
t.Errorf("got: %v, want: %v", actualResult, testCase.ExpectedResult)
}
})
}
}

0 comments on commit 41ec719

Please sign in to comment.