test

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Jul 26, 2025 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetEnvOrDefault

func GetEnvOrDefault(key, defaultValue string) string

func GetTestDatabaseUri

func GetTestDatabaseUri(driverType string) string

GetTestDatabaseUri returns test database URI for a specific driver

func RegisterTestDatabaseUri

func RegisterTestDatabaseUri(driverType string, uri string)

RegisterTestDatabaseUri registers a test database URI for a driver

func WaitForCondition

func WaitForCondition(timeout time.Duration, check func() bool) bool

WaitForCondition waits for a condition to be true with timeout

Types

type DriverCharacteristics

type DriverCharacteristics struct {
	// ReturnsZeroRowsAffectedForUnchanged indicates if the driver returns 0 for RowsAffected
	// when UPDATE doesn't actually change any values (MySQL behavior)
	ReturnsZeroRowsAffectedForUnchanged bool

	// SupportsLastInsertID indicates if the driver supports LastInsertID
	// PostgreSQL doesn't support this and always returns 0
	SupportsLastInsertID bool

	// SupportsReturningClause indicates if the driver supports RETURNING clause
	SupportsReturningClause bool

	// MigrationTableName is the name of the migration tracking table
	MigrationTableName string

	// SystemIndexPatterns contains patterns for identifying system indexes
	SystemIndexPatterns []string

	// AutoIncrementIntegerType is the SQL type for an auto-incrementing integer primary key
	AutoIncrementIntegerType string
}

DriverCharacteristics defines driver-specific behaviors

type DriverConformanceTests

type DriverConformanceTests struct {
	DriverName      string
	NewDriver       func(uri string) (types.Database, error)
	URI             string
	SkipTests       map[string]bool                       // For driver-specific test skipping
	CleanupTables   func(t *testing.T, db types.Database) // Driver-specific table cleanup
	Characteristics DriverCharacteristics                 // Driver-specific behaviors
}

DriverConformanceTests provides a comprehensive test suite for database drivers

func (*DriverConformanceTests) RunAll

func (dct *DriverConformanceTests) RunAll(t *testing.T)

RunAll runs all conformance tests

func (*DriverConformanceTests) TestAggregations

func (dct *DriverConformanceTests) TestAggregations(t *testing.T)

func (*DriverConformanceTests) TestApplyMigration

func (dct *DriverConformanceTests) TestApplyMigration(t *testing.T)

func (*DriverConformanceTests) TestBeginCommit

func (dct *DriverConformanceTests) TestBeginCommit(t *testing.T)

func (*DriverConformanceTests) TestBeginRollback

func (dct *DriverConformanceTests) TestBeginRollback(t *testing.T)

func (*DriverConformanceTests) TestBooleanTypes

func (dct *DriverConformanceTests) TestBooleanTypes(t *testing.T)

func (*DriverConformanceTests) TestClose

func (dct *DriverConformanceTests) TestClose(t *testing.T)

func (*DriverConformanceTests) TestComplexQueries

func (dct *DriverConformanceTests) TestComplexQueries(t *testing.T)

func (*DriverConformanceTests) TestComplexWhereConditions

func (dct *DriverConformanceTests) TestComplexWhereConditions(t *testing.T)

func (*DriverConformanceTests) TestConnect

func (dct *DriverConformanceTests) TestConnect(t *testing.T)

func (*DriverConformanceTests) TestConnectWithInvalidConfig

func (dct *DriverConformanceTests) TestConnectWithInvalidConfig(t *testing.T)

func (*DriverConformanceTests) TestCount

func (dct *DriverConformanceTests) TestCount(t *testing.T)

func (*DriverConformanceTests) TestCreateModel

func (dct *DriverConformanceTests) TestCreateModel(t *testing.T)

func (*DriverConformanceTests) TestDateTimeTypes

func (dct *DriverConformanceTests) TestDateTimeTypes(t *testing.T)

func (*DriverConformanceTests) TestDefaultValues

func (dct *DriverConformanceTests) TestDefaultValues(t *testing.T)

func (*DriverConformanceTests) TestDelete

func (dct *DriverConformanceTests) TestDelete(t *testing.T)

func (*DriverConformanceTests) TestDeleteWithConditions

func (dct *DriverConformanceTests) TestDeleteWithConditions(t *testing.T)

func (*DriverConformanceTests) TestDistinct

func (dct *DriverConformanceTests) TestDistinct(t *testing.T)

func (*DriverConformanceTests) TestDriverConfig

func (dct *DriverConformanceTests) TestDriverConfig(t *testing.T)

func (*DriverConformanceTests) TestDropModel

func (dct *DriverConformanceTests) TestDropModel(t *testing.T)

func (*DriverConformanceTests) TestDropNonExistentModel

func (dct *DriverConformanceTests) TestDropNonExistentModel(t *testing.T)

