From ecc9f49a48b5a983c18a8bb5a95cec34f01afb1e Mon Sep 17 00:00:00 2001 From: KaanTolunayKilicOG Date: Fri, 5 Apr 2024 16:00:18 +0200 Subject: [PATCH] GBICSGO-1198: tests UpsertSinkComplianceCheck for ComplianceRepository --- pkg/repository/compliance_repository_test.go | 55 ++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 pkg/repository/compliance_repository_test.go diff --git a/pkg/repository/compliance_repository_test.go b/pkg/repository/compliance_repository_test.go new file mode 100644 index 0000000..e41456f --- /dev/null +++ b/pkg/repository/compliance_repository_test.go @@ -0,0 +1,55 @@ +package repository + +import ( + "context" + "github.com/ottogroup/penelope/pkg/service" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestComplianceRepository_UpsertSinkComplianceCheck_Twice(t *testing.T) { + repository := setUpAndGetComplianceRepository(t) + ctx := context.Background() + + sinkComplianceCheck := &SinkComplianceCheck{ + ProjectSink: "test", + } + err := repository.UpsertSinkComplianceCheck(ctx, sinkComplianceCheck) + assert.NoError(t, err) + + sinkComplianceCheck.Compliant = true + err = repository.UpsertSinkComplianceCheck(ctx, sinkComplianceCheck) + assert.NoError(t, err) + + _, err = repository.storageService.DB().Model(sinkComplianceCheck).WherePK().Delete() + assert.NoError(t, err) +} + +func TestComplianceRepository_UpsertSinkComplianceCheck_Reasons(t *testing.T) { + repository := setUpAndGetComplianceRepository(t) + ctx := context.Background() + + sinkComplianceCheck := &SinkComplianceCheck{ + ProjectSink: "test", + Compliant: false, + Reasons: []string{"reason1", "reason2"}, + } + err := repository.UpsertSinkComplianceCheck(ctx, sinkComplianceCheck) + assert.NoError(t, err) + + _, err = repository.storageService.DB().Model(sinkComplianceCheck).WherePK().Delete() + assert.NoError(t, err) +} + +func setUpAndGetComplianceRepository(t *testing.T) *defaultComplianceRepository { + options := getTestConnectOptions() + ctx := context.Background() + + storageService, err := service.NewStorageServiceWithConnectionOptions(ctx, options) + assert.NoError(t, err) + + err = clearDatabase(storageService) + assert.NoError(t, err) + + return &defaultComplianceRepository{storageService: storageService} +}