wrote tests
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
module git.wisehodl.dev/jay/go-mana-component
|
||||
|
||||
go 1.25.0
|
||||
|
||||
require github.com/stretchr/testify v1.11.1
|
||||
|
||||
require (
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
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/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.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
|
||||
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
|
||||
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=
|
||||
@@ -0,0 +1,83 @@
|
||||
package component
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"log/slog"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestNew(t *testing.T) {
|
||||
t.Run("creates a new component", func(t *testing.T) {
|
||||
ctx, err := New(context.Background(), "mymodule", "mycomponent")
|
||||
assert.NoError(t, err)
|
||||
c, ok := Get(ctx)
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, "mymodule", c.Module())
|
||||
assert.Equal(t, []string{"mycomponent"}, c.Path())
|
||||
assert.Equal(t, "mycomponent", c.PathString())
|
||||
})
|
||||
|
||||
t.Run("should return error", func(t *testing.T) {
|
||||
_, err := New(nil, "mymodule", "mycomponent")
|
||||
assert.Error(t, err)
|
||||
})
|
||||
|
||||
t.Run("must variant should panic", func(t *testing.T) {
|
||||
assert.Panics(t, func() {
|
||||
MustNew(nil, "mymodule", "mycomponent")
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func TestExtend(t *testing.T) {
|
||||
t.Run("extends existing component", func(t *testing.T) {
|
||||
ctx := MustNew(context.Background(), "mymodule", "mycomponent")
|
||||
ctx, err := Extend(ctx, "subcomponent")
|
||||
assert.NoError(t, err)
|
||||
c, ok := Get(ctx)
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, "mymodule", c.Module())
|
||||
assert.Equal(t, []string{"mycomponent", "subcomponent"}, c.Path())
|
||||
assert.Equal(t, "mycomponent.subcomponent", c.PathString())
|
||||
})
|
||||
|
||||
t.Run("should return error", func(t *testing.T) {
|
||||
_, err := Extend(context.Background(), "subcomponent")
|
||||
assert.Error(t, err)
|
||||
})
|
||||
|
||||
t.Run("must variant should panic", func(t *testing.T) {
|
||||
assert.Panics(t, func() {
|
||||
MustExtend(context.Background(), "subcomponent")
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func TestGet(t *testing.T) {
|
||||
_, ok := Get(context.Background())
|
||||
assert.False(t, ok)
|
||||
|
||||
ctx := MustNew(context.Background(), "mymodule", "mycomponent")
|
||||
_, ok = Get(ctx)
|
||||
assert.True(t, ok)
|
||||
}
|
||||
|
||||
func TestGetFields(t *testing.T) {
|
||||
_, ok := GetFields(context.Background())
|
||||
assert.False(t, ok)
|
||||
|
||||
ctx := MustNew(context.Background(), "mymodule", "mycomponent")
|
||||
fields, ok := GetFields(ctx)
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, "mymodule", fields["module"])
|
||||
assert.Equal(t, "mycomponent", fields["path"])
|
||||
}
|
||||
|
||||
func TestAttrs(t *testing.T) {
|
||||
ctx := MustNew(context.Background(), "mymodule", "mycomponent")
|
||||
attrs, ok := Attrs(ctx)
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, slog.String("module", "mymodule"), attrs[0])
|
||||
assert.Equal(t, slog.String("path", "mycomponent"), attrs[1])
|
||||
}
|
||||
Reference in New Issue
Block a user