2023-12-23 09:54:47 +00:00
|
|
|
package domaintest
|
|
|
|
|
|
|
|
import (
|
|
|
|
"net/url"
|
|
|
|
|
|
|
|
"gitea.dwysokinski.me/twhelp/corev3/internal/domain"
|
|
|
|
"github.com/brianvoe/gofakeit/v6"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
|
|
|
type BaseServerConfig struct {
|
2023-12-24 10:44:20 +00:00
|
|
|
Key string
|
|
|
|
URL *url.URL
|
|
|
|
Open bool
|
2023-12-23 09:54:47 +00:00
|
|
|
}
|
|
|
|
|
2023-12-25 09:13:42 +00:00
|
|
|
func NewBaseServer(tb TestingTB, opts ...func(cfg *BaseServerConfig)) domain.BaseServer {
|
|
|
|
tb.Helper()
|
|
|
|
|
|
|
|
cfg := &BaseServerConfig{
|
|
|
|
Key: RandServerKey(),
|
|
|
|
Open: true,
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, opt := range opts {
|
|
|
|
opt(cfg)
|
2023-12-23 09:54:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if cfg.URL == nil {
|
|
|
|
cfg.URL = &url.URL{
|
|
|
|
Scheme: "https",
|
2023-12-24 10:44:20 +00:00
|
|
|
Host: cfg.Key + "." + gofakeit.DomainName(),
|
2023-12-23 09:54:47 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-12-27 08:07:40 +00:00
|
|
|
s, err := domain.NewBaseServer(cfg.Key, cfg.URL, cfg.Open)
|
2023-12-23 09:54:47 +00:00
|
|
|
require.NoError(tb, err)
|
2023-12-25 09:13:42 +00:00
|
|
|
|
2023-12-23 09:54:47 +00:00
|
|
|
return s
|
|
|
|
}
|