testutils

package
v1.5.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Package testutils contains code that is useful in tests.

Index

Constants

View Source
const (
	AllChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
)

Variables

View Source
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 CreateRandomString(n int) string

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

func MakeSliceWithGenerator[T any](n uint64, generator func(n uint64) any) []T

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 MakeStringWithRuneset(n uint64, runeSet []rune) string

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 MustNewStruct(t *testing.T, v map[string]interface{}) *structpb.Struct

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

func NumericalStringGenerator(n uint64) any

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL