Compare commits
2 commits
506e92f17a
...
670b0bfd90
| Author | SHA1 | Date | |
|---|---|---|---|
| 670b0bfd90 | |||
| 4d723077e1 |
8 changed files with 81 additions and 93 deletions
|
|
@ -4,28 +4,28 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/nalgeon/be"
|
||||
)
|
||||
|
||||
func TestNewConf(t *testing.T) {
|
||||
c := NewConfig()
|
||||
assert.Equal(t, ".txt", c.extension)
|
||||
be.Equal(t, c.extension, ".txt")
|
||||
st, _ := c.generator(&c)
|
||||
_, parseErr := uuid.Parse(st)
|
||||
assert.NoError(t, parseErr)
|
||||
be.Err(t, parseErr, nil)
|
||||
}
|
||||
|
||||
func TestNewConfWithOpts(t *testing.T) {
|
||||
c := NewConfig(WithoutExtension(), WithPrefix("foobar"))
|
||||
assert.Equal(t, "", c.extension)
|
||||
assert.Equal(t, "foobar", c.prefix)
|
||||
be.Equal(t, c.extension, "")
|
||||
be.Equal(t, c.prefix, "foobar")
|
||||
}
|
||||
|
||||
func TestConfAddOpts(t *testing.T) {
|
||||
c := Config{original: "hi"}
|
||||
c2 := c.AddOptions(WithOriginalSlug("Hello, my dear"), WithPrefix("yo"))
|
||||
assert.Equal(t, "", c.prefix)
|
||||
assert.Equal(t, "hi", c.original)
|
||||
assert.Equal(t, "hello-my-dear", c2.original)
|
||||
assert.Equal(t, "yo", c2.prefix)
|
||||
be.Equal(t, c.prefix, "")
|
||||
be.Equal(t, c.original, "hi")
|
||||
be.Equal(t, c2.original, "hello-my-dear")
|
||||
be.Equal(t, c2.prefix, "yo")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,34 +4,34 @@ import (
|
|||
"crypto"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/nalgeon/be"
|
||||
)
|
||||
|
||||
func TestSlugMissingFilename(t *testing.T) {
|
||||
conf := NewConfig(WithGenerator(Slug()))
|
||||
st, err := conf.generator(&conf)
|
||||
assert.Zero(t, st)
|
||||
assert.ErrorIs(t, err, ErrMissingOriginal)
|
||||
be.Equal(t, st, "")
|
||||
be.Err(t, err, ErrMissingOriginal)
|
||||
}
|
||||
|
||||
func TestSlugRemovesOriginal(t *testing.T) {
|
||||
conf := NewConfig(WithGenerator(Slug()), WithOriginal("Hello, World"))
|
||||
st, err := conf.generator(&conf)
|
||||
assert.Zero(t, conf.original)
|
||||
assert.Equal(t, "hello-world", st)
|
||||
assert.NoError(t, err)
|
||||
be.Equal(t, conf.original, "")
|
||||
be.Equal(t, st, "hello-world")
|
||||
be.Err(t, err, nil)
|
||||
}
|
||||
|
||||
func TestHashBadHash(t *testing.T) {
|
||||
conf := NewConfig(WithOriginal("foobar"), WithGenerator(Hash(crypto.MD5SHA1)))
|
||||
st, err := conf.generator(&conf)
|
||||
assert.Equal(t, "", st)
|
||||
assert.ErrorIs(t, err, ErrInvalidHash)
|
||||
be.Equal(t, st, "")
|
||||
be.Err(t, err, ErrInvalidHash)
|
||||
}
|
||||
|
||||
func TestHashMissingOriginal(t *testing.T) {
|
||||
conf := NewConfig(WithGenerator(Hash(nil)))
|
||||
st, err := conf.generator(&conf)
|
||||
assert.Equal(t, "", st)
|
||||
assert.ErrorIs(t, err, ErrMissingOriginal)
|
||||
be.Equal(t, st, "")
|
||||
be.Err(t, err, ErrMissingOriginal)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,14 +4,14 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/nalgeon/be"
|
||||
)
|
||||
|
||||
func TestUUID(t *testing.T) {
|
||||
st, err := UUID(nil)(nil)
|
||||
assert.NoError(t, err)
|
||||
be.Err(t, err, nil)
|
||||
_, parseErr := uuid.Parse(st)
|
||||
assert.NoError(t, parseErr)
|
||||
be.Err(t, parseErr, nil)
|
||||
}
|
||||
|
||||
type badRead struct{}
|
||||
|
|
@ -25,17 +25,17 @@ func TestUUIDFail(t *testing.T) {
|
|||
defer uuid.SetRand(nil)
|
||||
|
||||
_, err := UUID(nil)(nil)
|
||||
assert.ErrorIs(t, err, errTest)
|
||||
be.Err(t, err, errTest)
|
||||
}
|
||||
|
||||
func TestRand(t *testing.T) {
|
||||
st, err := Random()(nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, st, 8)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, len(st), 8)
|
||||
}
|
||||
|
||||
func TestRandLen(t *testing.T) {
|
||||
st, err := Random(RandomLength(32))(nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Len(t, st, 32)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, len(st), 32)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/nalgeon/be"
|
||||
)
|
||||
|
||||
func TestTimestamp(t *testing.T) {
|
||||
n := time.Now()
|
||||
st, err := Timestamp()(nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, n.Format(FileTimestamp), st)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, st, n.Format(FileTimestamp))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,9 +2,10 @@ package nomino
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"slices"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/nalgeon/be"
|
||||
)
|
||||
|
||||
const (
|
||||
|
|
@ -26,24 +27,24 @@ func TestWithGenerator(t *testing.T) {
|
|||
var c Config
|
||||
WithGenerator(g)(&c)
|
||||
st, err := c.generator(&c)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, out1, st)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, st, out1)
|
||||
}
|
||||
|
||||
func TestMultiGeneratorInOrder(t *testing.T) {
|
||||
g := MultiGeneratorInOrder(gens...)
|
||||
st, err := g(nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, out1, st)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, st, out1)
|
||||
st, err = g(nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, out2, st)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, st, out2)
|
||||
st, err = g(nil)
|
||||
assert.Zero(t, st)
|
||||
assert.ErrorIs(t, err, err1)
|
||||
be.Equal(t, st, "")
|
||||
be.Err(t, err, err1)
|
||||
st, err = g(nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, out1, st)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, st, out1)
|
||||
}
|
||||
|
||||
func TestMultiGeneratorInOrderOne(t *testing.T) {
|
||||
|
|
@ -51,21 +52,21 @@ func TestMultiGeneratorInOrderOne(t *testing.T) {
|
|||
g := MultiGeneratorInOrder(g1)
|
||||
|
||||
st, err := g(nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, out1, st)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, st, out1)
|
||||
st, err = g(nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, out1, st)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, st, out1)
|
||||
}
|
||||
|
||||
func TestMultiGeneratorInOrderMissing(t *testing.T) {
|
||||
g := MultiGeneratorInOrder()
|
||||
st, err := g(nil)
|
||||
assert.Zero(t, st)
|
||||
assert.ErrorIs(t, err, ErrMissingGenerators)
|
||||
be.Equal(t, st, "")
|
||||
be.Err(t, err, ErrMissingGenerators)
|
||||
st, err = g(nil)
|
||||
assert.Zero(t, st)
|
||||
assert.ErrorIs(t, err, ErrMissingGenerators)
|
||||
be.Equal(t, st, "")
|
||||
be.Err(t, err, ErrMissingGenerators)
|
||||
}
|
||||
|
||||
func TestMultiGeneratorRandomOrder(t *testing.T) {
|
||||
|
|
@ -73,10 +74,10 @@ func TestMultiGeneratorRandomOrder(t *testing.T) {
|
|||
for i := 0; i < 4; i++ {
|
||||
st, err := g(nil)
|
||||
if err != nil {
|
||||
assert.Zero(t, st)
|
||||
assert.ErrorIs(t, err, err1)
|
||||
be.Equal(t, st, "")
|
||||
be.Err(t, err, err1)
|
||||
} else {
|
||||
assert.Contains(t, outs, st)
|
||||
be.True(t, slices.Contains(outs, st))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -87,19 +88,19 @@ func TestMultiGeneratorRandomOrderOne(t *testing.T) {
|
|||
g := MultiGeneratorRandomOrder(g1)
|
||||
|
||||
st, err := g(nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, st1, st)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, st, st1)
|
||||
st, err = g(nil)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, st1, st)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, st, st1)
|
||||
}
|
||||
|
||||
func TestMultiGeneratorRandomOrderMissing(t *testing.T) {
|
||||
g := MultiGeneratorRandomOrder()
|
||||
st, err := g(nil)
|
||||
assert.Zero(t, st)
|
||||
assert.ErrorIs(t, err, ErrMissingGenerators)
|
||||
be.Equal(t, st, "")
|
||||
be.Err(t, err, ErrMissingGenerators)
|
||||
st, err = g(nil)
|
||||
assert.Zero(t, st)
|
||||
assert.ErrorIs(t, err, ErrMissingGenerators)
|
||||
be.Equal(t, st, "")
|
||||
be.Err(t, err, ErrMissingGenerators)
|
||||
}
|
||||
|
|
|
|||
9
go.mod
9
go.mod
|
|
@ -6,12 +6,7 @@ require (
|
|||
github.com/deatil/go-encoding v1.0.3003
|
||||
github.com/google/uuid v1.6.0
|
||||
github.com/gosimple/slug v1.15.0
|
||||
github.com/stretchr/testify v1.10.0
|
||||
github.com/nalgeon/be v0.3.0
|
||||
)
|
||||
|
||||
require (
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/gosimple/unidecode v1.0.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
require github.com/gosimple/unidecode v1.0.1 // indirect
|
||||
|
|
|
|||
12
go.sum
12
go.sum
|
|
@ -1,5 +1,3 @@
|
|||
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/deatil/go-encoding v1.0.3003 h1:2b05UO+5JfVcXcOa8n/X3pm8aC6L6ET0mBZCb1kj3ck=
|
||||
github.com/deatil/go-encoding v1.0.3003/go.mod h1:lTMMKsG0RRPGZzdW2EPVJCA7HQy4o1ZQKPf5CmVDy2k=
|
||||
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
||||
|
|
@ -8,11 +6,5 @@ github.com/gosimple/slug v1.15.0 h1:wRZHsRrRcs6b0XnxMUBM6WK1U1Vg5B0R7VkIf1Xzobo=
|
|||
github.com/gosimple/slug v1.15.0/go.mod h1:UiRaFH+GEilHstLUmcBgWcI42viBN7mAb818JrYOeFQ=
|
||||
github.com/gosimple/unidecode v1.0.1 h1:hZzFTMMqSswvf0LBJZCZgThIZrpDHFXux9KeGmn6T/o=
|
||||
github.com/gosimple/unidecode v1.0.1/go.mod h1:CP0Cr1Y1kogOtx0bJblKzsVWrqYaqfNOnHzpgWw4Awc=
|
||||
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/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
|
||||
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/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=
|
||||
github.com/nalgeon/be v0.3.0 h1:QsPANqEtcOD5qT2S3KAtIkDBBn8SXUf/Lb5Bi/z4UqM=
|
||||
github.com/nalgeon/be v0.3.0/go.mod h1:PMwMuBLopwKJkSHnr2qHyLcZYUTqNejN7A8RAqNWO3E=
|
||||
|
|
|
|||
32
make_test.go
32
make_test.go
|
|
@ -4,12 +4,12 @@ import (
|
|||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/nalgeon/be"
|
||||
)
|
||||
|
||||
var errTest = errors.New("sorry")
|
||||
|
||||
func TestMake(t *testing.T) {
|
||||
func TestMake(tt *testing.T) {
|
||||
genOpt := WithGenerator(func(*Config) (string, error) { return "abc", nil })
|
||||
testcases := []struct {
|
||||
name string
|
||||
|
|
@ -37,14 +37,14 @@ func TestMake(t *testing.T) {
|
|||
}
|
||||
|
||||
for _, testcase := range testcases {
|
||||
t.Run(testcase.name, func(sub *testing.T) {
|
||||
tt.Run(testcase.name, func(t *testing.T) {
|
||||
opts := testcase.opts
|
||||
opts = append(opts, genOpt)
|
||||
|
||||
conf := NewConfig(opts...)
|
||||
st, err := Make(conf)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, testcase.exp, st)
|
||||
be.Err(t, err, nil)
|
||||
be.Equal(t, st, testcase.exp)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
|
@ -52,8 +52,8 @@ func TestMake(t *testing.T) {
|
|||
func TestMakeErr(t *testing.T) {
|
||||
conf := NewConfig(WithGenerator(func(*Config) (string, error) { return "foobar", errTest }))
|
||||
st, err := Make(conf)
|
||||
assert.Zero(t, st)
|
||||
assert.ErrorIs(t, err, errTest)
|
||||
be.Equal(t, st, "")
|
||||
be.Err(t, err, errTest)
|
||||
}
|
||||
|
||||
func TestMakeDoesntChangeConf(t *testing.T) {
|
||||
|
|
@ -63,9 +63,9 @@ func TestMakeDoesntChangeConf(t *testing.T) {
|
|||
}
|
||||
conf := NewConfig(WithGenerator(gen), WithOriginal("foobar"))
|
||||
st, err := Make(conf)
|
||||
assert.Equal(t, "foobar", conf.original)
|
||||
assert.Equal(t, "foo.txt", st)
|
||||
assert.NoError(t, err)
|
||||
be.Equal(t, conf.original, "foobar")
|
||||
be.Equal(t, st, "foo.txt")
|
||||
be.Err(t, err, nil)
|
||||
}
|
||||
|
||||
func TestMakeOptsDoesntChangeConf(t *testing.T) {
|
||||
|
|
@ -73,12 +73,12 @@ func TestMakeOptsDoesntChangeConf(t *testing.T) {
|
|||
conf := NewConfig(WithGenerator(gen), WithPrefix("pre"))
|
||||
|
||||
st, err := Make(conf, WithOriginal("foobar"))
|
||||
assert.Equal(t, "", conf.original)
|
||||
assert.Equal(t, "pre_0_foobar.txt", st)
|
||||
assert.NoError(t, err)
|
||||
be.Equal(t, conf.original, "")
|
||||
be.Equal(t, st, "pre_0_foobar.txt")
|
||||
be.Err(t, err, nil)
|
||||
|
||||
st, err = Make(conf, WithOriginal("baz"))
|
||||
assert.Equal(t, "", conf.original)
|
||||
assert.Equal(t, "pre_1_baz.txt", st)
|
||||
assert.NoError(t, err)
|
||||
be.Equal(t, conf.original, "")
|
||||
be.Equal(t, st, "pre_1_baz.txt")
|
||||
be.Err(t, err, nil)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue