core/internal/domain/domaintest/version.go

59 lines
992 B
Go

package domaintest
import (
"gitea.dwysokinski.me/twhelp/core/internal/domain"
"github.com/brianvoe/gofakeit/v7"
"github.com/stretchr/testify/require"
)
func RandVersionCode() string {
return gofakeit.LetterN(2)
}
type VersionCursorConfig struct {
Code string
}
func NewVersionCursor(tb TestingTB, opts ...func(cfg *VersionCursorConfig)) domain.VersionCursor {
tb.Helper()
cfg := &VersionCursorConfig{
Code: RandVersionCode(),
}
for _, opt := range opts {
opt(cfg)
}
vc, err := domain.NewVersionCursor(cfg.Code)
require.NoError(tb, err)
return vc
}
type VersionConfig struct {
Code string
}
func NewVersion(tb TestingTB, opts ...func(cfg *VersionConfig)) domain.Version {
tb.Helper()
cfg := &VersionConfig{
Code: RandVersionCode(),
}
for _, opt := range opts {
opt(cfg)
}
v, err := domain.UnmarshalVersionFromDatabase(
cfg.Code,
gofakeit.LetterN(10),
gofakeit.DomainName(),
gofakeit.TimeZoneRegion(),
)
require.NoError(tb, err)
return v
}