From 1fc72ab5c8c1f6d4f2bf3dcdb4a014939070733e Mon Sep 17 00:00:00 2001 From: Gabriel Adrian Samfira Date: Tue, 20 May 2025 16:11:37 +0000 Subject: [PATCH] Add more tests Signed-off-by: Gabriel Adrian Samfira --- database/watcher/watcher_store_test.go | 94 +++++++++++++++++++++++++- database/watcher/watcher_test.go | 27 ++++++++ 2 files changed, 120 insertions(+), 1 deletion(-) diff --git a/database/watcher/watcher_store_test.go b/database/watcher/watcher_store_test.go index 8fe7d0a4..e682270a 100644 --- a/database/watcher/watcher_store_test.go +++ b/database/watcher/watcher_store_test.go @@ -919,6 +919,98 @@ func (s *WatcherStoreTestSuite) TestGithubCredentialsWatcher() { } } +func (s *WatcherStoreTestSuite) TestGiteaCredentialsWatcher() { + consumer, err := watcher.RegisterConsumer( + s.ctx, "gitea-cred-test", + watcher.WithEntityTypeFilter(common.GiteaCredentialsEntityType), + watcher.WithAny( + watcher.WithOperationTypeFilter(common.CreateOperation), + watcher.WithOperationTypeFilter(common.UpdateOperation), + watcher.WithOperationTypeFilter(common.DeleteOperation)), + ) + s.Require().NoError(err) + s.Require().NotNil(consumer) + s.T().Cleanup(func() { consumer.Close() }) + consumeEvents(consumer) + + testEndpointParams := params.CreateGiteaEndpointParams{ + Name: "test", + Description: "test endpoint", + APIBaseURL: "https://api.gitea.example.com", + BaseURL: "https://gitea.example.com", + } + + testEndpoint, err := s.store.CreateGiteaEndpoint(s.ctx, testEndpointParams) + s.Require().NoError(err) + s.Require().NotEmpty(testEndpoint.Name) + + s.T().Cleanup(func() { + if err := s.store.DeleteGiteaEndpoint(s.ctx, testEndpoint.Name); err != nil { + s.T().Logf("failed to delete Gitea endpoint: %v", err) + } + consumeEvents(consumer) + }) + + giteaCredParams := params.CreateGiteaCredentialsParams{ + Name: "test-creds", + Description: "test credentials", + Endpoint: testEndpoint.Name, + AuthType: params.ForgeAuthTypePAT, + PAT: params.GithubPAT{ + OAuth2Token: "bogus", + }, + } + + giteaCred, err := s.store.CreateGiteaCredentials(s.ctx, giteaCredParams) + s.Require().NoError(err) + s.Require().NotEmpty(giteaCred.ID) + + select { + case event := <-consumer.Watch(): + s.Require().Equal(common.ChangePayload{ + EntityType: common.GiteaCredentialsEntityType, + Operation: common.CreateOperation, + Payload: giteaCred, + }, event) + case <-time.After(1 * time.Second): + s.T().Fatal("expected payload not received") + } + + newDesc := "updated test description" + updateParams := params.UpdateGiteaCredentialsParams{ + Description: &newDesc, + } + + updatedGiteaCred, err := s.store.UpdateGiteaCredentials(s.ctx, giteaCred.ID, updateParams) + s.Require().NoError(err) + s.Require().Equal(newDesc, updatedGiteaCred.Description) + + select { + case event := <-consumer.Watch(): + s.Require().Equal(common.ChangePayload{ + EntityType: common.GiteaCredentialsEntityType, + Operation: common.UpdateOperation, + Payload: updatedGiteaCred, + }, event) + case <-time.After(1 * time.Second): + s.T().Fatal("expected payload not received") + } + + err = s.store.DeleteGiteaCredentials(s.ctx, giteaCred.ID) + s.Require().NoError(err) + + select { + case event := <-consumer.Watch(): + asCreds, ok := event.Payload.(params.ForgeCredentials) + s.Require().True(ok) + s.Require().Equal(event.Operation, common.DeleteOperation) + s.Require().Equal(event.EntityType, common.GiteaCredentialsEntityType) + s.Require().Equal(asCreds.ID, updatedGiteaCred.ID) + case <-time.After(1 * time.Second): + s.T().Fatal("expected payload not received") + } +} + func (s *WatcherStoreTestSuite) TestGithubEndpointWatcher() { consumer, err := watcher.RegisterConsumer( s.ctx, "gh-ep-test", @@ -1001,7 +1093,7 @@ consume: if !ok { return } - case <-time.After(100 * time.Millisecond): + case <-time.After(20 * time.Millisecond): break consume } } diff --git a/database/watcher/watcher_test.go b/database/watcher/watcher_test.go index ab4653a9..5b7ecdce 100644 --- a/database/watcher/watcher_test.go +++ b/database/watcher/watcher_test.go @@ -61,6 +61,7 @@ func (s *WatcherTestSuite) TestRegisterConsumerTwiceWillError() { consumer, err := watcher.RegisterConsumer(s.ctx, "test") s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) consumer, err = watcher.RegisterConsumer(s.ctx, "test") s.Require().ErrorIs(err, common.ErrConsumerAlreadyRegistered) @@ -117,6 +118,7 @@ func (s *WatcherTestSuite) TestProducerAndConsumer() { watcher.WithOperationTypeFilter(common.UpdateOperation)) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.ControllerEntityType, @@ -141,6 +143,7 @@ func (s *WatcherTestSuite) TestConsumeWithFilter() { watcher.WithOperationTypeFilter(common.UpdateOperation)) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.ControllerEntityType, @@ -184,6 +187,7 @@ func (s *WatcherTestSuite) TestWithAnyFilter() { )) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.ControllerEntityType, @@ -265,6 +269,7 @@ func (s *WatcherTestSuite) TestWithAllFilter() { )) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.RepositoryEntityType, @@ -329,6 +334,7 @@ func (s *WatcherTestSuite) TestWithEntityPoolFilterRepository() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.PoolEntityType, @@ -377,6 +383,7 @@ func (s *WatcherTestSuite) TestWithEntityPoolFilterOrg() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.PoolEntityType, @@ -425,6 +432,7 @@ func (s *WatcherTestSuite) TestWithEntityPoolFilterEnterprise() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.PoolEntityType, @@ -490,6 +498,7 @@ func (s *WatcherTestSuite) TestWithEntityPoolFilterBogusEntityType() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.PoolEntityType, @@ -541,6 +550,7 @@ func (s *WatcherTestSuite) TestWithEntityScaleSetFilterRepository() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.ScaleSetEntityType, @@ -592,6 +602,7 @@ func (s *WatcherTestSuite) TestWithEntityScaleSetFilterOrg() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.ScaleSetEntityType, @@ -643,6 +654,7 @@ func (s *WatcherTestSuite) TestWithEntityScaleSetFilterEnterprise() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.ScaleSetEntityType, @@ -696,6 +708,7 @@ func (s *WatcherTestSuite) TestWithEntityScaleSetFilterBogusEntityType() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.ScaleSetEntityType, @@ -747,6 +760,7 @@ func (s *WatcherTestSuite) TestWithEntityScaleSetFilterReturnsFalseForGiteaEndpo ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.ScaleSetEntityType, @@ -781,6 +795,7 @@ func (s *WatcherTestSuite) TestWithEntityFilterRepository() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.RepositoryEntityType, @@ -831,6 +846,7 @@ func (s *WatcherTestSuite) TestWithEntityFilterOrg() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.OrganizationEntityType, @@ -879,6 +895,7 @@ func (s *WatcherTestSuite) TestWithEntityFilterEnterprise() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.EnterpriseEntityType, @@ -933,6 +950,7 @@ func (s *WatcherTestSuite) TestWithEntityJobFilterRepository() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.JobEntityType, @@ -989,6 +1007,7 @@ func (s *WatcherTestSuite) TestWithEntityJobFilterOrg() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.JobEntityType, @@ -1045,6 +1064,7 @@ func (s *WatcherTestSuite) TestWithEntityJobFilterEnterprise() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.JobEntityType, @@ -1097,6 +1117,7 @@ func (s *WatcherTestSuite) TestWithEntityJobFilterBogusEntityType() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.JobEntityType, @@ -1140,6 +1161,7 @@ func (s *WatcherTestSuite) TestWithNone() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.RepositoryEntityType, @@ -1174,6 +1196,7 @@ func (s *WatcherTestSuite) TestWithUserIDFilter() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.UserEntityType, @@ -1231,6 +1254,7 @@ func (s *WatcherTestSuite) TestWithForgeCredentialsGithub() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.GithubCredentialsEntityType, @@ -1288,6 +1312,7 @@ func (s *WatcherTestSuite) TestWithcaleSetFilter() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.ScaleSetEntityType, @@ -1341,6 +1366,7 @@ func (s *WatcherTestSuite) TestWithExcludeEntityTypeFilter() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.RepositoryEntityType, @@ -1386,6 +1412,7 @@ func (s *WatcherTestSuite) TestWithInstanceStatusFilter() { ) s.Require().NoError(err) s.Require().NotNil(consumer) + consumeEvents(consumer) payload := common.ChangePayload{ EntityType: common.InstanceEntityType,