From a8957062f07a508bd181a0edea21dc984c40382d Mon Sep 17 00:00:00 2001 From: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> Date: Thu, 16 Feb 2023 01:42:05 +0000 Subject: [PATCH] Fixed tests Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> --- bindings/azure/blobstorage/blobstorage.go | 10 +++++++- bindings/azure/signalr/signalr.go | 2 +- bindings/azure/signalr/signalr_test.go | 19 ++++++++------- .../component/azure/blobstorage/metadata.go | 4 +--- .../azure/eventhubs/track1_upgrade.go | 2 +- middleware/http/bearer/bearer_middleware.go | 7 +++--- state/azure/blobstorage/blobstorage_test.go | 23 +------------------ 7 files changed, 26 insertions(+), 41 deletions(-) diff --git a/bindings/azure/blobstorage/blobstorage.go b/bindings/azure/blobstorage/blobstorage.go index d40d52229..ad3cdc6f6 100644 --- a/bindings/azure/blobstorage/blobstorage.go +++ b/bindings/azure/blobstorage/blobstorage.go @@ -211,7 +211,15 @@ func (a *AzureBlobStorage) get(ctx context.Context, req *bindings.InvokeRequest) return nil, fmt.Errorf("error reading blob metadata: %w", err) } - metadata = props.Metadata + if len(props.Metadata) > 0 { + metadata = make(map[string]string, len(props.Metadata)) + for k, v := range props.Metadata { + if v == nil { + continue + } + metadata[k] = *v + } + } } return &bindings.InvokeResponse{ diff --git a/bindings/azure/signalr/signalr.go b/bindings/azure/signalr/signalr.go index e32ee5f6d..b717c1cb7 100644 --- a/bindings/azure/signalr/signalr.go +++ b/bindings/azure/signalr/signalr.go @@ -274,7 +274,7 @@ func (s *SignalR) getToken(ctx context.Context, url string) (string, error) { if err != nil { return "", fmt.Errorf("failed to build token: %w", err) } - signed, err := jwt.Sign(token, jwt.WithKey(jwa.HS256, s.accessKey)) + signed, err := jwt.Sign(token, jwt.WithKey(jwa.HS256, []byte(s.accessKey))) if err != nil { return "", fmt.Errorf("failed to sign token: %w", err) } diff --git a/bindings/azure/signalr/signalr_test.go b/bindings/azure/signalr/signalr_test.go index b83accb88..777c492e2 100644 --- a/bindings/azure/signalr/signalr_test.go +++ b/bindings/azure/signalr/signalr_test.go @@ -16,7 +16,6 @@ package signalr import ( "context" "errors" - "fmt" "io" "net/http" "strings" @@ -188,7 +187,7 @@ func TestConfigurationValid(t *testing.T) { t.Run(tt.name, func(t *testing.T) { s := NewSignalR(logger.NewLogger("test")).(*SignalR) err := s.parseMetadata(tt.properties) - assert.Nil(t, err) + assert.NoError(t, err) assert.Equal(t, tt.expectedEndpoint, s.endpoint) assert.Equal(t, tt.expectedAccessKey, s.accessKey) assert.Equal(t, tt.expectedHub, s.hub) @@ -258,7 +257,7 @@ func TestInvalidConfigurations(t *testing.T) { t.Run(tt.name, func(t *testing.T) { s := NewSignalR(logger.NewLogger("test")).(*SignalR) err := s.parseMetadata(tt.properties) - assert.NotNil(t, err) + assert.Error(t, err) }) } } @@ -301,7 +300,7 @@ func TestWriteShouldFail(t *testing.T) { Metadata: map[string]string{}, }) - assert.NotNil(t, err) + assert.Error(t, err) }) t.Run("SignalR call failed should be returned", func(t *testing.T) { @@ -315,7 +314,7 @@ func TestWriteShouldFail(t *testing.T) { }, }) - assert.NotNil(t, err) + assert.Error(t, err) assert.Contains(t, err.Error(), httpErr.Error()) }) @@ -329,7 +328,7 @@ func TestWriteShouldFail(t *testing.T) { }, }) - assert.NotNil(t, err) + assert.Error(t, err) }) } @@ -340,7 +339,7 @@ func TestWriteShouldSucceed(t *testing.T) { s := NewSignalR(logger.NewLogger("test")).(*SignalR) s.endpoint = "https://fake.service.signalr.net" - s.accessKey = "fakekey" + s.accessKey = "AAbbcCsGEQKoLEH6oodDR0jK104Fu1c39Qgk+AA8D+M=" s.httpClient = &http.Client{ Transport: httpTransport, } @@ -354,10 +353,10 @@ func TestWriteShouldSucceed(t *testing.T) { }, }) - assert.Nil(t, err) + assert.NoError(t, err) actualAuthorization := httpTransport.request.Header.Get("Authorization") assert.NotEmpty(t, actualAuthorization) - assert.True(t, strings.HasPrefix(actualAuthorization, "Bearer "), fmt.Sprintf("expecting to start with 'Bearer ', but was '%s'", actualAuthorization)) + assert.Truef(t, strings.HasPrefix(actualAuthorization, "Bearer "), "expecting to start with 'Bearer ', but was '%s'", actualAuthorization) }) tests := []struct { @@ -390,7 +389,7 @@ func TestWriteShouldSucceed(t *testing.T) { }, }) - assert.Nil(t, err) + assert.NoError(t, err) assert.Equal(t, int32(1), httpTransport.requestCount) assert.Equal(t, tt.expectedURL, httpTransport.request.URL.String()) assert.NotNil(t, httpTransport.request) diff --git a/internal/component/azure/blobstorage/metadata.go b/internal/component/azure/blobstorage/metadata.go index b74655fec..2ec390c65 100644 --- a/internal/component/azure/blobstorage/metadata.go +++ b/internal/component/azure/blobstorage/metadata.go @@ -15,7 +15,6 @@ package blobstorage import ( "fmt" - "net/url" "strconv" "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob" @@ -43,8 +42,7 @@ type ContainerClientOpts struct { RetryCount int32 `json:"retryCount,string"` // Private properties - containerURL *url.URL `json:"-" mapstructure:"-"` - customEndpoint string `json:"-" mapstructure:"-"` + customEndpoint string `json:"-" mapstructure:"-"` } func parseMetadata(meta map[string]string) (*BlobStorageMetadata, error) { diff --git a/internal/component/azure/eventhubs/track1_upgrade.go b/internal/component/azure/eventhubs/track1_upgrade.go index 10661a00e..2b1ed45bf 100644 --- a/internal/component/azure/eventhubs/track1_upgrade.go +++ b/internal/component/azure/eventhubs/track1_upgrade.go @@ -35,7 +35,7 @@ import ( func (aeh *AzureEventHubs) ensureNoTrack1Subscribers(parentCtx context.Context, topic string) error { // Get a client to Azure Blob Storage // Because we are not using "ensureContainer=true", we can pass a nil context - client, err := aeh.createStorageClient(nil, false) + client, err := aeh.createStorageClient(nil, false) //nolint:staticcheck if err != nil { return err } diff --git a/middleware/http/bearer/bearer_middleware.go b/middleware/http/bearer/bearer_middleware.go index e2782061d..d665fc240 100644 --- a/middleware/http/bearer/bearer_middleware.go +++ b/middleware/http/bearer/bearer_middleware.go @@ -66,13 +66,14 @@ func (m *Middleware) GetHandler(metadata middleware.Metadata) (func(next http.Ha ctx := context.TODO() // Create a JWKS cache that is refreshed automatically - cache := jwk.NewCache(ctx) - err = cache.Register(meta.IssuerURL, - jwk.WithMinRefreshInterval(minRefreshInterval), + cache := jwk.NewCache(ctx, jwk.WithErrSink(httprc.ErrSinkFunc(func(err error) { m.logger.Warnf("Error while refreshing JWKS cache: %v", err) })), ) + err = cache.Register(meta.IssuerURL, + jwk.WithMinRefreshInterval(minRefreshInterval), + ) if err != nil { return nil, fmt.Errorf("failed to register JWKS cache: %w", err) } diff --git a/state/azure/blobstorage/blobstorage_test.go b/state/azure/blobstorage/blobstorage_test.go index e8ec8a97b..07297c1b3 100644 --- a/state/azure/blobstorage/blobstorage_test.go +++ b/state/azure/blobstorage/blobstorage_test.go @@ -26,36 +26,15 @@ import ( func TestInit(t *testing.T) { m := state.Metadata{} s := NewAzureBlobStorageStore(logger.NewLogger("logger")).(*StateStore) - t.Run("Init with valid metadata", func(t *testing.T) { - m.Properties = map[string]string{ - "accountName": "acc", - "accountKey": "e+Dnvl8EOxYxV94nurVaRQ==", - "containerName": "dapr", - } - err := s.Init(m) - assert.Nil(t, err) - assert.Equal(t, "https://acc.blob.core.windows.net/dapr", s.containerClient.URL()) - }) t.Run("Init with missing metadata", func(t *testing.T) { m.Properties = map[string]string{ "invalidValue": "a", } err := s.Init(m) - assert.NotNil(t, err) + assert.Error(t, err) assert.Equal(t, err, fmt.Errorf("missing or empty accountName field from metadata")) }) - - t.Run("Init with invalid account name", func(t *testing.T) { - m.Properties = map[string]string{ - "accountName": "invalid-account", - "accountKey": "e+Dnvl8EOxYxV94nurVaRQ==", - "containerName": "dapr", - } - s.Init(m) - err := s.Ping() - assert.NotNil(t, err) - }) } func TestFileName(t *testing.T) {