Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions argument_config_validation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,25 @@
import (
"testing"

"github.com/broothie/test"
"github.com/stretchr/testify/assert"
)

func TestArgument_validateConfig(t *testing.T) {
t.Run("empty name", func(t *testing.T) {
arg := &Argument{name: ""}
err := arg.validateConfig()
test.ErrorMessageIs(t, err, "argument name cannot be empty")
assert.ErrorMessageIs(t, err, "argument name cannot be empty")

Check failure on line 13 in argument_config_validation_test.go

View workflow job for this annotation

GitHub Actions / test

undefined: assert.ErrorMessageIs
})

t.Run("multiple tokens", func(t *testing.T) {
arg := &Argument{name: "invalid argument name"}
err := arg.validateConfig()
test.ErrorMessageIs(t, err, `argument name "invalid argument name" must be a single token`)
assert.ErrorMessageIs(t, err, `argument name "invalid argument name" must be a single token`)

Check failure on line 19 in argument_config_validation_test.go

View workflow job for this annotation

GitHub Actions / test

undefined: assert.ErrorMessageIs
})

t.Run("valid name", func(t *testing.T) {
arg := &Argument{name: "valid-arg"}
err := arg.validateConfig()
test.NoError(t, err)
assert.NoError(t, err)
})
}
8 changes: 4 additions & 4 deletions argument_input_validation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
import (
"testing"

"github.com/broothie/test"
"github.com/stretchr/testify/assert"
)

func TestArgument_validateInput(t *testing.T) {
arg, err := newArgument("test-arg", "Test arg.")
test.MustNoError(t, err)
assert.MustNoError(t, err)

Check failure on line 11 in argument_input_validation_test.go

View workflow job for this annotation

GitHub Actions / test

undefined: assert.MustNoError

test.ErrorMessageIs(t, arg.validateInput(), `argument "test-arg": argument missing value`)
assert.ErrorMessageIs(t, arg.validateInput(), `argument "test-arg": argument missing value`)

Check failure on line 13 in argument_input_validation_test.go

View workflow job for this annotation

GitHub Actions / test

undefined: assert.ErrorMessageIs

arg.value = "something"
test.NoError(t, arg.validateInput())
assert.NoError(t, arg.validateInput())
}
60 changes: 30 additions & 30 deletions cli_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import (
"context"
"testing"

"github.com/broothie/test"
"github.com/stretchr/testify/assert"
"github.com/samber/lo"
)

