Spaces:
Runtime error
Runtime error
package db | |
import ( | |
"path/filepath" | |
"testing" | |
"time" | |
"github.com/arpinfidel/p2p-llm/config" | |
) | |
func setupTestDB(t *testing.T) (*SQLiteDB, string) { | |
// Create a temporary database file | |
tempDir := t.TempDir() | |
dbPath := filepath.Join(tempDir, "test.db") | |
// Create test config | |
cfg := &config.Config{ | |
DBPath: dbPath, | |
} | |
// Initialize database | |
db, err := NewSQLiteDB(cfg) | |
if err != nil { | |
t.Fatalf("Failed to create test database: %v", err) | |
} | |
if err := db.Init(); err != nil { | |
t.Fatalf("Failed to initialize test database: %v", err) | |
} | |
// Create tables | |
if err := CreateTables(db); err != nil { | |
t.Fatalf("Failed to create tables: %v", err) | |
} | |
return db, dbPath | |
} | |
func TestAPIKeyOperations(t *testing.T) { | |
db, _ := setupTestDB(t) | |
defer db.Close() | |
repo := NewSQLiteAPIKeyRepository(db) | |
// Test CreateKey | |
expiresAt := time.Now().Add(24 * time.Hour) | |
err := repo.CreateKey("testhash", "testkey", &expiresAt) | |
if err != nil { | |
t.Errorf("CreateKey failed: %v", err) | |
} | |
// Test GetActiveKeyHash | |
hash, err := repo.GetActiveKeyHash() | |
if err != nil { | |
t.Errorf("GetActiveKeyHash failed: %v", err) | |
} | |
if hash != "testhash" { | |
t.Errorf("Expected hash 'testhash', got '%s'", hash) | |
} | |
// Test DeactivateKey | |
// Note: This would need to know the ID of the created key | |
// For a complete test, we'd need to query the ID first | |
// For now, we'll just verify the basic operations work | |
} | |