package domain import ( "fmt" "testing" "github.com/stretchr/testify/assert" "github.com/xlgmokha/x/pkg/x" ) func TestEntity(t *testing.T) { type example struct { entity } t.Run("GetID", func(t *testing.T) { t.Run("returns the assigned ID", func(t *testing.T) { example := x.New[*example](WithULID[*example]()) assert.Equal(t, example.ID, example.GetID()) }) }) t.Run("SetID", func(t *testing.T) { t.Run("assigns a new ID", func(t *testing.T) { id := ID("1") example := x.New[*example]() example.SetID(id) assert.Equal(t, id, example.GetID()) }) }) t.Run("ToGID", func(t *testing.T) { example := x.New[*example](WithULID[*example]()) gid := example.ToGID() assert.Equal(t, fmt.Sprintf("gid://sparkle/Entity/%s", example.ID), gid.String()) }) }