Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
grzr committed Apr 16, 2024
1 parent 44f193a commit cea847c
Show file tree
Hide file tree
Showing 9 changed files with 44 additions and 23 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ jobs:
- name: DB Migration
run: flyway migrate -url=jdbc:postgresql://$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB -user=$POSTGRES_USER -password=$POSTGRES_PASSWORD -locations=filesystem:./resources/migrations

- name: Set up Go ^1.21
uses: actions/setup-go@v4
- name: Set up Go ^1.22
uses: actions/setup-go@v5
with:
go-version: ^1.21
go-version: ^1.22

- name: Get dependencies
run: go get -v -t -d ./...
Expand Down
2 changes: 1 addition & 1 deletion frontend/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" href="/favicon.png" />
<link rel="icon" href="/penelope_48.png" />
<title>Penelope</title>
</head>

Expand Down
3 changes: 2 additions & 1 deletion frontend/src/App.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<script setup lang="ts">
import logo from "@/assets/penelope_32.png";
import logo from "@/assets/penelope_48.png";
import Sandbox from "@/views/Sandbox.vue";
import { ref } from "vue";
Expand All @@ -25,6 +25,7 @@ document.title = title.value;
<v-img :src="logo" />
</v-avatar>
</router-link>
&nbsp;
{{ title }}
</template>

Expand Down
27 changes: 23 additions & 4 deletions pkg/http/rest/api_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,30 @@ import (
"github.com/stretchr/testify/assert"
)

func createBuilder(backupProvider provider.SinkGCPProjectProvider, tokenSourceProvider impersonate.TargetPrincipalForProjectProvider, credentialProvider secret.SecretProvider) *builder.ProcessorBuilder {
type mockSourceGCPProjectProvider struct {
Error error
AvailabilityClass provider.AvailabilityClass
DataOwner string
}

var mockSourceTokenProvider = &mockSourceGCPProjectProvider{
Error: nil,
AvailabilityClass: provider.A2Aimed,
DataOwner: "john.doe",
}

func (m *mockSourceGCPProjectProvider) GetSourceGCPProject(ctxIn context.Context, gcpProjectID string) (provider.SourceGCPProject, error) {
return provider.SourceGCPProject{
AvailabilityClass: m.AvailabilityClass,
DataOwner: m.DataOwner,
}, m.Error
}

func createBuilder(backupProvider provider.SinkGCPProjectProvider, tokenSourceProvider impersonate.TargetPrincipalForProjectProvider, credentialProvider secret.SecretProvider, sourceGCPProjectProvider provider.SourceGCPProjectProvider) *builder.ProcessorBuilder {
return builder.NewProcessorBuilder(
processor.NewCreatingProcessorFactory(backupProvider, tokenSourceProvider, credentialProvider),
processor.NewGettingProcessorFactory(tokenSourceProvider, credentialProvider),
processor.NewListingProcessorFactory(tokenSourceProvider, credentialProvider),
processor.NewCreatingProcessorFactory(backupProvider, tokenSourceProvider, credentialProvider, sourceGCPProjectProvider),
processor.NewGettingProcessorFactory(tokenSourceProvider, credentialProvider, sourceGCPProjectProvider),
processor.NewListingProcessorFactory(tokenSourceProvider, credentialProvider, sourceGCPProjectProvider),
processor.NewUpdatingProcessorFactory(tokenSourceProvider, credentialProvider),
nil,
nil,
Expand Down
12 changes: 6 additions & 6 deletions pkg/http/rest/creating_roundtripped_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ import (
"testing"
)

func restAPIFactoryWithRealFactory(t *testing.T, principalRoleBindings []model.ProjectRoleBinding, backupProvider provider.SinkGCPProjectProvider, tokenSourceProvider impersonate.TargetPrincipalForProjectProvider) *httptest.Server {
func restAPIFactoryWithRealFactory(t *testing.T, principalRoleBindings []model.ProjectRoleBinding, backupProvider provider.SinkGCPProjectProvider, tokenSourceProvider impersonate.TargetPrincipalForProjectProvider, sourceGCPProjectProvider provider.SourceGCPProjectProvider) *httptest.Server {
emptyTokenValidator := auth.NewEmptyTokenValidator()
authenticationMiddleware, err := auth.NewAuthenticationMiddleware(emptyTokenValidator, givenDefaultPrincipalRetrieverWithRoles(principalRoleBindings))
if err != nil {
t.Error("expected", "instance of AuthenticationMiddleware can be created", "got", fmt.Sprintf("error: %s", err))
os.Exit(1)
}
app := NewRestAPI(createBuilder(backupProvider, tokenSourceProvider, secret.NewEnvSecretProvider()), authenticationMiddleware, nil, secret.NewEnvSecretProvider())
app := NewRestAPI(createBuilder(backupProvider, tokenSourceProvider, secret.NewEnvSecretProvider(), sourceGCPProjectProvider), authenticationMiddleware, nil, secret.NewEnvSecretProvider())
return httptest.NewServer(authenticationMiddleware.AddAuthentication(app.ServeHTTP))
}

Expand All @@ -46,7 +46,7 @@ func TestCreateSnapshotRequestOneShot(t *testing.T) {
s := restAPIFactoryWithRealFactory(t, []model.ProjectRoleBinding{{
Role: model.Owner,
Project: defaultProjectID,
}}, mockBackupProvider, tokenConfigProvider)
}}, mockBackupProvider, tokenConfigProvider, mockSourceTokenProvider)
defer s.Close()
httpMockHandler.RegisterLocalServer(s.URL)

Expand Down Expand Up @@ -97,7 +97,7 @@ func TestCreateSnapshotRequest_WithTTL(t *testing.T) {
s := restAPIFactoryWithRealFactory(t, []model.ProjectRoleBinding{{
Role: model.Owner,
Project: defaultProjectID,
}}, mockBackupProvider, mockTokenConfigProvider)
}}, mockBackupProvider, mockTokenConfigProvider, mockSourceTokenProvider)
defer s.Close()
httpMockHandler.RegisterLocalServer(s.URL)

