Skip to content

Commit

Permalink
Always provide mock clients during testing
Browse files Browse the repository at this point in the history
  • Loading branch information
thokra-nav committed Feb 12, 2024
1 parent 59a743c commit 3ca5796
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 13 deletions.
1 change: 1 addition & 0 deletions internal/reconcilers/google/gar/reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ func New(ctx context.Context, googleManagementProjectID, tenantDomain, workloadI
}

if r.iamService == nil || r.artifactRegistry == nil {
fmt.Println("CUSTOM HANDLER", r.iamService != nil, r.artifactRegistry != nil)
builder, err := google_token_source.New(googleManagementProjectID, tenantDomain)
if err != nil {
return nil, err
Expand Down
19 changes: 14 additions & 5 deletions internal/reconcilers/google/gar/reconciler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ func TestReconcile(t *testing.T) {
}

mocks := mocks{
artifactRegistry: &fakeArtifactRegistry{},
iam: test.HttpServerWithHandlers(t, []http.HandlerFunc{
func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(404)
Expand All @@ -204,11 +205,11 @@ func TestReconcile(t *testing.T) {
},
}),
}
_, iamService := mocks.start(t, ctx)
artifactRegistryClient, iamService := mocks.start(t, ctx)

apiClient, _ := apiclient.NewMockClient(t)

reconciler, err := google_gar_reconciler.New(ctx, managementProjectID, tenantDomain, workloadIdentityPoolName, google_gar_reconciler.WithIAMService(iamService))
reconciler, err := google_gar_reconciler.New(ctx, managementProjectID, tenantDomain, workloadIdentityPoolName, google_gar_reconciler.WithGarClient(artifactRegistryClient), google_gar_reconciler.WithIAMService(iamService))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
Expand All @@ -224,6 +225,7 @@ func TestReconcile(t *testing.T) {
}

mocks := mocks{
artifactRegistry: &fakeArtifactRegistry{},
iam: test.HttpServerWithHandlers(t, []http.HandlerFunc{
func(w http.ResponseWriter, r *http.Request) {
if err := json.NewEncoder(w).Encode(&expectedServiceAccount); err != nil {
Expand Down Expand Up @@ -262,7 +264,7 @@ func TestReconcile(t *testing.T) {
},
}),
}
_, iamService := mocks.start(t, ctx)
artifactregistryClient, iamService := mocks.start(t, ctx)

apiClient, mockServer := apiclient.NewMockClient(t)
mockServer.Reconcilers.EXPECT().
Expand Down Expand Up @@ -317,7 +319,7 @@ func TestReconcile(t *testing.T) {
}, nil).
Once()

reconciler, err := google_gar_reconciler.New(ctx, managementProjectID, tenantDomain, workloadIdentityPoolName, google_gar_reconciler.WithIAMService(iamService))
reconciler, err := google_gar_reconciler.New(ctx, managementProjectID, tenantDomain, workloadIdentityPoolName, google_gar_reconciler.WithGarClient(artifactregistryClient), google_gar_reconciler.WithIAMService(iamService))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
Expand Down Expand Up @@ -580,7 +582,13 @@ func TestDelete(t *testing.T) {

apiClient, _ := apiclient.NewMockClient(t)

reconciler, err := google_gar_reconciler.New(ctx, managementProjectID, tenantDomain, workloadIdentityPoolName)
mocks := mocks{
artifactRegistry: &fakeArtifactRegistry{},
iam: test.HttpServerWithHandlers(t, []http.HandlerFunc{}),
}
artifactregistryClient, iamService := mocks.start(t, ctx)

reconciler, err := google_gar_reconciler.New(ctx, managementProjectID, tenantDomain, workloadIdentityPoolName, google_gar_reconciler.WithGarClient(artifactregistryClient), google_gar_reconciler.WithIAMService(iamService))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
Expand Down Expand Up @@ -611,6 +619,7 @@ func TestDelete(t *testing.T) {
apiClient, _ := apiclient.NewMockClient(t)

mockedClients := mocks{
artifactRegistry: &fakeArtifactRegistry{},
iam: test.HttpServerWithHandlers(t, []http.HandlerFunc{
func(w http.ResponseWriter, r *http.Request) {
if contains := "management-project-123/serviceAccounts/[email protected]"; !strings.Contains(r.URL.Path, contains) {
Expand Down
10 changes: 5 additions & 5 deletions internal/reconcilers/google/gcp/reconciler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ func TestReconcile(t *testing.T) {
Return(nil, fmt.Errorf("some error")).
Once()

reconcilers, err := google_gcp_reconciler.New(ctx, clusters, clusterProjectID, tenantDomain, tenantName, cnrmRoleName, billingAccount, cnrmServiceAccountID)
reconcilers, err := google_gcp_reconciler.New(ctx, clusters, clusterProjectID, tenantDomain, tenantName, cnrmRoleName, billingAccount, cnrmServiceAccountID, google_gcp_reconciler.WithGcpServices(&google_gcp_reconciler.GcpServices{}))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
Expand All @@ -81,7 +81,7 @@ func TestReconcile(t *testing.T) {
log, _ := logrustest.NewNullLogger()

apiClient, _ := apiclient.NewMockClient(t)
reconcilers, err := google_gcp_reconciler.New(ctx, clusters, clusterProjectID, tenantDomain, tenantName, cnrmRoleName, billingAccount, cnrmServiceAccountID)
reconcilers, err := google_gcp_reconciler.New(ctx, clusters, clusterProjectID, tenantDomain, tenantName, cnrmRoleName, billingAccount, cnrmServiceAccountID, google_gcp_reconciler.WithGcpServices(&google_gcp_reconciler.GcpServices{}))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
Expand All @@ -95,7 +95,7 @@ func TestReconcile(t *testing.T) {
log, _ := logrustest.NewNullLogger()

apiClient, _ := apiclient.NewMockClient(t)
reconcilers, err := google_gcp_reconciler.New(ctx, gcp.Clusters{}, clusterProjectID, tenantDomain, tenantName, cnrmRoleName, billingAccount, cnrmServiceAccountID)
reconcilers, err := google_gcp_reconciler.New(ctx, gcp.Clusters{}, clusterProjectID, tenantDomain, tenantName, cnrmRoleName, billingAccount, cnrmServiceAccountID, google_gcp_reconciler.WithGcpServices(&google_gcp_reconciler.GcpServices{}))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
Expand Down Expand Up @@ -466,7 +466,7 @@ func TestDelete(t *testing.T) {
Environments(mock.Anything, &protoapi.ListTeamEnvironmentsRequest{Slug: teamSlug, Limit: 100}).
Return(nil, fmt.Errorf("some error")).
Once()
reconcilers, err := google_gcp_reconciler.New(ctx, clusters, clusterProjectID, tenantDomain, tenantName, cnrmRoleName, billingAccount, cnrmServiceAccountID)
reconcilers, err := google_gcp_reconciler.New(ctx, clusters, clusterProjectID, tenantDomain, tenantName, cnrmRoleName, billingAccount, cnrmServiceAccountID, google_gcp_reconciler.WithGcpServices(&google_gcp_reconciler.GcpServices{}))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
Expand All @@ -490,7 +490,7 @@ func TestDelete(t *testing.T) {
}, nil).
Once()

reconcilers, err := google_gcp_reconciler.New(ctx, clusters, clusterProjectID, tenantDomain, tenantName, cnrmRoleName, billingAccount, cnrmServiceAccountID)
reconcilers, err := google_gcp_reconciler.New(ctx, clusters, clusterProjectID, tenantDomain, tenantName, cnrmRoleName, billingAccount, cnrmServiceAccountID, google_gcp_reconciler.WithGcpServices(&google_gcp_reconciler.GcpServices{}))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
Expand Down
22 changes: 19 additions & 3 deletions internal/reconcilers/nais/namespace/reconciler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ func TestReconcile(t *testing.T) {
}

apiClient, _ := apiclient.NewMockClient(t)
reconciler, err := nais_namespace_reconciler.New(ctx, noClusters, tenantDomain, googleManagementProjectID, cnrmServiceAccountID, azureEnabled)
reconciler, err := nais_namespace_reconciler.New(ctx, noClusters, tenantDomain, googleManagementProjectID, cnrmServiceAccountID, azureEnabled, nais_namespace_reconciler.WithPubSubClient(noopPubsub()))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
Expand All @@ -70,7 +70,7 @@ func TestReconcile(t *testing.T) {

apiClient, _ := apiclient.NewMockClient(t)

reconciler, err := nais_namespace_reconciler.New(ctx, noClusters, tenantDomain, googleManagementProjectID, cnrmServiceAccountID, azureEnabled)
reconciler, err := nais_namespace_reconciler.New(ctx, noClusters, tenantDomain, googleManagementProjectID, cnrmServiceAccountID, azureEnabled, nais_namespace_reconciler.WithPubSubClient(noopPubsub()))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
Expand Down Expand Up @@ -101,7 +101,7 @@ func TestReconcile(t *testing.T) {
Return(&protoapi.ListTeamEnvironmentsResponse{}, nil).
Once()

reconciler, err := nais_namespace_reconciler.New(ctx, noClusters, tenantDomain, googleManagementProjectID, cnrmServiceAccountID, azureEnabled)
reconciler, err := nais_namespace_reconciler.New(ctx, noClusters, tenantDomain, googleManagementProjectID, cnrmServiceAccountID, azureEnabled, nais_namespace_reconciler.WithPubSubClient(noopPubsub()))
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
Expand Down Expand Up @@ -294,3 +294,19 @@ func getPubsubServerAndClient(ctx context.Context, projectID string, topics ...s
_ = client.Close()
}
}

func noopPubsub() *pubsub.Client {
ctx, close := context.WithCancel(context.Background())
close()

client, err := pubsub.NewClient(
ctx,
"asdf",
option.WithEndpoint("asdf"),
option.WithoutAuthentication(),
)
if err != nil {
panic(err)
}
return client
}

0 comments on commit 3ca5796

Please sign in to comment.