Documentation
¶
Overview ¶
Package testdb provides direct database access for integration tests. It allows tests to set up fixtures, verify data, and clean up without going through the API.
Index ¶
- type Fixtures
- type TestDB
- func (t *TestDB) AutoMigrate() error
- func (t *TestDB) CleanupByPrefix(prefix string) error
- func (t *TestDB) CleanupFixtures(fixtures *Fixtures) error
- func (t *TestDB) Close() error
- func (t *TestDB) Config() *config.Config
- func (t *TestDB) Count(tableName string) (int64, error)
- func (t *TestDB) CreateDiagram(d *models.Diagram) error
- func (t *TestDB) CreateMinimalFixtures(prefix string) (*Fixtures, error)
- func (t *TestDB) CreateStandardFixtures(prefix string) (*Fixtures, error)
- func (t *TestDB) CreateThreat(threat *models.Threat) error
- func (t *TestDB) CreateThreatModel(tm *models.ThreatModel) error
- func (t *TestDB) CreateUser(user *models.User) error
- func (t *TestDB) DB() *gorm.DB
- func (t *TestDB) DeleteDiagram(id string) error
- func (t *TestDB) DeleteThreat(id string) error
- func (t *TestDB) DeleteThreatModel(id string) error
- func (t *TestDB) DeleteUser(internalUUID string) error
- func (t *TestDB) DialectName() string
- func (t *TestDB) Exec(sql string, args ...any) error
- func (t *TestDB) GetDiagram(id string) (*models.Diagram, error)
- func (t *TestDB) GetThreat(id string) (*models.Threat, error)
- func (t *TestDB) GetThreatModel(id string) (*models.ThreatModel, error)
- func (t *TestDB) GetUser(internalUUID string) (*models.User, error)
- func (t *TestDB) GetUserByEmail(email string) (*models.User, error)
- func (t *TestDB) ListDiagramsByThreatModel(threatModelID string) ([]models.Diagram, error)
- func (t *TestDB) ListThreatModelsByOwner(ownerInternalUUID string) ([]models.ThreatModel, error)
- func (t *TestDB) RawQuery(sql string, dest any, args ...any) error
- func (t *TestDB) Truncate(tables ...string) error
- func (t *TestDB) TruncateAll() error
- func (t *TestDB) UpdateThreatModel(tm *models.ThreatModel) error
- type ThreatModelBuilder
- type UserBuilder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Fixtures ¶
type Fixtures struct {
Users map[string]*models.User
ThreatModels map[string]*models.ThreatModel
Diagrams map[string]*models.Diagram
Threats map[string]*models.Threat
Groups map[string]*models.Group
}
Fixtures contains pre-created test data
type TestDB ¶
type TestDB struct {
// contains filtered or unexported fields
}
TestDB provides direct database access for integration tests
func NewFromConfig ¶
NewFromConfig creates a TestDB from an existing config
func (*TestDB) AutoMigrate ¶
AutoMigrate runs GORM AutoMigrate for all models. Delegates to GormDB.AutoMigrate, which routes Oracle through the per-model CREATE TABLE path (fresh-schema baseline, no ALTER path). For all other dialects, GORM AutoMigrate runs in batch as usual.
func (*TestDB) CleanupByPrefix ¶
CleanupByPrefix deletes all entities with names matching a prefix Cleans up in dependency order (children first)
func (*TestDB) CleanupFixtures ¶
CleanupFixtures removes all entities created in the fixtures
func (*TestDB) CreateDiagram ¶
CreateDiagram creates a test diagram
func (*TestDB) CreateMinimalFixtures ¶
CreateMinimalFixtures creates only the minimum required data (one user)
func (*TestDB) CreateStandardFixtures ¶
CreateStandardFixtures creates a standard set of test data
func (*TestDB) CreateThreat ¶
CreateThreat creates a test threat
func (*TestDB) CreateThreatModel ¶
func (t *TestDB) CreateThreatModel(tm *models.ThreatModel) error
CreateThreatModel creates a test threat model
func (*TestDB) CreateUser ¶
CreateUser creates a test user and returns it
func (*TestDB) DeleteDiagram ¶
DeleteDiagram deletes a diagram by ID
func (*TestDB) DeleteThreat ¶
DeleteThreat deletes a threat by ID
func (*TestDB) DeleteThreatModel ¶
DeleteThreatModel deletes a threat model by ID
func (*TestDB) DeleteUser ¶
DeleteUser deletes a user by internal UUID
func (*TestDB) DialectName ¶
DialectName returns the name of the database dialect
func (*TestDB) GetDiagram ¶
GetDiagram retrieves a diagram by ID
func (*TestDB) GetThreatModel ¶
func (t *TestDB) GetThreatModel(id string) (*models.ThreatModel, error)
GetThreatModel retrieves a threat model by ID
func (*TestDB) GetUserByEmail ¶
GetUserByEmail retrieves a user by email
func (*TestDB) ListDiagramsByThreatModel ¶
ListDiagramsByThreatModel lists diagrams for a threat model
func (*TestDB) ListThreatModelsByOwner ¶
func (t *TestDB) ListThreatModelsByOwner(ownerInternalUUID string) ([]models.ThreatModel, error)
ListThreatModelsByOwner lists threat models owned by a user
func (*TestDB) Truncate ¶
Truncate removes all data from specified tables WARNING: Use with caution - this deletes all data
func (*TestDB) TruncateAll ¶
TruncateAll truncates all TMI tables in the correct dependency order
func (*TestDB) UpdateThreatModel ¶
func (t *TestDB) UpdateThreatModel(tm *models.ThreatModel) error
UpdateThreatModel updates a threat model
type ThreatModelBuilder ¶
type ThreatModelBuilder struct {
// contains filtered or unexported fields
}
ThreatModelBuilder provides a fluent interface for creating test threat models
func NewThreatModelBuilder ¶
func NewThreatModelBuilder(prefix string, ownerInternalUUID string) *ThreatModelBuilder
NewThreatModelBuilder creates a new threat model builder with default values
func (*ThreatModelBuilder) Build ¶
func (b *ThreatModelBuilder) Build() *models.ThreatModel
Build returns the built threat model
func (*ThreatModelBuilder) WithDescription ¶
func (b *ThreatModelBuilder) WithDescription(desc string) *ThreatModelBuilder
WithDescription sets the description
func (*ThreatModelBuilder) WithFramework ¶
func (b *ThreatModelBuilder) WithFramework(fw string) *ThreatModelBuilder
WithFramework sets the framework
func (*ThreatModelBuilder) WithName ¶
func (b *ThreatModelBuilder) WithName(name string) *ThreatModelBuilder
WithName sets the name
type UserBuilder ¶
type UserBuilder struct {
// contains filtered or unexported fields
}
UserBuilder provides a fluent interface for creating test users
func NewUserBuilder ¶
func NewUserBuilder(prefix string) *UserBuilder
NewUserBuilder creates a new user builder with default values
func (*UserBuilder) WithEmail ¶
func (b *UserBuilder) WithEmail(email string) *UserBuilder
WithEmail sets the email
func (*UserBuilder) WithName ¶
func (b *UserBuilder) WithName(name string) *UserBuilder
WithName sets the name
func (*UserBuilder) WithProvider ¶
func (b *UserBuilder) WithProvider(provider string) *UserBuilder
WithProvider sets the provider
func (*UserBuilder) WithProviderUserID ¶
func (b *UserBuilder) WithProviderUserID(id string) *UserBuilder
WithProviderUserID sets the provider user ID