func ensureCalled(t *testing.T) func() {
called := false
t.Cleanup(func() { test.True(t, called) })
t.Cleanup(func() { assert.True(t, called) })

return func() { called = true }
}
Expand Down Expand Up @@ -42,8 +42,8 @@ func Test_git(t *testing.T) {
called()

gitDir, err := FlagValue[string](ctx, "git-dir")
test.NoError(t, err)
test.Equal(t, "/path/to/something", gitDir)
assert.NoError(t, err)
assert.Equal(t, "/path/to/something", gitDir)

return nil
}
Expand All @@ -57,8 +57,8 @@ func Test_git(t *testing.T) {
called()

gitDir, err := FlagValue[string](ctx, "git-dir")
test.NoError(t, err)
test.Equal(t, "/path/to/something", gitDir)
assert.NoError(t, err)
assert.Equal(t, "/path/to/something", gitDir)

return nil
}
Expand All @@ -82,8 +82,8 @@ func Test_git(t *testing.T) {
called()

message, err := FlagValue[string](ctx, "message")
test.NoError(t, err)
test.Equal(t, "a commit message", message)
assert.NoError(t, err)
assert.Equal(t, "a commit message", message)

return nil
}
Expand All @@ -97,12 +97,12 @@ func Test_git(t *testing.T) {
called()

isAll, err := FlagValue[bool](ctx, "all")
test.NoError(t, err)
test.False(t, isAll)
assert.NoError(t, err)
assert.False(t, isAll)

message, err := FlagValue[string](ctx, "message")
test.NoError(t, err)
test.Equal(t, "a commit message", message)
assert.NoError(t, err)
assert.Equal(t, "a commit message", message)

return nil
}
Expand All @@ -116,12 +116,12 @@ func Test_git(t *testing.T) {
called()

isAll, err := FlagValue[bool](ctx, "all")
test.NoError(t, err)
test.False(t, isAll)
assert.NoError(t, err)
assert.False(t, isAll)

message, err := FlagValue[string](ctx, "message")
test.NoError(t, err)
test.Equal(t, "a commit message", message)
assert.NoError(t, err)
assert.Equal(t, "a commit message", message)

return nil
}
Expand All @@ -135,12 +135,12 @@ func Test_git(t *testing.T) {
called()

isAll, err := FlagValue[bool](ctx, "all")
test.NoError(t, err)
test.True(t, isAll)
assert.NoError(t, err)
assert.True(t, isAll)

message, err := FlagValue[string](ctx, "message")
test.NoError(t, err)
test.Equal(t, "a commit message", message)
assert.NoError(t, err)
assert.Equal(t, "a commit message", message)

return nil
}
Expand All @@ -154,8 +154,8 @@ func Test_git(t *testing.T) {
called()

branch, err := ArgValue[string](ctx, "branch")
test.NoError(t, err)
test.Equal(t, "some-branch", branch)
assert.NoError(t, err)
assert.Equal(t, "some-branch", branch)

return nil
}
Expand All @@ -169,12 +169,12 @@ func Test_git(t *testing.T) {
called()

branch, err := ArgValue[string](ctx, "branch")
test.NoError(t, err)
test.Equal(t, "some-branch", branch)
assert.NoError(t, err)
assert.Equal(t, "some-branch", branch)

isNewBranch, err := FlagValue[bool](ctx, "new-branch")
test.NoError(t, err)
test.True(t, isNewBranch)
assert.NoError(t, err)
assert.True(t, isNewBranch)

return nil
}
Expand All @@ -188,8 +188,8 @@ func Test_git(t *testing.T) {
called()

globalGitignore, err := FlagValue[string](ctx, "global-gitignore")
test.NoError(t, err)
test.Equal(t, globalGitignore, "path/to/some/.gitignore")
assert.NoError(t, err)
assert.Equal(t, globalGitignore, "path/to/some/.gitignore")
return nil
}
},
Expand Down Expand Up @@ -228,8 +228,8 @@ func Test_git(t *testing.T) {
SetHandler(lo.IfF(testCase.gitHandler != nil, func() Handler { return testCase.gitHandler(t) }).Else(nil)),
)

test.NoError(t, err)
test.Nil(t, command.Run(context.TODO(), testCase.rawArgs))
assert.NoError(t, err)
assert.Nil(t, command.Run(context.TODO(), testCase.rawArgs))
})
}
}
4 changes: 2 additions & 2 deletions command_config_validation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"testing"

"github.com/broothie/option"
"github.com/broothie/test"
"github.com/stretchr/testify/assert"
)

func TestCommand_config_validations(t *testing.T) {
Expand Down Expand Up @@ -47,7 +47,7 @@
for name, testCase := range testCases {
t.Run(name, func(t *testing.T) {
_, err := NewCommand("test", "test command", testCase.commandOptions...)
test.ErrorMessageIs(t, err, testCase.expectedError)
assert.ErrorMessageIs(t, err, testCase.expectedError)

Check failure on line 50 in command_config_validation_test.go

View workflow job for this annotation

GitHub Actions / test

undefined: assert.ErrorMessageIs
})
}
}
8 changes: 4 additions & 4 deletions exit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ import (
"os/exec"
"testing"

"github.com/broothie/test"
"github.com/stretchr/testify/assert"
)

func TestExitError_Error(t *testing.T) {
err := &ExitError{Code: 2}
test.Equal(t, "exit status 2", err.Error())
assert.Equal(t, "exit status 2", err.Error())
}

func TestExitCode(t *testing.T) {
err := ExitCode(3)
test.Equal(t, 3, err.Code)
assert.Equal(t, 3, err.Code)
}

