integration

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Nov 11, 2026 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const ConnectionStringEnv = "CONNECTION_STRING"

ConnectionStringEnv names the default environment variable read by integration sessions.

Variables

This section is empty.

Functions

func AssertIDSet

func AssertIDSet(t *testing.T, got, expected []string)

AssertIDSet checks that two sets of fixture node IDs match (order-independent).

func AssertPaths

func AssertPaths(t *testing.T, paths []graph.Path, idMap opengraph.IDMap, expected [][]string)

AssertPaths checks that the returned paths match the expected set of fixture node ID sequences. Each expected path is a slice of fixture node IDs, e.g. []string{"a", "b", "d"}. Pass nil for expected when no paths should be returned.

func ClearGraph

func ClearGraph(t *testing.T, db graph.Database, ctx context.Context)

ClearGraph deletes all nodes (and cascading edges) from the database.

func DriverFromConnectionString added in v0.6.0

func DriverFromConnectionString(connStr string) (string, error)

DriverFromConnectionString maps postgres/postgresql and neo4j/neo4j+s/neo4j+ssc URI schemes to their registered driver names.

func FixtureKinds added in v1.0.0

func FixtureKinds(count int) []string

FixtureKinds returns deterministic synthetic kind names for list-cardinality tests.

func FixtureNames added in v1.0.0

func FixtureNames(prefix string, count int) []string

FixtureNames returns deterministic fixture identifiers without committing large handwritten lists to the corpus.

func LoadDataset

func LoadDataset(t *testing.T, db graph.Database, ctx context.Context, name string) opengraph.IDMap

LoadDataset loads a named JSON dataset from testdata/ and returns the ID mapping.

func NewReconciliationFixture added in v1.0.0

func NewReconciliationFixture(fanout int) *opengraph.Graph

NewReconciliationFixture builds the reusable reconciliation fixture. It includes typed and multi-kind endpoints, duplicate relationship kinds, missing and explicit-null properties, timestamps, both directions, and a deterministic high-degree anchor. A non-positive fanout selects a small production-like default.

func QueryNodeIDs

func QueryNodeIDs(t *testing.T, ctx context.Context, db graph.Database, cypher string, idMap opengraph.IDMap) []string

QueryNodeIDs runs a Cypher query that returns nodes and collects their fixture IDs. Duplicate nodes are deduplicated.

func QueryPaths

func QueryPaths(t *testing.T, ctx context.Context, db graph.Database, cypher string) []graph.Path

QueryPaths runs a Cypher query and collects all returned paths.

func SetupDB

func SetupDB(t *testing.T, cleanupMode CleanupMode, datasets ...string) (graph.Database, context.Context)

SetupDB opens a database connection for the selected driver, asserts a schema derived from the given datasets, and registers cleanup. Returns the database and a background context.

func SetupDBWithKinds added in v0.5.0

func SetupDBWithKinds(t *testing.T, cleanupMode CleanupMode, extraNodeKinds, extraEdgeKinds graph.Kinds, datasets ...string) (graph.Database, context.Context)

SetupDBWithKinds opens a database connection like SetupDB, then extends the asserted schema with additional node and edge kinds.

func SetupDBWithKindsNoGraphCleanup added in v0.5.0

func SetupDBWithKindsNoGraphCleanup(t *testing.T, extraNodeKinds, extraEdgeKinds graph.Kinds, datasets ...string) (graph.Database, context.Context)

SetupDBWithKindsNoGraphCleanup opens a database connection like SetupDBWithKinds but only closes the connection during cleanup. Use this for rollback-only tests that must not clear a shared database.

Types

type CleanupMode added in v0.6.0

type CleanupMode int
const (
	// CleanupGraph removes graph data when an integration session closes.
	CleanupGraph CleanupMode = iota

	// CloseOnly closes an integration session without deleting graph data.
	CloseOnly
)

type Options added in v0.6.0

type Options struct {
	RequireDriver          string
	SkipIfNoConnection     bool
	SkipIfDriverMismatch   bool
	ConnectionStringEnvVar string
	GraphName              string
	GraphQueryMemoryLimit  size.Size
	Schema                 *graph.Schema
	ExtraNodeKinds         graph.Kinds
	ExtraEdgeKinds         graph.Kinds
	Datasets               []string
	DatasetPath            func(name string) string
	CleanupMode            CleanupMode
}

type Session added in v0.6.0

type Session struct {
	// ConnectionString identifies the configured backend connection used by this session.
	ConnectionString string
	// Driver names the registered graph driver selected by the connection scheme.
	Driver string
	// DB owns the opened graph database and its default graph selection.
	DB graph.Database
	// PGPool provides PostgreSQL-specific inspection when the selected driver supports it.
	PGPool *pgxpool.Pool
	// Ctx supplies the context shared by session operations and cleanup.
	Ctx context.Context
	// contains filtered or unexported fields
}

Session owns a backend connection, default graph and cleanup policy for integration work.

func Open added in v0.6.0

func Open(t testing.TB, opts Options) *Session

Open initializes an integration session and registers it for cleanup.

func OpenSession added in v1.0.0

func OpenSession(opts Options) (*Session, error)

OpenSession opens the configured database, initializes its schema, and returns an integration session.

func (*Session) ClearGraph added in v0.6.0

func (s *Session) ClearGraph(t *testing.T)

ClearGraph removes the session graph's data and fails the caller's test on cleanup errors.

func (*Session) Close added in v1.0.0

func (s *Session) Close() error

Close applies the configured cleanup mode and closes the database connection.

func (*Session) LoadDataset added in v0.6.0

func (s *Session) LoadDataset(t *testing.T, path string) opengraph.IDMap

func (*Session) RegisterGraphCleanup added in v1.0.0

func (s *Session) RegisterGraphCleanup(t testing.TB)

RegisterGraphCleanup resets the graph at the end of the supplied test scope. It is intended for subtests sharing a session opened by their parent test.

func (*Session) ResetGraph added in v1.0.0

func (s *Session) ResetGraph() error

ResetGraph removes all nodes and cascading edges from the session database.

func (*Session) WithRollback added in v0.6.0

func (s *Session) WithRollback(t *testing.T, delegate func(tx graph.Transaction) error) error

func (*Session) WithRollbackFixture added in v0.6.0

func (s *Session) WithRollbackFixture(t *testing.T, fixture *opengraph.Graph, clearGraph bool, delegate func(tx graph.Transaction, idMap opengraph.IDMap) error) error

Jump to

Keyboard shortcuts

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