func (*DriverConformanceTests) TestEmptyInsert

func (dct *DriverConformanceTests) TestEmptyInsert(t *testing.T)

func (*DriverConformanceTests) TestFieldNameMapping

func (dct *DriverConformanceTests) TestFieldNameMapping(t *testing.T)

func (*DriverConformanceTests) TestFieldTypeMapping

func (dct *DriverConformanceTests) TestFieldTypeMapping(t *testing.T)

func (*DriverConformanceTests) TestFloatTypes

func (dct *DriverConformanceTests) TestFloatTypes(t *testing.T)

func (*DriverConformanceTests) TestGenerateAddColumnSQL

func (dct *DriverConformanceTests) TestGenerateAddColumnSQL(t *testing.T)

func (*DriverConformanceTests) TestGenerateColumnSQL

func (dct *DriverConformanceTests) TestGenerateColumnSQL(t *testing.T)

func (*DriverConformanceTests) TestGenerateCreateIndexSQL

func (dct *DriverConformanceTests) TestGenerateCreateIndexSQL(t *testing.T)

func (*DriverConformanceTests) TestGenerateCreateTableSQL

func (dct *DriverConformanceTests) TestGenerateCreateTableSQL(t *testing.T)

func (*DriverConformanceTests) TestGenerateDropColumnSQL

func (dct *DriverConformanceTests) TestGenerateDropColumnSQL(t *testing.T)

func (*DriverConformanceTests) TestGenerateDropIndexSQL

func (dct *DriverConformanceTests) TestGenerateDropIndexSQL(t *testing.T)

func (*DriverConformanceTests) TestGenerateDropTableSQL

func (dct *DriverConformanceTests) TestGenerateDropTableSQL(t *testing.T)

func (*DriverConformanceTests) TestGetMigrator

func (dct *DriverConformanceTests) TestGetMigrator(t *testing.T)

func (*DriverConformanceTests) TestGetNonExistentSchema

func (dct *DriverConformanceTests) TestGetNonExistentSchema(t *testing.T)

func (*DriverConformanceTests) TestGetSchema

func (dct *DriverConformanceTests) TestGetSchema(t *testing.T)

func (*DriverConformanceTests) TestGetTableInfo

func (dct *DriverConformanceTests) TestGetTableInfo(t *testing.T)

func (*DriverConformanceTests) TestGetTables

func (dct *DriverConformanceTests) TestGetTables(t *testing.T)

func (*DriverConformanceTests) TestGroupBy

func (dct *DriverConformanceTests) TestGroupBy(t *testing.T)

func (*DriverConformanceTests) TestHaving

func (dct *DriverConformanceTests) TestHaving(t *testing.T)

func (*DriverConformanceTests) TestInclude

func (dct *DriverConformanceTests) TestInclude(t *testing.T)

func (*DriverConformanceTests) TestIncludeNestedWithOptions

func (dct *DriverConformanceTests) TestIncludeNestedWithOptions(t *testing.T)

TestIncludeNestedWithOptions tests options in nested includes

func (*DriverConformanceTests) TestIncludePerformance

func (dct *DriverConformanceTests) TestIncludePerformance(t *testing.T)

TestIncludePerformance benchmarks filtered vs unfiltered includes

func (*DriverConformanceTests) TestIncludeWithOrderBy

func (dct *DriverConformanceTests) TestIncludeWithOrderBy(t *testing.T)

TestIncludeWithOrderBy tests ordering related records

func (*DriverConformanceTests) TestIncludeWithPagination

func (dct *DriverConformanceTests) TestIncludeWithPagination(t *testing.T)

TestIncludeWithPagination tests take/skip on relations

func (*DriverConformanceTests) TestIncludeWithSelectFields

func (dct *DriverConformanceTests) TestIncludeWithSelectFields(t *testing.T)

TestIncludeWithSelectFields tests selective field loading in includes

func (*DriverConformanceTests) TestIncludeWithWhereFilter

func (dct *DriverConformanceTests) TestIncludeWithWhereFilter(t *testing.T)

TestIncludeWithWhereFilter tests filtering in includes

func (*DriverConformanceTests) TestInsert

func (dct *DriverConformanceTests) TestInsert(t *testing.T)

func (*DriverConformanceTests) TestInsertWithAutoIncrement

func (dct *DriverConformanceTests) TestInsertWithAutoIncrement(t *testing.T)

func (*DriverConformanceTests) TestInsertWithDefaults

func (dct *DriverConformanceTests) TestInsertWithDefaults(t *testing.T)

func (*DriverConformanceTests) TestIntegerTypes

func (dct *DriverConformanceTests) TestIntegerTypes(t *testing.T)

func (*DriverConformanceTests) TestInvalidFieldName

func (dct *DriverConformanceTests) TestInvalidFieldName(t *testing.T)

