Files
2026-01-09 12:15:08 -05:00

40 lines
990 B
Go

package fixture
import (
"regexp"
"strings"
"testing"
"github.com/stretchr/testify/require"
"golang.org/x/sync/errgroup"
)
var (
matchFirstCap = regexp.MustCompile("(.)([A-Z][a-z]+)")
matchAllCap = regexp.MustCompile("([a-z0-9])([A-Z])")
)
// returns dns friends string which is no longer than 63 characters and has specified postfix at the end
func DnsFriendly(str string, postfix string) string { //nolint:revive //FIXME(var-naming)
str = matchFirstCap.ReplaceAllString(str, "${1}-${2}")
str = matchAllCap.ReplaceAllString(str, "${1}-${2}")
str = strings.ToLower(str)
str = strings.ReplaceAll(str, "/", "-")
str = strings.ReplaceAll(str, "_", "-")
if diff := len(str) + len(postfix) - 63; diff > 0 {
str = str[:len(str)-diff]
}
return str + postfix
}
func RunFunctionsInParallelAndCheckErrors(t *testing.T, functions []func() error) {
t.Helper()
var eg errgroup.Group
for _, function := range functions {
eg.Go(function)
}
require.NoError(t, eg.Wait())
}