Expand Down Expand Up @@ -156,7 +156,7 @@ func TestCreateSnapshotRequestOneShot_DatasetNotExisting(t *testing.T) {
s := restAPIFactoryWithRealFactory(t, []model.ProjectRoleBinding{{
Role: model.Owner,
Project: defaultProjectID,
}}, mockBackupProvider, mockTokenConfigProvider)
}}, mockBackupProvider, mockTokenConfigProvider, mockSourceTokenProvider)
defer s.Close()
httpMockHandler.RegisterLocalServer(s.URL)

Expand Down Expand Up @@ -198,7 +198,7 @@ func TestCreateSnapshotRequestOneShot_InsufficientPermissions(t *testing.T) {
s := restAPIFactoryWithRealFactory(t, []model.ProjectRoleBinding{{
Role: model.Viewer,
Project: defaultProjectID,
}}, mockBackupProvider, mockTokenConfigProvider)
}}, mockBackupProvider, mockTokenConfigProvider, mockSourceTokenProvider)
defer s.Close()
httpMockHandler.RegisterLocalServer(s.URL)

Expand Down
6 changes: 3 additions & 3 deletions pkg/http/rest/deleting_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func TestDeleting_WithNonExistingBackup(t *testing.T) {
s := restAPIFactoryWithRealFactory(t, []model.ProjectRoleBinding{{
Role: model.Viewer,
Project: defaultProjectID,
}}, mockBackupProvider, mockTokenConfigProvider)
}}, mockBackupProvider, mockTokenConfigProvider, mockSourceTokenProvider)
defer s.Close()

