Bootstrap copied BFF and local accounts with public Sendico contracts (#34)
This commit is contained in:
1 parent
67dc5b5b1e
commit
7062672a87
556 files changed
+42291
-777
No files matched your search
@@ -0,0 +1,129 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"git.sendico.io/tech/sxchnge/bff/pkg/merrors"
|
||||
"git.sendico.io/tech/sxchnge/bff/pkg/model"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func TestPermissionsDatabaseConfigAsDatabaseConfig(t *testing.T) {
|
||||
cfg := &PermissionsDatabaseConfig{
|
||||
Driver: Mongo,
|
||||
Settings: model.SettingsT{
|
||||
"database_env": "PERMISSIONS_MONGO_DATABASE",
|
||||
},
|
||||
}
|
||||
|
||||
converted := cfg.AsDatabaseConfig()
|
||||
if converted == nil {
|
||||
t.Fatal("expected converted config")
|
||||
}
|
||||
if converted.Driver != Mongo {
|
||||
t.Fatalf("expected driver %q, got %q", Mongo, converted.Driver)
|
||||
}
|
||||
if got := converted.Settings["database_env"]; got != "PERMISSIONS_MONGO_DATABASE" {
|
||||
t.Fatalf("expected database_env to be preserved, got %v", got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewCentralPermissionsConnectionRequiresConfig(t *testing.T) {
|
||||
_, err := NewCentralPermissionsConnection(zap.NewNop(), nil)
|
||||
if !errors.Is(err, merrors.ErrInvalidArg) {
|
||||
t.Fatalf("expected invalid argument, got %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewConnectionRequiresConfig(t *testing.T) {
|
||||
_, err := NewConnection(zap.NewNop(), nil)
|
||||
if !errors.Is(err, merrors.ErrInvalidArg) {
|
||||
t.Fatalf("expected invalid argument, got %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewCentralPermissionsConnectionDelegatesToDBConnection(t *testing.T) {
|
||||
_, err := NewCentralPermissionsConnection(zap.NewNop(), &PermissionsDatabaseConfig{
|
||||
Driver: DBDriver("bogus"),
|
||||
})
|
||||
if err == nil {
|
||||
t.Fatal("expected error")
|
||||
}
|
||||
if !strings.Contains(err.Error(), "permissions_database") {
|
||||
t.Fatalf("expected permissions_database context, got %v", err)
|
||||
}
|
||||
if !strings.Contains(err.Error(), "unknown database driver") {
|
||||
t.Fatalf("expected delegated database driver error, got %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateSplitDomainPermissionsDatabase(t *testing.T) {
|
||||
t.Setenv("DOMAIN_DB", "domain")
|
||||
t.Setenv("PERMISSIONS_DB", "sendico")
|
||||
|
||||
domain, permissions, err := ValidateSplitDomainPermissionsDatabase(
|
||||
"test service",
|
||||
&Config{
|
||||
Driver: Mongo,
|
||||
Settings: model.SettingsT{
|
||||
"database_env": "DOMAIN_DB",
|
||||
},
|
||||
},
|
||||
&PermissionsDatabaseConfig{
|
||||
Driver: Mongo,
|
||||
Settings: model.SettingsT{
|
||||
"database_env": "PERMISSIONS_DB",
|
||||
},
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatalf("expected valid split-domain config, got %v", err)
|
||||
}
|
||||
if domain.Name != "domain" || permissions.Name != "sendico" {
|
||||
t.Fatalf("unexpected resolved names: domain=%+v permissions=%+v", domain, permissions)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateSplitDomainPermissionsDatabaseRejectsMissingPermissionsConfig(t *testing.T) {
|
||||
t.Setenv("DOMAIN_DB", "domain")
|
||||
|
||||
_, _, err := ValidateSplitDomainPermissionsDatabase(
|
||||
"test service",
|
||||
&Config{
|
||||
Driver: Mongo,
|
||||
Settings: model.SettingsT{
|
||||
"database_env": "DOMAIN_DB",
|
||||
},
|
||||
},
|
||||
nil,
|
||||
)
|
||||
if !errors.Is(err, merrors.ErrInvalidArg) {
|
||||
t.Fatalf("expected invalid argument, got %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestValidateSplitDomainPermissionsDatabaseRejectsSameResolvedDatabase(t *testing.T) {
|
||||
t.Setenv("DOMAIN_DB", "domain")
|
||||
t.Setenv("PERMISSIONS_DB", "domain")
|
||||
|
||||
_, _, err := ValidateSplitDomainPermissionsDatabase(
|
||||
"test service",
|
||||
&Config{
|
||||
Driver: Mongo,
|
||||
Settings: model.SettingsT{
|
||||
"database_env": "DOMAIN_DB",
|
||||
},
|
||||
},
|
||||
&PermissionsDatabaseConfig{
|
||||
Driver: Mongo,
|
||||
Settings: model.SettingsT{
|
||||
"database_env": "PERMISSIONS_DB",
|
||||
},
|
||||
},
|
||||
)
|
||||
if !errors.Is(err, merrors.ErrInvalidArg) {
|
||||
t.Fatalf("expected invalid argument, got %v", err)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user