From f66f95baffc95ed71b1f70d567b4e0944d57a928 Mon Sep 17 00:00:00 2001 From: Gabriel Adrian Samfira Date: Tue, 7 Oct 2025 17:55:42 +0000 Subject: [PATCH] Fix database tests Signed-off-by: Gabriel Adrian Samfira --- database/sql/controller_test.go | 9 ++++++++- database/sql/enterprise_test.go | 11 +++++++++-- database/sql/gitea_test.go | 11 +++++++++-- database/sql/github_test.go | 15 ++++++++++++--- database/sql/instances_test.go | 7 +++++++ database/sql/organizations_test.go | 7 +++++++ 6 files changed, 52 insertions(+), 8 deletions(-) diff --git a/database/sql/controller_test.go b/database/sql/controller_test.go index 949f675f..76c79d4c 100644 --- a/database/sql/controller_test.go +++ b/database/sql/controller_test.go @@ -23,6 +23,7 @@ import ( runnerErrors "github.com/cloudbase/garm-provider-common/errors" dbCommon "github.com/cloudbase/garm/database/common" + "github.com/cloudbase/garm/database/watcher" garmTesting "github.com/cloudbase/garm/internal/testing" //nolint:typecheck ) @@ -32,13 +33,19 @@ type CtrlTestSuite struct { } func (s *CtrlTestSuite) SetupTest() { - db, err := NewSQLDatabase(context.Background(), garmTesting.GetTestSqliteDBConfig(s.T())) + ctx := context.Background() + watcher.InitWatcher(ctx) + db, err := NewSQLDatabase(ctx, garmTesting.GetTestSqliteDBConfig(s.T())) if err != nil { s.FailNow(fmt.Sprintf("failed to create db connection: %s", err)) } s.Store = db } +func (s *CtrlTestSuite) TearDownTest() { + watcher.CloseWatcher() +} + func (s *CtrlTestSuite) TestControllerInfo() { initCtrlInfo, err := s.Store.InitController() if err != nil { diff --git a/database/sql/enterprise_test.go b/database/sql/enterprise_test.go index 9192a362..f3dbe921 100644 --- a/database/sql/enterprise_test.go +++ b/database/sql/enterprise_test.go @@ -30,6 +30,7 @@ import ( "github.com/cloudbase/garm/auth" dbCommon "github.com/cloudbase/garm/database/common" + "github.com/cloudbase/garm/database/watcher" garmTesting "github.com/cloudbase/garm/internal/testing" "github.com/cloudbase/garm/params" ) @@ -78,15 +79,21 @@ func (s *EnterpriseTestSuite) assertSQLMockExpectations() { } } +func (s *EnterpriseTestSuite) TearDownTest() { + watcher.CloseWatcher() +} + func (s *EnterpriseTestSuite) SetupTest() { + ctx := context.Background() + watcher.InitWatcher(ctx) // create testing sqlite database - db, err := NewSQLDatabase(context.Background(), garmTesting.GetTestSqliteDBConfig(s.T())) + db, err := NewSQLDatabase(ctx, garmTesting.GetTestSqliteDBConfig(s.T())) if err != nil { s.FailNow(fmt.Sprintf("failed to create db connection: %s", err)) } s.Store = db - adminCtx := garmTesting.ImpersonateAdminContext(context.Background(), db, s.T()) + adminCtx := garmTesting.ImpersonateAdminContext(ctx, db, s.T()) s.adminCtx = adminCtx s.adminUserID = auth.UserID(adminCtx) s.Require().NotEmpty(s.adminUserID) diff --git a/database/sql/gitea_test.go b/database/sql/gitea_test.go index dff5c471..be306a13 100644 --- a/database/sql/gitea_test.go +++ b/database/sql/gitea_test.go @@ -25,6 +25,7 @@ import ( runnerErrors "github.com/cloudbase/garm-provider-common/errors" "github.com/cloudbase/garm/auth" "github.com/cloudbase/garm/database/common" + "github.com/cloudbase/garm/database/watcher" garmTesting "github.com/cloudbase/garm/internal/testing" "github.com/cloudbase/garm/params" ) @@ -37,7 +38,9 @@ type GiteaTestSuite struct { } func (s *GiteaTestSuite) SetupTest() { - db, err := NewSQLDatabase(context.Background(), garmTesting.GetTestSqliteDBConfig(s.T())) + ctx := context.Background() + watcher.InitWatcher(ctx) + db, err := NewSQLDatabase(ctx, garmTesting.GetTestSqliteDBConfig(s.T())) if err != nil { s.FailNow(fmt.Sprintf("failed to create db connection: %s", err)) } @@ -50,13 +53,17 @@ func (s *GiteaTestSuite) SetupTest() { APIBaseURL: testAPIBaseURL, BaseURL: testBaseURL, } - endpoint, err := s.db.CreateGiteaEndpoint(context.Background(), createEpParams) + endpoint, err := s.db.CreateGiteaEndpoint(ctx, createEpParams) s.Require().NoError(err) s.Require().NotNil(endpoint) s.Require().Equal(testEndpointName, endpoint.Name) s.giteaEndpoint = endpoint } +func (s *GiteaTestSuite) TearDownTest() { + watcher.CloseWatcher() +} + func (s *GiteaTestSuite) TestCreatingEndpoint() { ctx := garmTesting.ImpersonateAdminContext(context.Background(), s.db, s.T()) diff --git a/database/sql/github_test.go b/database/sql/github_test.go index ae3a3954..d2ed960e 100644 --- a/database/sql/github_test.go +++ b/database/sql/github_test.go @@ -28,6 +28,7 @@ import ( "github.com/cloudbase/garm/auth" "github.com/cloudbase/garm/config" "github.com/cloudbase/garm/database/common" + "github.com/cloudbase/garm/database/watcher" garmTesting "github.com/cloudbase/garm/internal/testing" "github.com/cloudbase/garm/params" ) @@ -51,6 +52,8 @@ type GithubTestSuite struct { } func (s *GithubTestSuite) SetupTest() { + ctx := context.Background() + watcher.InitWatcher(ctx) db, err := NewSQLDatabase(context.Background(), garmTesting.GetTestSqliteDBConfig(s.T())) if err != nil { s.FailNow(fmt.Sprintf("failed to create db connection: %s", err)) @@ -58,6 +61,10 @@ func (s *GithubTestSuite) SetupTest() { s.db = db } +func (s *GithubTestSuite) TearDownTest() { + watcher.CloseWatcher() +} + func (s *GithubTestSuite) TestDefaultEndpointGetsCreatedAutomaticallyIfNoOtherEndpointExists() { ctx := garmTesting.ImpersonateAdminContext(context.Background(), s.db, s.T()) endpoint, err := s.db.GetGithubEndpoint(ctx, defaultGithubEndpoint) @@ -946,14 +953,16 @@ func TestCredentialsAndEndpointMigration(t *testing.T) { // Set the config credentials in the cfg. This is what happens in the main function. // of GARM as well. cfg.MigrateCredentials = credentials - - db, err := NewSQLDatabase(context.Background(), cfg) + ctx := context.Background() + watcher.InitWatcher(ctx) + defer watcher.CloseWatcher() + db, err := NewSQLDatabase(ctx, cfg) if err != nil { t.Fatalf("failed to create db connection: %s", err) } // We expect that 2 endpoints will exist in the migrated DB and 2 credentials. - ctx := garmTesting.ImpersonateAdminContext(context.Background(), db, t) + ctx = garmTesting.ImpersonateAdminContext(ctx, db, t) endpoints, err := db.ListGithubEndpoints(ctx) if err != nil { diff --git a/database/sql/instances_test.go b/database/sql/instances_test.go index 8891da72..2ac2ed0e 100644 --- a/database/sql/instances_test.go +++ b/database/sql/instances_test.go @@ -31,6 +31,7 @@ import ( commonParams "github.com/cloudbase/garm-provider-common/params" dbCommon "github.com/cloudbase/garm/database/common" + "github.com/cloudbase/garm/database/watcher" garmTesting "github.com/cloudbase/garm/internal/testing" "github.com/cloudbase/garm/params" ) @@ -70,7 +71,13 @@ func (s *InstancesTestSuite) assertSQLMockExpectations() { } } +func (s *InstancesTestSuite) TearDownTest() { + watcher.CloseWatcher() +} + func (s *InstancesTestSuite) SetupTest() { + ctx := context.Background() + watcher.InitWatcher(ctx) // create testing sqlite database db, err := NewSQLDatabase(context.Background(), garmTesting.GetTestSqliteDBConfig(s.T())) if err != nil { diff --git a/database/sql/organizations_test.go b/database/sql/organizations_test.go index 245b3c1f..be1aec34 100644 --- a/database/sql/organizations_test.go +++ b/database/sql/organizations_test.go @@ -30,6 +30,7 @@ import ( "github.com/cloudbase/garm/auth" dbCommon "github.com/cloudbase/garm/database/common" + "github.com/cloudbase/garm/database/watcher" garmTesting "github.com/cloudbase/garm/internal/testing" "github.com/cloudbase/garm/params" ) @@ -78,7 +79,13 @@ func (s *OrgTestSuite) assertSQLMockExpectations() { } } +func (s *OrgTestSuite) TearDownTest() { + watcher.CloseWatcher() +} + func (s *OrgTestSuite) SetupTest() { + ctx := context.Background() + watcher.InitWatcher(ctx) // create testing sqlite database dbConfig := garmTesting.GetTestSqliteDBConfig(s.T()) db, err := NewSQLDatabase(context.Background(), dbConfig)