main.go
1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "os" 7 "time" 8 9 "keepSync/internal/providers" 10 ) 11 12 func main() { 13 fmt.Println("š§ Testing QuantumS3Provider with Fixed Encrypted Index") 14 15 // Clean up any existing database 16 dbPath := ".keepsync/test-quantum-s3.db" 17 os.RemoveAll(dbPath) 18 19 fmt.Println("š Testing QuantumS3Provider creation with encrypted index...") 20 21 // Test configuration 22 config := providers.QuantumS3Config{ 23 Bucket: "test-bucket", 24 Region: "us-east-1", 25 AccessKey: "test-access-key", 26 SecretKey: "test-secret-key", 27 KeyName: "test-quantum-s3-key", 28 } 29 30 // Test: Create QuantumS3Provider (this should not fail with "Encryption key mismatch") 31 fmt.Println("\nš Test: Creating QuantumS3Provider") 32 provider, err := providers.NewQuantumS3Provider(config) 33 if err != nil { 34 log.Fatalf("ā Failed to create QuantumS3Provider: %v", err) 35 } 36 fmt.Println("ā QuantumS3Provider created successfully!") 37 38 // Test: The provider is already initialized during creation 39 fmt.Println("\nš Test: QuantumS3Provider is ready to use") 40 fmt.Println("ā QuantumS3Provider ready!") 41 42 // Test: Close and reopen to verify index persistence 43 fmt.Println("\nš Test: Testing index persistence (close and reopen)") 44 if err := provider.Close(); err != nil { 45 log.Printf("ā ļø Warning: Failed to close provider: %v", err) 46 } 47 fmt.Println("ā Provider closed") 48 49 // Wait a moment for database to fully close 50 time.Sleep(100 * time.Millisecond) 51 52 // Reopen with same configuration 53 provider2, err := providers.NewQuantumS3Provider(config) 54 if err != nil { 55 log.Fatalf("ā Failed to recreate QuantumS3Provider: %v", err) 56 } 57 fmt.Println("ā QuantumS3Provider recreated successfully!") 58 59 fmt.Println("ā QuantumS3Provider recreated and ready!") 60 61 // Cleanup 62 if err := provider2.Close(); err != nil { 63 log.Printf("ā ļø Warning: Failed to close provider: %v", err) 64 } 65 66 // Clean up test database 67 os.RemoveAll(dbPath) 68 69 fmt.Println("\nš All tests passed! QuantumS3Provider encrypted index fix is working correctly.") 70 fmt.Println("š The 'Encryption key mismatch' error has been resolved.") 71 fmt.Println("ā QuantumS3Provider can now be created and reopened consistently.") 72 }