func (*DriverConformanceTests) TestInvalidModelName

func (dct *DriverConformanceTests) TestInvalidModelName(t *testing.T)

func (*DriverConformanceTests) TestInvalidQuery

func (dct *DriverConformanceTests) TestInvalidQuery(t *testing.T)

func (*DriverConformanceTests) TestLimit

func (dct *DriverConformanceTests) TestLimit(t *testing.T)

func (*DriverConformanceTests) TestLimitWithOffset

func (dct *DriverConformanceTests) TestLimitWithOffset(t *testing.T)

func (*DriverConformanceTests) TestMapAnnotations

func (dct *DriverConformanceTests) TestMapAnnotations(t *testing.T)

func (*DriverConformanceTests) TestMigrationWorkflow

func (dct *DriverConformanceTests) TestMigrationWorkflow(t *testing.T)

func (*DriverConformanceTests) TestMultipleConnections

func (dct *DriverConformanceTests) TestMultipleConnections(t *testing.T)

func (*DriverConformanceTests) TestNewDriver

func (dct *DriverConformanceTests) TestNewDriver(t *testing.T)

func (*DriverConformanceTests) TestNotNullConstraintViolation

func (dct *DriverConformanceTests) TestNotNullConstraintViolation(t *testing.T)

func (*DriverConformanceTests) TestNullValues

func (dct *DriverConformanceTests) TestNullValues(t *testing.T)

func (*DriverConformanceTests) TestOffset

func (dct *DriverConformanceTests) TestOffset(t *testing.T)

func (*DriverConformanceTests) TestOrderBy

func (dct *DriverConformanceTests) TestOrderBy(t *testing.T)

func (*DriverConformanceTests) TestOrderByMultiple

func (dct *DriverConformanceTests) TestOrderByMultiple(t *testing.T)

func (*DriverConformanceTests) TestPing

func (dct *DriverConformanceTests) TestPing(t *testing.T)

func (*DriverConformanceTests) TestRawDelete

func (dct *DriverConformanceTests) TestRawDelete(t *testing.T)

func (*DriverConformanceTests) TestRawInsert

func (dct *DriverConformanceTests) TestRawInsert(t *testing.T)

func (*DriverConformanceTests) TestRawQueryComplexQueries

func (dct *DriverConformanceTests) TestRawQueryComplexQueries(t *testing.T)

func (*DriverConformanceTests) TestRawQueryErrorHandling

func (dct *DriverConformanceTests) TestRawQueryErrorHandling(t *testing.T)

func (*DriverConformanceTests) TestRawQueryNoRowsFound

func (dct *DriverConformanceTests) TestRawQueryNoRowsFound(t *testing.T)

func (*DriverConformanceTests) TestRawQueryParameterBinding

func (dct *DriverConformanceTests) TestRawQueryParameterBinding(t *testing.T)

func (*DriverConformanceTests) TestRawQueryWithDifferentDataTypes

func (dct *DriverConformanceTests) TestRawQueryWithDifferentDataTypes(t *testing.T)

func (*DriverConformanceTests) TestRawQueryWithFind

func (dct *DriverConformanceTests) TestRawQueryWithFind(t *testing.T)

func (*DriverConformanceTests) TestRawQueryWithFindOne

func (dct *DriverConformanceTests) TestRawQueryWithFindOne(t *testing.T)

func (*DriverConformanceTests) TestRawSelect

func (dct *DriverConformanceTests) TestRawSelect(t *testing.T)

func (*DriverConformanceTests) TestRawUpdate

func (dct *DriverConformanceTests) TestRawUpdate(t *testing.T)

func (*DriverConformanceTests) TestRawWithParameters

func (dct *DriverConformanceTests) TestRawWithParameters(t *testing.T)

func (*DriverConformanceTests) TestRegisterInvalidSchema

func (dct *DriverConformanceTests) TestRegisterInvalidSchema(t *testing.T)

func (*DriverConformanceTests) TestRegisterSchema

func (dct *DriverConformanceTests) TestRegisterSchema(t *testing.T)

func (*DriverConformanceTests) TestSavepoints

func (dct *DriverConformanceTests) TestSavepoints(t *testing.T)

func (*DriverConformanceTests) TestSelect

func (dct *DriverConformanceTests) TestSelect(t *testing.T)

func (*DriverConformanceTests) TestSelectWithFields

func (dct *DriverConformanceTests) TestSelectWithFields(t *testing.T)

func (*DriverConformanceTests) TestStringTypes

func (dct *DriverConformanceTests) TestStringTypes(t *testing.T)

func (*DriverConformanceTests) TestTableNameMapping

func (dct *DriverConformanceTests) TestTableNameMapping(t *testing.T)

func (*DriverConformanceTests) TestTransactionConcurrentAccess

