Files
Charon/backend/internal/models/hooks_test.go
T
GitHub Actions 83afbbf1fc feat: Add CrowdSec management endpoints and feature flags handler
- Implemented CrowdSec process management with start, stop, and status endpoints.
- Added import functionality for CrowdSec configuration files with backup support.
- Introduced a new FeatureFlagsHandler to manage feature flags with database and environment variable fallback.
- Created tests for CrowdSec handler and feature flags handler.
- Updated routes to include new feature flags and CrowdSec management endpoints.
- Enhanced import handler with better error logging and diagnostics.
- Added frontend API calls for CrowdSec management and feature flags.
- Updated SystemSettings page to manage feature flags and CrowdSec controls.
- Refactored logs and other components for improved functionality and UI consistency.
2025-12-01 16:19:05 +00:00

64 lines
1.6 KiB
Go

package models
import (
"testing"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
func setupTestDB(t *testing.T) *gorm.DB {
t.Helper()
db, err := gorm.Open(sqlite.Open("file::memory:?cache=shared"), &gorm.Config{})
if err != nil {
t.Fatalf("failed to open in-memory db: %v", err)
}
if err := db.AutoMigrate(&NotificationTemplate{}, &UptimeHost{}, &UptimeNotificationEvent{}); err != nil {
t.Fatalf("auto migrate failed: %v", err)
}
return db
}
func TestNotificationTemplate_BeforeCreate(t *testing.T) {
db := setupTestDB(t)
tmpl := &NotificationTemplate{
Name: "hook-test",
}
if err := db.Create(tmpl).Error; err != nil {
t.Fatalf("create failed: %v", err)
}
if tmpl.ID == "" {
t.Fatalf("expected ID to be populated by BeforeCreate")
}
}
func TestUptimeHost_BeforeCreate(t *testing.T) {
db := setupTestDB(t)
h := &UptimeHost{
Host: "127.0.0.1",
}
if err := db.Create(h).Error; err != nil {
t.Fatalf("create failed: %v", err)
}
if h.ID == "" {
t.Fatalf("expected ID to be populated by BeforeCreate")
}
if h.Status != "pending" {
t.Fatalf("expected default Status 'pending', got %q", h.Status)
}
}
func TestUptimeNotificationEvent_BeforeCreate(t *testing.T) {
db := setupTestDB(t)
e := &UptimeNotificationEvent{
HostID: "host-1",
EventType: "down",
}
if err := db.Create(e).Error; err != nil {
t.Fatalf("create failed: %v", err)
}
if e.ID == "" {
t.Fatalf("expected ID to be populated by BeforeCreate")
}
}