package harness

import "github.com/datastax/astra-db-go/v2/integration/legacy/harness"

Package harness defines a test harness for running integration tests.

Index

Functions

func Register

func Register(args ...IntegrationTest)

Register adds a test(s) to our test runner. The approach is similar to how database/sql allows you to `Register` SQL drivers.

Types

type IntegrationTest

type IntegrationTest struct {
	Name string
	Run  func(e *TestEnv) error
}

An integration test

func Tests
func Tests() []IntegrationTest

Tests returns all registered tests.

type TestEnv

type TestEnv struct {
	// Our application API endpoint. Can be left blank if using non-astra backend.
	APIEndpoint string `env:"API_ENDPOINT,optional"`
	// The token to use for authentication. E.g. "AstraCS:myToken"
	ApplicationToken string `env:"APPLICATION_TOKEN,optional"`
	// If set, will only run tests with names that start with prefix.
	TestPrefix string `env:"TEST_PREFIX,optional"`
	// The backend we are running this against. "astra", "hcd", etc. Defaults to "astra".
	// See: https://pkg.go.dev/github.com/datastax/astra-db-go/v2/astra/options#DataAPIBackend
	Backend string `env:"BACKEND" default:"astra"`
}

TestEnv represents our test environment.

func Environment
func Environment() TestEnv

Environment() retrieves a test environment with config based on environment variables.

func (*TestEnv) DefaultClient
func (e *TestEnv) DefaultClient() *astra.DataAPIClient
func (*TestEnv) DefaultDb
func (e *TestEnv) DefaultDb() *astra.Db

DefaultDb returns a Db handle configured with the test environment settings.