func (dct *DriverConformanceTests) TestTransactionConcurrentAccess(t *testing.T)

func (*DriverConformanceTests) TestTransactionErrorHandling

func (dct *DriverConformanceTests) TestTransactionErrorHandling(t *testing.T)

func (*DriverConformanceTests) TestTransactionFunction

func (dct *DriverConformanceTests) TestTransactionFunction(t *testing.T)

func (*DriverConformanceTests) TestTransactionIsolation

func (dct *DriverConformanceTests) TestTransactionIsolation(t *testing.T)

func (*DriverConformanceTests) TestTransactionQueryInTransaction

func (dct *DriverConformanceTests) TestTransactionQueryInTransaction(t *testing.T)

func (*DriverConformanceTests) TestTransactionWithRawQueries

func (dct *DriverConformanceTests) TestTransactionWithRawQueries(t *testing.T)

func (*DriverConformanceTests) TestUniqueConstraintViolation

func (dct *DriverConformanceTests) TestUniqueConstraintViolation(t *testing.T)

func (*DriverConformanceTests) TestUpdate

func (dct *DriverConformanceTests) TestUpdate(t *testing.T)

func (*DriverConformanceTests) TestUpdateWithConditions

func (dct *DriverConformanceTests) TestUpdateWithConditions(t *testing.T)

func (*DriverConformanceTests) TestWhereBetween

func (dct *DriverConformanceTests) TestWhereBetween(t *testing.T)

func (*DriverConformanceTests) TestWhereComparisons

func (dct *DriverConformanceTests) TestWhereComparisons(t *testing.T)

func (*DriverConformanceTests) TestWhereEquals

func (dct *DriverConformanceTests) TestWhereEquals(t *testing.T)

func (*DriverConformanceTests) TestWhereIn

func (dct *DriverConformanceTests) TestWhereIn(t *testing.T)

func (*DriverConformanceTests) TestWhereLike

func (dct *DriverConformanceTests) TestWhereLike(t *testing.T)

func (*DriverConformanceTests) TestWhereNotEquals

func (dct *DriverConformanceTests) TestWhereNotEquals(t *testing.T)

func (*DriverConformanceTests) TestWhereNotIn

func (dct *DriverConformanceTests) TestWhereNotIn(t *testing.T)

func (*DriverConformanceTests) TestWhereNull

func (dct *DriverConformanceTests) TestWhereNull(t *testing.T)

type TestComment

type TestComment struct {
	ID        int       `db:"id"`
	Content   string    `db:"content"`
	PostID    int       `db:"post_id"`
	UserID    int       `db:"user_id"`
	CreatedAt time.Time `db:"created_at"`
}

type TestDatabase

type TestDatabase struct {
	DB      types.Database
	URI     string
	Cleanup func()
	T       *testing.T
}

TestDatabase provides utilities for test database management

func NewTestDatabase

func NewTestDatabase(t *testing.T, db types.Database, uri string, cleanup func()) *TestDatabase

NewTestDatabase creates a new test database instance

func (*TestDatabase) AssertCount

func (td *TestDatabase) AssertCount(modelName string, expected int64)

AssertCount asserts the count of records in a model

func (*TestDatabase) AssertExists

func (td *TestDatabase) AssertExists(modelName string, condition types.Condition)

AssertExists checks if a record exists with given conditions

func (*TestDatabase) AssertNotExists

func (td *TestDatabase) AssertNotExists(modelName string, condition types.Condition)

AssertNotExists checks if a record does not exist with given conditions

func (*TestDatabase) CreateStandardSchemas

func (td *TestDatabase) CreateStandardSchemas() error

CreateStandardSchemas creates standard test schemas

func (*TestDatabase) CreateStandardSchemasWithCleanup

func (td *TestDatabase) CreateStandardSchemasWithCleanup(cleanupData bool) error

CreateStandardSchemasWithCleanup creates standard test schemas with optional data cleanup

func (*TestDatabase) InsertStandardTestData

func (td *TestDatabase) InsertStandardTestData() error

InsertStandardTestData inserts standard test data

type TestPost

type TestPost struct {
	ID        int       `db:"id"`
	Title     string    `db:"title"`
	Content   *string   `db:"content"`
	UserID    int       `db:"user_id"`
	Published bool      `db:"published"`
	Views     int       `db:"views"`
	CreatedAt time.Time `db:"created_at"`
}

type TestTag

type TestTag struct {
	ID   int    `db:"id"`
	Name string `db:"name"`
}

type TestUser

type TestUser struct {
	ID        int       `db:"id"`
	Name      string    `db:"name"`
	Email     string    `db:"email"`
	Age       *int      `db:"age"`
	Active    bool      `db:"active"`
	CreatedAt time.Time `db:"created_at"`
}

Test model structs for scanning results

Jump to

Keyboard shortcuts

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