Documentation ¶
Overview ¶
Package testutils contains code that is useful in tests.
Index ¶
- Constants
- Variables
- func CreateGrpcConnection(t *testing.T, grpcAddress string, opts ...grpc.DialOption) *grpc.ClientConn
- func CreateRandomString(n int) string
- func EnsureServiceHealthy(t testing.TB, grpcAddr, httpAddr string, ...)
- func MakeSliceWithGenerator[T any](n uint64, generator func(n uint64) any) []T
- func MakeStringWithRuneset(n uint64, runeSet []rune) string
- func MustDefaultConfigWithRandomPorts() *serverconfig.Config
- func MustNewStruct(t require.TestingT, v map[string]interface{}) *structpb.Struct
- func MustTransformDSLToProtoWithID(s string) *openfgav1.AuthorizationModel
- func NumericalStringGenerator(n uint64) any
- func TCPRandomPort() (int, func())
Constants ¶
const (
AllChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
)
Variables ¶
var ( TupleCmpTransformer = cmp.Transformer("Sort", func(in []*openfgav1.Tuple) []*openfgav1.Tuple { out := append([]*openfgav1.Tuple(nil), in...) sort.SliceStable(out, func(i, j int) bool { if out[i].GetKey().GetObject() != out[j].GetKey().GetObject() { return out[i].GetKey().GetObject() < out[j].GetKey().GetObject() } if out[i].GetKey().GetRelation() != out[j].GetKey().GetRelation() { return out[i].GetKey().GetRelation() < out[j].GetKey().GetRelation() } if out[i].GetKey().GetUser() != out[j].GetKey().GetUser() { return out[i].GetKey().GetUser() < out[j].GetKey().GetUser() } return true }) return out }) TupleKeyCmpTransformer = cmp.Transformer("Sort", func(in []*openfgav1.TupleKey) []*openfgav1.TupleKey { out := append([]*openfgav1.TupleKey(nil), in...) sort.SliceStable(out, func(i, j int) bool { if out[i].GetObject() != out[j].GetObject() { return out[i].GetObject() < out[j].GetObject() } if out[i].GetRelation() != out[j].GetRelation() { return out[i].GetRelation() < out[j].GetRelation() } if out[i].GetUser() != out[j].GetUser() { return out[i].GetUser() < out[j].GetUser() } return true }) return out }) )
Functions ¶
func CreateGrpcConnection ¶ added in v1.5.0
func CreateGrpcConnection(t *testing.T, grpcAddress string, opts ...grpc.DialOption) *grpc.ClientConn
CreateGrpcConnection creates a grpc connection to an address and closes it when the test ends.
func CreateRandomString ¶
func EnsureServiceHealthy ¶ added in v1.4.1
func EnsureServiceHealthy(t testing.TB, grpcAddr, httpAddr string, transportCredentials credentials.TransportCredentials, httpHealthCheck bool)
EnsureServiceHealthy is a test helper that ensures that a service's grpc health endpoint is responding OK. It can also ensure that the HTTP /healthz endpoint is responding OK. If the service doesn't respond healthy in 30 seconds it fails the test.
func MakeSliceWithGenerator ¶ added in v1.3.8
MakeSliceWithGenerator generates a slice of length 'n' and populates the contents with values based on the generator provided.
func MakeStringWithRuneset ¶ added in v1.3.8
func MustDefaultConfigWithRandomPorts ¶ added in v1.5.3
func MustDefaultConfigWithRandomPorts() *serverconfig.Config
MustDefaultConfigWithRandomPorts returns default server config but with random ports for the grpc and http addresses and with the playground, tracing and metrics turned off. This function may panic if somehow a random port cannot be chosen.
func MustNewStruct ¶ added in v1.3.8
func MustTransformDSLToProtoWithID ¶ added in v1.4.1
func MustTransformDSLToProtoWithID(s string) *openfgav1.AuthorizationModel
MustTransformDSLToProtoWithID interprets the provided string s as an FGA model and attempts to parse it using the official OpenFGA language parser. The model returned includes an auto-generated model id which assists with producing models for testing purposes.
func NumericalStringGenerator ¶ added in v1.3.8
NumericalStringGenerator generates a string representation of the provided uint value.
func TCPRandomPort ¶ added in v1.5.3
func TCPRandomPort() (int, func())
TCPRandomPort tries to find a random TCP Port. If it can't find one, it panics. Else, it returns the port and a function that releases the port. It is the responsibility of the caller to call the release function right before trying to listen on the given port.
Types ¶
This section is empty.