Bootstrap copied BFF and local accounts with public Sendico contracts (#34)

This commit is contained in:
Stephan D committed 2026-09-12 13:37:48 +02:00
1 parent 67dc5b5b1e
commit 7062672a87
556 files changed
+42291 -777

No files matched your search

+129
View File
@@ -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)
}
}