func TestExitWithError(t *testing.T) {
Expand All @@ -30,7 +30,7 @@ func TestExitWithError(t *testing.T) {
err := cmd.Run()

if exitErr, ok := err.(*exec.ExitError); ok {
test.Equal(t, 4, exitErr.ExitCode())
assert.Equal(t, 4, exitErr.ExitCode())
} else {
t.Errorf("expected ExitError, got %v", err)
}
Expand Down
8 changes: 4 additions & 4 deletions flag_config_validation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,25 @@
import (
"testing"

"github.com/broothie/test"
"github.com/stretchr/testify/assert"
)

func TestFlag_validateConfig(t *testing.T) {
t.Run("empty name", func(t *testing.T) {
flag := &Flag{name: ""}
err := flag.validateConfig()
test.ErrorMessageIs(t, err, "flag name cannot be empty")
assert.ErrorMessageIs(t, err, "flag name cannot be empty")

Check failure on line 13 in flag_config_validation_test.go

View workflow job for this annotation

GitHub Actions / test

undefined: assert.ErrorMessageIs
})

t.Run("multiple tokens", func(t *testing.T) {
flag := &Flag{name: "invalid flag name"}
err := flag.validateConfig()
test.ErrorMessageIs(t, err, `flag name "invalid flag name" must be a single token`)
assert.ErrorMessageIs(t, err, `flag name "invalid flag name" must be a single token`)

Check failure on line 19 in flag_config_validation_test.go

View workflow job for this annotation

GitHub Actions / test

undefined: assert.ErrorMessageIs
})

t.Run("valid name", func(t *testing.T) {
flag := &Flag{name: "valid-flag"}
err := flag.validateConfig()
test.NoError(t, err)
assert.NoError(t, err)
})
}
10 changes: 5 additions & 5 deletions flag_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package cli
import (
"testing"

"github.com/broothie/test"
"github.com/stretchr/testify/assert"
"github.com/samber/lo"
)

Expand All @@ -16,11 +16,11 @@ func TestCommand_flagsUpToRoot(t *testing.T) {
),
)

test.NoError(t, err)
assert.NoError(t, err)

flags := command.subCommands[0].flagsUpToRoot()
flagNames := lo.Map(flags, func(flag *Flag, _ int) string { return flag.name })
test.Contains(t, flagNames, "top-inherited")
test.Contains(t, flagNames, "flag")
test.NotContains(t, flagNames, "top-uninherited")
assert.Contains(t, flagNames, "top-inherited")
assert.Contains(t, flagNames, "flag")
assert.NotContains(t, flagNames, "top-uninherited")
}
5 changes: 3 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ require (
github.com/MakeNowJust/heredoc/v2 v2.0.1
github.com/bobg/errors v1.1.0
github.com/broothie/option v0.1.0
github.com/broothie/test v0.1.9
github.com/samber/lo v1.49.1
github.com/stretchr/testify v1.10.0
)

require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
golang.org/x/text v0.21.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
13 changes: 7 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,22 @@ github.com/bobg/errors v1.1.0 h1:gsVanPzJMpZQpwY+27/GQYElZez5CuMYwiIpk2A3RGw=
github.com/bobg/errors v1.1.0/go.mod h1:Q4775qBZpnte7EGFJqmvnlB1U4pkI1XmU3qxqdp7Zcc=
github.com/broothie/option v0.1.0 h1:5l6qdv9g1Ajxn7821brKVzOZxIjlVB0gA1MU8QbW8Fw=
github.com/broothie/option v0.1.0/go.mod h1:doEn1r1TpaaBJRdHLZlsdjvnrnH0u1WW+FZA018hE2g=
github.com/broothie/test v0.1.9 h1:YO+pAEssBJPvJEWSvl2dSjhsUFm9xszqOXFVEfiI33Q=
github.com/broothie/test v0.1.9/go.mod h1:txzDcP9OHro3y7goC+ZznIkASy8NJks4dUcdbwsP0HM=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew=
github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
Loading