mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-04-28 03:20:11 +00:00
76 lines
2 KiB
Go
76 lines
2 KiB
Go
package monitoring
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/rcourtman/pulse-go-rewrite/internal/config"
|
|
)
|
|
|
|
func TestMultiTenantMonitorRemoveTenant(t *testing.T) {
|
|
monitor := &Monitor{}
|
|
mtm := &MultiTenantMonitor{
|
|
monitors: map[string]*Monitor{
|
|
"org-1": monitor,
|
|
},
|
|
}
|
|
|
|
mtm.RemoveTenant("org-1")
|
|
if _, ok := mtm.monitors["org-1"]; ok {
|
|
t.Fatalf("expected org-1 to be removed")
|
|
}
|
|
|
|
// Ensure removal of missing orgs is a no-op.
|
|
mtm.RemoveTenant("missing")
|
|
}
|
|
|
|
func TestMultiTenantMonitorLoadsTenantAPITokens(t *testing.T) {
|
|
baseDir := t.TempDir()
|
|
baseCfg := &config.Config{
|
|
DataPath: baseDir,
|
|
ConfigPath: baseDir,
|
|
}
|
|
|
|
globalRecord, err := config.NewAPITokenRecord("global-token-123.12345678", "global", []string{config.ScopeMonitoringRead})
|
|
if err != nil {
|
|
t.Fatalf("new global token: %v", err)
|
|
}
|
|
baseCfg.APITokens = []config.APITokenRecord{*globalRecord}
|
|
baseCfg.SortAPITokens()
|
|
|
|
mtp := config.NewMultiTenantPersistence(baseDir)
|
|
tenantPersistence, err := mtp.GetPersistence("org-1")
|
|
if err != nil {
|
|
t.Fatalf("get tenant persistence: %v", err)
|
|
}
|
|
|
|
tenantRecord, err := config.NewAPITokenRecord("tenant-token-123.12345678", "tenant", []string{config.ScopeHostReport})
|
|
if err != nil {
|
|
t.Fatalf("new tenant token: %v", err)
|
|
}
|
|
tenantRecord.OrgID = "org-1"
|
|
if err := tenantPersistence.SaveAPITokens([]config.APITokenRecord{*tenantRecord}); err != nil {
|
|
t.Fatalf("save tenant tokens: %v", err)
|
|
}
|
|
|
|
mtm := NewMultiTenantMonitor(baseCfg, mtp, nil)
|
|
t.Cleanup(mtm.Stop)
|
|
|
|
monitor, err := mtm.GetMonitor("org-1")
|
|
if err != nil {
|
|
t.Fatalf("get tenant monitor: %v", err)
|
|
}
|
|
|
|
cfg := monitor.GetConfig()
|
|
if cfg == nil {
|
|
t.Fatalf("expected tenant config")
|
|
}
|
|
if len(cfg.APITokens) != 2 {
|
|
t.Fatalf("expected 2 merged api tokens, got %d", len(cfg.APITokens))
|
|
}
|
|
if !cfg.IsValidAPIToken("global-token-123.12345678") {
|
|
t.Fatalf("expected global token to remain valid")
|
|
}
|
|
if !cfg.IsValidAPIToken("tenant-token-123.12345678") {
|
|
t.Fatalf("expected tenant token to be loaded")
|
|
}
|
|
}
|