diff --git a/pkg/common/adapters/database/pgsql_integration_test.go b/pkg/common/adapters/database/pgsql_integration_test.go index 226ceff..23fa1f1 100644 --- a/pkg/common/adapters/database/pgsql_integration_test.go +++ b/pkg/common/adapters/database/pgsql_integration_test.go @@ -1,3 +1,4 @@ +//go:build integration // +build integration package database @@ -18,11 +19,11 @@ import ( // Integration test models type IntegrationUser struct { - ID int `db:"id"` - Name string `db:"name"` - Email string `db:"email"` - Age int `db:"age"` - CreatedAt time.Time `db:"created_at"` + ID int `db:"id"` + Name string `db:"name"` + Email string `db:"email"` + Age int `db:"age"` + CreatedAt time.Time `db:"created_at"` Posts []*IntegrationPost `bun:"rel:has-many,join:id=user_id"` } @@ -46,10 +47,10 @@ func (p IntegrationPost) TableName() string { } type IntegrationComment struct { - ID int `db:"id"` - Content string `db:"content"` - PostID int `db:"post_id"` - CreatedAt time.Time `db:"created_at"` + ID int `db:"id"` + Content string `db:"content"` + PostID int `db:"post_id"` + CreatedAt time.Time `db:"created_at"` Post *IntegrationPost `bun:"rel:belongs-to,join:post_id=id"` } diff --git a/pkg/common/adapters/database/pgsql_test.go b/pkg/common/adapters/database/pgsql_test.go index dac8cb3..dee3da0 100644 --- a/pkg/common/adapters/database/pgsql_test.go +++ b/pkg/common/adapters/database/pgsql_test.go @@ -26,11 +26,11 @@ func (u TestUser) TableName() string { } type TestPost struct { - ID int `db:"id"` - Title string `db:"title"` - Content string `db:"content"` - UserID int `db:"user_id"` - User *TestUser `bun:"rel:belongs-to,join:user_id=id"` + ID int `db:"id"` + Title string `db:"title"` + Content string `db:"content"` + UserID int `db:"user_id"` + User *TestUser `bun:"rel:belongs-to,join:user_id=id"` Comments []TestComment `bun:"rel:has-many,join:id=post_id"` } diff --git a/pkg/common/recursive_crud_test.go b/pkg/common/recursive_crud_test.go index 3fb144f..ce90caa 100644 --- a/pkg/common/recursive_crud_test.go +++ b/pkg/common/recursive_crud_test.go @@ -25,10 +25,10 @@ func newMockDatabase() *mockDatabase { } } -func (m *mockDatabase) NewSelect() SelectQuery { return &mockSelectQuery{} } -func (m *mockDatabase) NewInsert() InsertQuery { return &mockInsertQuery{db: m} } -func (m *mockDatabase) NewUpdate() UpdateQuery { return &mockUpdateQuery{db: m} } -func (m *mockDatabase) NewDelete() DeleteQuery { return &mockDeleteQuery{db: m} } +func (m *mockDatabase) NewSelect() SelectQuery { return &mockSelectQuery{} } +func (m *mockDatabase) NewInsert() InsertQuery { return &mockInsertQuery{db: m} } +func (m *mockDatabase) NewUpdate() UpdateQuery { return &mockUpdateQuery{db: m} } +func (m *mockDatabase) NewDelete() DeleteQuery { return &mockDeleteQuery{db: m} } func (m *mockDatabase) RunInTransaction(ctx context.Context, fn func(Database) error) error { return fn(m) } @@ -57,27 +57,31 @@ func (m *mockDatabase) DriverName() string { // Mock SelectQuery type mockSelectQuery struct{} -func (m *mockSelectQuery) Model(model interface{}) SelectQuery { return m } -func (m *mockSelectQuery) Table(name string) SelectQuery { return m } -func (m *mockSelectQuery) Column(columns ...string) SelectQuery { return m } -func (m *mockSelectQuery) ColumnExpr(query string, args ...interface{}) SelectQuery { return m } -func (m *mockSelectQuery) Where(condition string, args ...interface{}) SelectQuery { return m } -func (m *mockSelectQuery) WhereOr(query string, args ...interface{}) SelectQuery { return m } -func (m *mockSelectQuery) Join(query string, args ...interface{}) SelectQuery { return m } -func (m *mockSelectQuery) LeftJoin(query string, args ...interface{}) SelectQuery { return m } +func (m *mockSelectQuery) Model(model interface{}) SelectQuery { return m } +func (m *mockSelectQuery) Table(name string) SelectQuery { return m } +func (m *mockSelectQuery) Column(columns ...string) SelectQuery { return m } +func (m *mockSelectQuery) ColumnExpr(query string, args ...interface{}) SelectQuery { return m } +func (m *mockSelectQuery) Where(condition string, args ...interface{}) SelectQuery { return m } +func (m *mockSelectQuery) WhereOr(query string, args ...interface{}) SelectQuery { return m } +func (m *mockSelectQuery) Join(query string, args ...interface{}) SelectQuery { return m } +func (m *mockSelectQuery) LeftJoin(query string, args ...interface{}) SelectQuery { return m } func (m *mockSelectQuery) Preload(relation string, conditions ...interface{}) SelectQuery { return m } -func (m *mockSelectQuery) PreloadRelation(relation string, apply ...func(SelectQuery) SelectQuery) SelectQuery { return m } -func (m *mockSelectQuery) JoinRelation(relation string, apply ...func(SelectQuery) SelectQuery) SelectQuery { return m } -func (m *mockSelectQuery) Order(order string) SelectQuery { return m } -func (m *mockSelectQuery) OrderExpr(order string, args ...interface{}) SelectQuery { return m } -func (m *mockSelectQuery) Limit(n int) SelectQuery { return m } -func (m *mockSelectQuery) Offset(n int) SelectQuery { return m } -func (m *mockSelectQuery) Group(group string) SelectQuery { return m } +func (m *mockSelectQuery) PreloadRelation(relation string, apply ...func(SelectQuery) SelectQuery) SelectQuery { + return m +} +func (m *mockSelectQuery) JoinRelation(relation string, apply ...func(SelectQuery) SelectQuery) SelectQuery { + return m +} +func (m *mockSelectQuery) Order(order string) SelectQuery { return m } +func (m *mockSelectQuery) OrderExpr(order string, args ...interface{}) SelectQuery { return m } +func (m *mockSelectQuery) Limit(n int) SelectQuery { return m } +func (m *mockSelectQuery) Offset(n int) SelectQuery { return m } +func (m *mockSelectQuery) Group(group string) SelectQuery { return m } func (m *mockSelectQuery) Having(condition string, args ...interface{}) SelectQuery { return m } -func (m *mockSelectQuery) Scan(ctx context.Context, dest interface{}) error { return nil } -func (m *mockSelectQuery) ScanModel(ctx context.Context) error { return nil } -func (m *mockSelectQuery) Count(ctx context.Context) (int, error) { return 0, nil } -func (m *mockSelectQuery) Exists(ctx context.Context) (bool, error) { return false, nil } +func (m *mockSelectQuery) Scan(ctx context.Context, dest interface{}) error { return nil } +func (m *mockSelectQuery) ScanModel(ctx context.Context) error { return nil } +func (m *mockSelectQuery) Count(ctx context.Context) (int, error) { return 0, nil } +func (m *mockSelectQuery) Exists(ctx context.Context) (bool, error) { return false, nil } // Mock InsertQuery type mockInsertQuery struct { @@ -98,9 +102,9 @@ func (m *mockInsertQuery) Value(column string, value interface{}) InsertQuery { m.values[column] = value return m } -func (m *mockInsertQuery) OnConflict(action string) InsertQuery { return m } +func (m *mockInsertQuery) OnConflict(action string) InsertQuery { return m } func (m *mockInsertQuery) ExcludeColumn(columns ...string) InsertQuery { return m } -func (m *mockInsertQuery) Returning(columns ...string) InsertQuery { return m } +func (m *mockInsertQuery) Returning(columns ...string) InsertQuery { return m } func (m *mockInsertQuery) Exec(ctx context.Context) (Result, error) { m.db.insertCalls = append(m.db.insertCalls, m.values) m.db.lastID++ @@ -132,8 +136,8 @@ func (m *mockUpdateQuery) SetMap(values map[string]interface{}) UpdateQuery { return m } func (m *mockUpdateQuery) Where(condition string, args ...interface{}) UpdateQuery { return m } -func (m *mockUpdateQuery) ExcludeColumn(columns ...string) UpdateQuery { return m } -func (m *mockUpdateQuery) Returning(columns ...string) UpdateQuery { return m } +func (m *mockUpdateQuery) ExcludeColumn(columns ...string) UpdateQuery { return m } +func (m *mockUpdateQuery) Returning(columns ...string) UpdateQuery { return m } func (m *mockUpdateQuery) Exec(ctx context.Context) (Result, error) { // Record the update call m.db.updateCalls = append(m.db.updateCalls, m.setValues) @@ -171,9 +175,13 @@ func (m *mockResult) RowsAffected() int64 { return m.rowsAffected } type mockModelRegistry struct{} func (m *mockModelRegistry) GetModel(name string) (interface{}, error) { return nil, nil } -func (m *mockModelRegistry) GetModelByEntity(schema, entity string) (interface{}, error) { return nil, nil } +func (m *mockModelRegistry) GetModelByEntity(schema, entity string) (interface{}, error) { + return nil, nil +} func (m *mockModelRegistry) RegisterModel(name string, model interface{}) error { return nil } -func (m *mockModelRegistry) GetAllModels() map[string]interface{} { return make(map[string]interface{}) } +func (m *mockModelRegistry) GetAllModels() map[string]interface{} { + return make(map[string]interface{}) +} // Mock RelationshipInfoProvider type mockRelationshipProvider struct { @@ -198,9 +206,9 @@ func (m *mockRelationshipProvider) RegisterRelation(modelTypeName, relationName // Test Models type Department struct { - ID int64 `json:"id" bun:"id,pk"` - Name string `json:"name"` - Employees []*Employee `json:"employees,omitempty"` + ID int64 `json:"id" bun:"id,pk"` + Name string `json:"name"` + Employees []*Employee `json:"employees,omitempty"` } func (d Department) TableName() string { return "departments" } @@ -227,9 +235,9 @@ func (t Task) TableName() string { return "tasks" } func (t Task) GetIDName() string { return "ID" } type Comment struct { - ID int64 `json:"id" bun:"id,pk"` - Text string `json:"text"` - TaskID int64 `json:"task_id"` + ID int64 `json:"id" bun:"id,pk"` + Text string `json:"text"` + TaskID int64 `json:"task_id"` } func (c Comment) TableName() string { return "comments" } diff --git a/pkg/resolvespec/integration_test.go b/pkg/resolvespec/integration_test.go index 01042e0..44bf02f 100644 --- a/pkg/resolvespec/integration_test.go +++ b/pkg/resolvespec/integration_test.go @@ -1,3 +1,4 @@ +//go:build integration // +build integration package resolvespec @@ -22,12 +23,12 @@ import ( // Test models type TestUser struct { - ID uint `gorm:"primaryKey" json:"id"` - Name string `gorm:"not null" json:"name"` - Email string `gorm:"uniqueIndex;not null" json:"email"` - Age int `json:"age"` - Active bool `gorm:"default:true" json:"active"` - CreatedAt time.Time `json:"created_at"` + ID uint `gorm:"primaryKey" json:"id"` + Name string `gorm:"not null" json:"name"` + Email string `gorm:"uniqueIndex;not null" json:"email"` + Age int `json:"age"` + Active bool `gorm:"default:true" json:"active"` + CreatedAt time.Time `json:"created_at"` Posts []TestPost `gorm:"foreignKey:UserID" json:"posts,omitempty"` } @@ -36,13 +37,13 @@ func (TestUser) TableName() string { } type TestPost struct { - ID uint `gorm:"primaryKey" json:"id"` - UserID uint `gorm:"not null" json:"user_id"` - Title string `gorm:"not null" json:"title"` - Content string `json:"content"` - Published bool `gorm:"default:false" json:"published"` - CreatedAt time.Time `json:"created_at"` - User *TestUser `gorm:"foreignKey:UserID" json:"user,omitempty"` + ID uint `gorm:"primaryKey" json:"id"` + UserID uint `gorm:"not null" json:"user_id"` + Title string `gorm:"not null" json:"title"` + Content string `json:"content"` + Published bool `gorm:"default:false" json:"published"` + CreatedAt time.Time `json:"created_at"` + User *TestUser `gorm:"foreignKey:UserID" json:"user,omitempty"` Comments []TestComment `gorm:"foreignKey:PostID" json:"comments,omitempty"` } @@ -55,7 +56,7 @@ type TestComment struct { PostID uint `gorm:"not null" json:"post_id"` Content string `gorm:"not null" json:"content"` CreatedAt time.Time `json:"created_at"` - Post *TestPost `gorm:"foreignKey:PostID" json:"post,omitempty"` + Post *TestPost `gorm:"foreignKey:PostID" json:"post,omitempty"` } func (TestComment) TableName() string {