Skip to content

Commit

Permalink
tests: fix broken tests
Browse files Browse the repository at this point in the history
  • Loading branch information
patrislav committed May 31, 2024
1 parent 23cf681 commit 730b86b
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 20 deletions.
14 changes: 7 additions & 7 deletions rpc/admin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ func TestRPC_CreateTenant(t *testing.T) {
allowedOrigins := []string{"http://localhost"}

t.Run("TenantAlreadyExists", func(t *testing.T) {
tnt, code, err := c.CreateTenant(ctx, tenant.ProjectID, "WAAS_ACCESS_TOKEN", validOidcProviders, allowedOrigins, nil)
tnt, code, err := c.CreateTenant(ctx, tenant.ProjectID, "WAAS_ACCESS_TOKEN", false, validOidcProviders, allowedOrigins, nil)
assert.Nil(t, tnt)
assert.Empty(t, code)
assert.ErrorContains(t, err, "tenant already exists")
Expand All @@ -110,30 +110,30 @@ func TestRPC_CreateTenant(t *testing.T) {
{Issuer: issuer, Audience: audience},
{Issuer: "INVALID", Audience: audience},
}
tnt, code, err := c.CreateTenant(ctx, 2, "WAAS_ACCESS_TOKEN", invalidOidcProviders, allowedOrigins, nil)
tnt, code, err := c.CreateTenant(ctx, 2, "WAAS_ACCESS_TOKEN", false, invalidOidcProviders, allowedOrigins, nil)
assert.Nil(t, tnt)
assert.Empty(t, code)
assert.ErrorContains(t, err, "invalid oidcProviders")
assert.ErrorContains(t, err, "invalid auth provider configuration")
})

t.Run("InvalidOrigin", func(t *testing.T) {
invalidOrigins := []string{"localhost"}
tnt, code, err := c.CreateTenant(ctx, 3, "WAAS_ACCESS_TOKEN", validOidcProviders, invalidOrigins, nil)
tnt, code, err := c.CreateTenant(ctx, 3, "WAAS_ACCESS_TOKEN", false, validOidcProviders, invalidOrigins, nil)
assert.Nil(t, tnt)
assert.Empty(t, code)
assert.ErrorContains(t, err, "invalid allowedOrigins")
})

t.Run("InvalidPassword", func(t *testing.T) {
password := "Password123"
tnt, code, err := c.CreateTenant(ctx, 4, "WAAS_ACCESS_TOKEN", validOidcProviders, allowedOrigins, &password)
tnt, code, err := c.CreateTenant(ctx, 4, "WAAS_ACCESS_TOKEN", false, validOidcProviders, allowedOrigins, &password)
assert.Nil(t, tnt)
assert.Empty(t, code)
assert.ErrorContains(t, err, "password must be at least 12 characters long")
})

t.Run("Success", func(t *testing.T) {
tnt, code, err := c.CreateTenant(ctx, 5, "WAAS_ACCESS_TOKEN", validOidcProviders, allowedOrigins, nil)
tnt, code, err := c.CreateTenant(ctx, 5, "WAAS_ACCESS_TOKEN", false, validOidcProviders, allowedOrigins, nil)
require.NoError(t, err)
assert.NotEmpty(t, code)
assert.NotNil(t, tnt)
Expand All @@ -145,7 +145,7 @@ func TestRPC_CreateTenant(t *testing.T) {

t.Run("SuccessWithPassword", func(t *testing.T) {
password := "Password1234"
tnt, code, err := c.CreateTenant(ctx, 6, "WAAS_ACCESS_TOKEN", validOidcProviders, allowedOrigins, &password)
tnt, code, err := c.CreateTenant(ctx, 6, "WAAS_ACCESS_TOKEN", false, validOidcProviders, allowedOrigins, &password)
require.NoError(t, err)
assert.Equal(t, password, code)
assert.NotNil(t, tnt)
Expand Down
46 changes: 33 additions & 13 deletions rpc/helpers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,9 @@ import (
"github.com/0xsequence/waas-authenticator/proto"
proto_wallet "github.com/0xsequence/waas-authenticator/proto/waas"
"github.com/0xsequence/waas-authenticator/rpc"
"github.com/0xsequence/waas-authenticator/rpc/auth"
"github.com/0xsequence/waas-authenticator/rpc/auth/oidc"
"github.com/0xsequence/waas-authenticator/rpc/crypto"
"github.com/0xsequence/waas-authenticator/rpc/identity"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/feature/dynamodb/attributevalue"
"github.com/aws/aws-sdk-go-v2/service/dynamodb"
Expand Down Expand Up @@ -69,19 +70,20 @@ func getTestingCtxValue(ctx context.Context, k string) string {
func initRPC(cfg *config.Config, enc *enclave.Enclave, dbClient *dbMock) *rpc.RPC {
client := httpClient{}
cacheBackend := memlru.Backend(1024)
verifier, err := identity.NewVerifier(cacheBackend, client)
legacyProvider, err := oidc.NewLegacyAuthProvider(cacheBackend, client)
if err != nil {
panic(err)
}
svc := &rpc.RPC{
Config: cfg,
HTTPClient: client,
Enclave: enc,
Wallets: newWalletServiceMock(nil),
Tenants: data.NewTenantTable(dbClient, "Tenants"),
Sessions: data.NewSessionTable(dbClient, "Sessions", "UserID-Index"),
Accounts: data.NewAccountTable(dbClient, "Accounts", data.AccountIndices{}),
Verifier: verifier,
Config: cfg,
HTTPClient: client,
Enclave: enc,
Wallets: newWalletServiceMock(nil),
Tenants: data.NewTenantTable(dbClient, "Tenants"),
Sessions: data.NewSessionTable(dbClient, "Sessions", "UserID-Index"),
Accounts: data.NewAccountTable(dbClient, "Accounts", data.AccountIndices{}),
VerificationContexts: data.NewVerificationContextTable(dbClient, "VerificationContexts"),
AuthProviders: map[intents.IdentityType]auth.Provider{intents.IdentityType_None: legacyProvider},
}
return svc
}
Expand Down Expand Up @@ -265,9 +267,10 @@ func (m *kmsMock) GenerateDataKey(ctx context.Context, params *kms.GenerateDataK
}

type dbMock struct {
tenants map[uint64][]*data.Tenant
sessions map[string]*data.Session
accounts map[uint64]map[string]*data.Account
tenants map[uint64][]*data.Tenant
sessions map[string]*data.Session
accounts map[uint64]map[string]*data.Account
verifContexts map[string]*data.VerificationContext
}

func (d *dbMock) DeleteItem(ctx context.Context, params *dynamodb.DeleteItemInput, optFns ...func(*dynamodb.Options)) (*dynamodb.DeleteItemOutput, error) {
Expand Down Expand Up @@ -343,6 +346,18 @@ func (d *dbMock) GetItem(ctx context.Context, params *dynamodb.GetItemInput, opt
return nil, err
}
return out, nil
case "VerificationContexts":
id, err := getDynamoAttribute[*dynamodbtypes.AttributeValueMemberS](params.Key, "ID")
if err != nil {
return nil, err
}
out := &dynamodb.GetItemOutput{}
verifCtx := d.verifContexts[id.Value]
out.Item, err = attributevalue.MarshalMap(verifCtx)
if err != nil {
return nil, err
}
return out, nil
}

return nil, fmt.Errorf("invalid TableName: %q", *params.TableName)
Expand Down Expand Up @@ -601,6 +616,11 @@ type walletServiceMock struct {
registeredSessions map[string]struct{}
}

func (w walletServiceMock) InitiateEmailAuth(ctx context.Context, intent *proto_wallet.Intent, answerHash string, salt string) (*proto_wallet.IntentResponse, error) {
//TODO implement me
panic("implement me")
}

func (w walletServiceMock) UpdateProjectUserMapRules(ctx context.Context, projectID uint64, userMapRules *proto_wallet.ProjectSessionUserMapRules) error {
//TODO implement me
panic("implement me")
Expand Down

0 comments on commit 730b86b

Please sign in to comment.