Pulse/internal/config/multi_tenant_test.go
2026-02-04 13:35:57 +00:00

52 lines
1.1 KiB
Go

package config
import (
"os"
"path/filepath"
"testing"
)
func TestMultiTenantPersistence_InvalidOrgIDsRejected(t *testing.T) {
baseDir := t.TempDir()
mtp := NewMultiTenantPersistence(baseDir)
invalidIDs := []string{
"",
".",
"..",
"../bad",
"bad/..",
"bad/../evil",
}
for _, orgID := range invalidIDs {
if _, err := mtp.GetPersistence(orgID); err == nil {
t.Fatalf("expected error for orgID %q", orgID)
}
if mtp.OrgExists(orgID) {
t.Fatalf("OrgExists should be false for orgID %q", orgID)
}
}
if _, err := os.Stat(filepath.Join(baseDir, "orgs")); err == nil {
t.Fatalf("unexpected orgs directory created for invalid org IDs")
}
}
func TestMultiTenantPersistence_GetPersistence_CreatesOrgDir(t *testing.T) {
baseDir := t.TempDir()
mtp := NewMultiTenantPersistence(baseDir)
if _, err := mtp.GetPersistence("acme"); err != nil {
t.Fatalf("GetPersistence(acme) failed: %v", err)
}
orgDir := filepath.Join(baseDir, "orgs", "acme")
info, err := os.Stat(orgDir)
if err != nil {
t.Fatalf("expected org dir to exist: %v", err)
}
if !info.IsDir() {
t.Fatalf("expected org dir to be a directory")
}
}