Fixed tests

Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
This commit is contained in:
ItalyPaleAle 2023-02-16 01:42:05 +00:00
parent 9210f7ded8
commit a8957062f0
7 changed files with 26 additions and 41 deletions

View File

@ -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{

View File

@ -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)
}

View File

@ -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)

View File

@ -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) {

View File

@ -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
}

View File

@ -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)
}

View File

@ -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) {