httpMockHandler.RegisterLocalServer(s.URL)
Expand Down Expand Up @@ -75,7 +75,7 @@ func TestDeleting_WithScheduledBackup(t *testing.T) {
s := restAPIFactoryWithRealFactory(t, []model.ProjectRoleBinding{{
Role: model.Owner,
Project: defaultProjectID,
}}, mockBackupProvider, mockTokenConfigProvider)
}}, mockBackupProvider, mockTokenConfigProvider, mockSourceTokenProvider)
defer s.Close()
httpMockHandler.RegisterLocalServer(s.URL)

Expand Down Expand Up @@ -109,7 +109,7 @@ func TestDeleting_WithNotScheduledBackup(t *testing.T) {
s := restAPIFactoryWithRealFactory(t, []model.ProjectRoleBinding{{
Role: model.Owner,
Project: defaultProjectID,
}}, mockBackupProvider, mockTokenConfigProvider)
}}, mockBackupProvider, mockTokenConfigProvider, mockSourceTokenProvider)
defer s.Close()
httpMockHandler.RegisterLocalServer(s.URL)

Expand Down
4 changes: 2 additions & 2 deletions pkg/http/rest/getting_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func TestGetting_WithUnknownResponse(t *testing.T) {
s := restAPIFactoryWithRealFactory(t, []model.ProjectRoleBinding{{
Role: model.Viewer,
Project: defaultProjectID,
}}, mockBackupProvider, mockTokenConfigProvider)
}}, mockBackupProvider, mockTokenConfigProvider, mockSourceTokenProvider)
defer s.Close()

httpMockHandler.RegisterLocalServer(s.URL)
Expand All @@ -57,7 +57,7 @@ func TestGetting_WithKnownResponse(t *testing.T) {
s := restAPIFactoryWithRealFactory(t, []model.ProjectRoleBinding{{
Role: model.Viewer,
Project: defaultProjectID,
}}, mockBackupProvider, mockTokenConfigProvider)
}}, mockBackupProvider, mockTokenConfigProvider, mockSourceTokenProvider)
defer s.Close()

httpMockHandler.RegisterLocalServer(s.URL)
Expand Down
4 changes: 2 additions & 2 deletions pkg/http/rest/listing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func TestListing_WithEmptyResponse(t *testing.T) {
s := restAPIFactoryWithRealFactory(t, []model.ProjectRoleBinding{{
Role: model.Viewer,
Project: defaultProjectID,
}}, mockBackupProvider, mockTokenConfigProvider)
}}, mockBackupProvider, mockTokenConfigProvider, mockSourceTokenProvider)
defer s.Close()

httpMockHandler.RegisterLocalServer(s.URL)
Expand Down Expand Up @@ -85,7 +85,7 @@ func TestListing_WithSingleResponse(t *testing.T) {
s := restAPIFactoryWithRealFactory(t, []model.ProjectRoleBinding{{
Role: model.Viewer,
Project: defaultProjectID,
}}, mockBackupProvider, mockTokenConfigProvider)
}}, mockBackupProvider, mockTokenConfigProvider, mockSourceTokenProvider)
defer s.Close()
httpMockHandler.RegisterLocalServer(s.URL)

Expand Down
3 changes: 2 additions & 1 deletion pkg/processor/getting_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package processor

import (
"encoding/json"
"github.com/ottogroup/penelope/pkg/provider"
"testing"

"github.com/ottogroup/penelope/pkg/repository"
Expand All @@ -12,7 +13,7 @@ func Test_MakeResponseForArchiveTTM(t *testing.T) {
backup := repository.Backup{
SinkOptions: repository.SinkOptions{ArchiveTTM: 123},
}
backupResponse := mapBackupToResponse(&backup, []*repository.Job{})
backupResponse := mapBackupToResponse(&backup, []*repository.Job{}, provider.SourceGCPProject{})
assert.Equal(t, backupResponse.TargetOptions.ArchiveTTM, backup.ArchiveTTM)
body, err := json.Marshal(&backupResponse)
assert.Nil(t, err, "expected no error")
Expand Down

0 comments on commit cea847c

Please sign in to comment.