- Add SQLite database connection management with proper error handling - Implement schema for files, chunks, blobs, and snapshots tables - Create repository pattern for each database table - Add transaction support with proper rollback handling - Integrate database module with fx dependency injection - Make index path configurable via VAULTIK_INDEX_PATH env var - Add fatal error handling for database integrity issues - Update DESIGN.md to clarify file_chunks vs chunk_files distinction - Remove FinalHash from BlobInfo (blobs are content-addressable) - Add file metadata support (mtime, ctime, mode, uid, gid, symlinks)
55 lines
1.0 KiB
Go
55 lines
1.0 KiB
Go
package models
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
// TestModelsCompilation ensures all model types can be instantiated
|
|
func TestModelsCompilation(t *testing.T) {
|
|
// This test primarily serves as a compilation test
|
|
// to ensure all types are properly defined
|
|
|
|
// Test FileInfo
|
|
fi := &FileInfo{
|
|
Path: "/test/file.txt",
|
|
MTime: time.Now(),
|
|
Size: 1024,
|
|
}
|
|
if fi.Path != "/test/file.txt" {
|
|
t.Errorf("FileInfo.Path not set correctly")
|
|
}
|
|
|
|
// Test ChunkInfo
|
|
ci := &ChunkInfo{
|
|
Hash: "abc123",
|
|
Size: 512,
|
|
Offset: 0,
|
|
}
|
|
if ci.Hash != "abc123" {
|
|
t.Errorf("ChunkInfo.Hash not set correctly")
|
|
}
|
|
|
|
// Test BlobInfo
|
|
bi := &BlobInfo{
|
|
Hash: "blob123",
|
|
CreatedAt: time.Now(),
|
|
Size: 1024,
|
|
ChunkCount: 2,
|
|
}
|
|
if bi.Hash != "blob123" {
|
|
t.Errorf("BlobInfo.Hash not set correctly")
|
|
}
|
|
|
|
// Test Snapshot
|
|
s := &Snapshot{
|
|
ID: "2024-01-01T00:00:00Z",
|
|
Hostname: "test-host",
|
|
Version: "1.0.0",
|
|
CreatedAt: time.Now(),
|
|
}
|
|
if s.ID != "2024-01-01T00:00:00Z" {
|
|
t.Errorf("Snapshot.ID not set correctly")
|
|
}
|
|
}
|